summaryrefslogtreecommitdiff
path: root/lib/mail/templates
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mail/templates')
-rw-r--r--lib/mail/templates/admin-created.hbs91
-rw-r--r--lib/mail/templates/admin-email-changed.hbs108
-rw-r--r--lib/mail/templates/cbe-invitation.hbs108
-rw-r--r--lib/mail/templates/contract-sign-request.hbs116
-rw-r--r--lib/mail/templates/investigation-request.hbs31
-rw-r--r--lib/mail/templates/otp.hbs92
-rw-r--r--lib/mail/templates/pq-submitted-admin.hbs84
-rw-r--r--lib/mail/templates/pq-submitted-vendor.hbs93
-rw-r--r--lib/mail/templates/pq.hbs86
-rw-r--r--lib/mail/templates/project-pq.hbs99
-rw-r--r--lib/mail/templates/rfq-invite.hbs145
-rw-r--r--lib/mail/templates/vendor-active.hbs76
-rw-r--r--lib/mail/templates/vendor-additional-info.hbs89
-rw-r--r--lib/mail/templates/vendor-invitation.hbs104
-rw-r--r--lib/mail/templates/vendor-pq-comment.hbs165
-rw-r--r--lib/mail/templates/vendor-pq-status.hbs69
-rw-r--r--lib/mail/templates/vendor-project-pq-status.hbs42
17 files changed, 880 insertions, 718 deletions
diff --git a/lib/mail/templates/admin-created.hbs b/lib/mail/templates/admin-created.hbs
index 7be7f15d..3db6c433 100644
--- a/lib/mail/templates/admin-created.hbs
+++ b/lib/mail/templates/admin-created.hbs
@@ -1,78 +1,25 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8" />
- <title>{{t "adminCreated.title" lng=language}}</title>
- <style>
- /* 간단한 스타일 예시 */
- body {
- font-family: Arial, sans-serif;
- margin: 0;
- padding: 16px;
- background-color: #f5f5f5;
- }
- .container {
- max-width: 600px;
- margin: 0 auto;
- background-color: #ffffff;
- padding: 24px;
- border-radius: 8px;
- }
- h1 {
- font-size: 20px;
- margin-bottom: 16px;
- }
- p {
- font-size: 14px;
- line-height: 1.6;
- }
- .btn {
- display: inline-block;
- margin-top: 16px;
- padding: 12px 24px;
- background-color: #1D4ED8;
- color: #ffffff !important;
- text-decoration: none;
- border-radius: 4px;
- }
- .footer {
- margin-top: 24px;
- font-size: 12px;
- color: #888888;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- 상단 로고/타이틀 영역 -->
- <div style="text-align: center;">
- <!-- 필요 시 로고 이미지 -->
- <!-- <img src="https://your-logo-url.com/logo.png" alt="EVCP" width="120" /> -->
- </div>
+{{> header logoUrl=logoUrl }}
- <h1>{{t "adminCreated.title" lng=language}}</h1>
+<h1 style="font-size:28px; margin-bottom:16px;">
+ {{t "adminCreated.title" lng=language}}
+</h1>
- <p>
- {{t "adminCreated.greeting" lng=language}}, <strong>{{name}}</strong>.
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "adminCreated.greeting" lng=language}}, <strong>{{name}}</strong>.
+</p>
- <p>
- {{t "adminCreated.body1" lng=language}}
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "adminCreated.body1" lng=language}}
+</p>
- <p>
- <a class="btn" href="{{loginUrl}}" target="_blank">{{t "adminCreated.loginCTA" lng=language}}</a>
- </p>
+<p>
+ <a href="{{loginUrl}}" target="_blank" style="display: inline-block; width: 250px; padding: 12px 20px; background-color: #163CC4; color: #ffffff !important; text-decoration: none; border-radius: 8px; text-align: center; line-height: 28px; margin-top: 16px;">
+ {{t "adminCreated.loginCTA" lng=language}}
+ </a>
+</p>
- <p>
- {{t "adminCreated.supportMsg" lng=language}}
- </p>
+<p style="font-size:16px; line-height:24px; margin-top:16px;">
+ {{t "adminCreated.supportMsg" lng=language}}
+</p>
- <div class="footer">
- <p>
- {{t "adminCreated.footerDisclaimer" lng=language}}
- </p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/admin-email-changed.hbs b/lib/mail/templates/admin-email-changed.hbs
index 7b8ca473..fb88feab 100644
--- a/lib/mail/templates/admin-email-changed.hbs
+++ b/lib/mail/templates/admin-email-changed.hbs
@@ -1,90 +1,30 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8" />
- <title>{{t "adminEmailChanged.title" lng=language}}</title>
- <style>
- /* 간단한 스타일 예시 */
- body {
- font-family: Arial, sans-serif;
- margin: 0;
- padding: 16px;
- background-color: #f5f5f5;
- }
- .container {
- max-width: 600px;
- margin: 0 auto;
- background-color: #ffffff;
- padding: 24px;
- border-radius: 8px;
- }
- h1 {
- font-size: 20px;
- margin-bottom: 16px;
- }
- p {
- font-size: 14px;
- line-height: 1.6;
- }
- .btn {
- display: inline-block;
- margin-top: 16px;
- padding: 12px 24px;
- background-color: #1D4ED8;
- color: #ffffff !important;
- text-decoration: none;
- border-radius: 4px;
- }
- .footer {
- margin-top: 24px;
- font-size: 12px;
- color: #888888;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- 상단 로고/타이틀 영역 -->
- <div style="text-align: center;">
- <!-- 필요 시 로고 이미지 -->
- <!-- <img src="https://your-logo-url.com/logo.png" alt="EVCP" width="120" /> -->
- </div>
+{{> header logoUrl=logoUrl }}
- <!-- 메일 제목 -->
- <h1>{{t "adminEmailChanged.title" lng=language}}</h1>
+<h1 style="font-size:28px; margin-bottom:16px;">
+ {{t "adminEmailChanged.title" lng=language}}
+</h1>
- <!-- 인사말 -->
- <p>
- {{t "adminEmailChanged.greeting" lng=language}}, <strong>{{name}}</strong>.
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "adminEmailChanged.greeting" lng=language}}, <strong>{{name}}</strong>.
+</p>
- <!-- 이전 이메일 / 새 이메일 안내 -->
- <p>
- {{t "adminEmailChanged.body.intro" lng=language}}
- </p>
- <p>
- <strong>{{t "adminEmailChanged.body.oldEmail" lng=language}}:</strong> {{oldEmail}}<br />
- <strong>{{t "adminEmailChanged.body.newEmail" lng=language}}:</strong> {{newEmail}}
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:8px;">
+ {{t "adminEmailChanged.body.intro" lng=language}}
+</p>
- <!-- 버튼(로그인 / 대시보드 등) -->
- <p>
- <a class="btn" href="{{loginUrl}}" target="_blank">
- {{t "adminEmailChanged.loginCTA" lng=language}}
- </a>
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ <strong>{{t "adminEmailChanged.body.oldEmail" lng=language}}:</strong> {{oldEmail}}<br />
+ <strong>{{t "adminEmailChanged.body.newEmail" lng=language}}:</strong> {{newEmail}}
+</p>
- <!-- 도움 요청 문구 -->
- <p>
- {{t "adminEmailChanged.supportMsg" lng=language}}
- </p>
+<p>
+ <a href="{{loginUrl}}" target="_blank" style="display: inline-block; width: 250px; padding: 12px 20px; background-color: #163CC4; color: #ffffff !important; text-decoration: none; border-radius: 8px; text-align: center; line-height: 28px; margin-top: 16px;">
+ {{t "adminEmailChanged.loginCTA" lng=language}}
+ </a>
+</p>
- <!-- 푸터 -->
- <div class="footer">
- <p>
- {{t "adminEmailChanged.footerDisclaimer" lng=language}}
- </p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
+<p style="font-size:16px; line-height:24px; margin-top:16px;">
+ {{t "adminEmailChanged.supportMsg" lng=language}}
+</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/cbe-invitation.hbs b/lib/mail/templates/cbe-invitation.hbs
new file mode 100644
index 00000000..1d5e8eba
--- /dev/null
+++ b/lib/mail/templates/cbe-invitation.hbs
@@ -0,0 +1,108 @@
+{{#> layout title="상업 입찰 평가 (CBE) 알림"}}
+ <p style="font-size:16px;">안녕하세요, <strong>{{contactName}}</strong>님</p>
+
+ <p style="font-size:16px;"><strong>[RFQ {{rfqCode}}]</strong>에 대한 상업 입찰 평가(CBE)가 생성되어 알려드립니다.
+ 아래 세부 정보를 확인하시고 필요한 조치를 취해주시기 바랍니다.</p>
+
+ <div class="info-box" style="background-color:#F1F5F9; border-radius:6px; padding:16px; margin-bottom:20px;">
+ <h3 style="font-size:20px; color:#163CC4; margin-top:0; margin-bottom:12px;">RFQ 정보</h3>
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">RFQ 코드:</span> {{rfqCode}}</div>
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">프로젝트 코드:</span> {{projectCode}}</div>
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">프로젝트명:</span> {{projectName}}</div>
+ {{#if dueDate}}
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">마감일:</span> {{dueDate}}</div>
+ {{/if}}
+ </div>
+
+ <div class="info-box" style="background-color:#F1F5F9; border-radius:6px; padding:16px; margin-bottom:20px;">
+ <h3 style="font-size:20px; color:#163CC4; margin-top:0; margin-bottom:12px;">CBE 평가 세부사항</h3>
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">협력업체:</span> {{vendorName}} ({{vendorCode}})</div>
+ {{#if paymentTerms}}
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">결제 조건:</span> {{paymentTerms}}</div>
+ {{/if}}
+ {{#if incoterms}}
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">Incoterms:</span> {{incoterms}}</div>
+ {{/if}}
+ {{#if deliverySchedule}}
+ <div class="info-item" style="margin-bottom:8px;"><span class="label" style="font-weight:bold; color:#4B5563;">배송 일정:</span> {{deliverySchedule}}</div>
+ {{/if}}
+ </div>
+
+ {{#if description}}
+ <div class="info-box" style="background-color:#F1F5F9; border-radius:6px; padding:16px; margin-bottom:20px;">
+ <h3 style="font-size:20px; color:#163CC4; margin-top:0; margin-bottom:12px;">RFQ 설명</h3>
+ <p style="font-size:16px; margin:0;">{{description}}</p>
+ </div>
+ {{/if}}
+
+ {{#if notes}}
+ <div class="info-box" style="background-color:#F1F5F9; border-radius:6px; padding:16px; margin-bottom:20px;">
+ <h3 style="font-size:20px; color:#163CC4; margin-top:0; margin-bottom:12px;">비고</h3>
+ <p style="font-size:16px; margin:0;">{{notes}}</p>
+ </div>
+ {{/if}}
+
+ <p style="text-align: center; margin: 25px 0;">
+ <a href="{{loginUrl}}/rfq/{{rfqId}}/cbe/{{cbeId}}" class="button" style="display:inline-block; background-color:#163CC4; color:#ffffff; padding:10px 20px; text-decoration:none; border-radius:4px; font-weight:bold;">
+ CBE 평가 확인하기
+ </a>
+ </p>
+
+ <p style="font-size:16px;">이 이메일에 첨부된 파일을 확인하시거나, 시스템에 로그인하여 자세한 정보를 확인해 주세요.
+ 추가 문의사항이 있으시면 구매담당자에게 연락해 주시기 바랍니다.</p>
+
+ <p style="font-size:16px;">감사합니다.<br />eVCP 팀</p>
+{{/layout}}
+{{!-- {{#> layout title="상업 입찰 평가 (CBE) 알림"}}
+ <p>안녕하세요, <strong>{{contactName}}</strong>님</p>
+
+ <p><strong>[RFQ {{rfqCode}}]</strong>에 대한 상업 입찰 평가(CBE)가 생성되어 알려드립니다.
+ 아래 세부 정보를 확인하시고 필요한 조치를 취해주시기 바랍니다.</p>
+
+ <div class="info-box">
+ <h3>RFQ 정보</h3>
+ <div class="info-item"><span class="label">RFQ 코드:</span> {{rfqCode}}</div>
+ <div class="info-item"><span class="label">프로젝트 코드:</span> {{projectCode}}</div>
+ <div class="info-item"><span class="label">프로젝트명:</span> {{projectName}}</div>
+ {{#if dueDate}}
+ <div class="info-item"><span class="label">마감일:</span> {{dueDate}}</div>
+ {{/if}}
+ </div>
+
+ <div class="info-box">
+ <h3>CBE 평가 세부사항</h3>
+ <div class="info-item"><span class="label">협력업체:</span> {{vendorName}} ({{vendorCode}})</div>
+ {{#if paymentTerms}}
+ <div class="info-item"><span class="label">결제 조건:</span> {{paymentTerms}}</div>
+ {{/if}}
+ {{#if incoterms}}
+ <div class="info-item"><span class="label">Incoterms:</span> {{incoterms}}</div>
+ {{/if}}
+ {{#if deliverySchedule}}
+ <div class="info-item"><span class="label">배송 일정:</span> {{deliverySchedule}}</div>
+ {{/if}}
+ </div>
+
+ {{#if description}}
+ <div class="info-box">
+ <h3>RFQ 설명</h3>
+ <p>{{description}}</p>
+ </div>
+ {{/if}}
+
+ {{#if notes}}
+ <div class="info-box">
+ <h3>비고</h3>
+ <p>{{notes}}</p>
+ </div>
+ {{/if}}
+
+ <div class="button-container">
+ <a href="{{loginUrl}}/rfq/{{rfqId}}/cbe/{{cbeId}}" class="button">
+ CBE 평가 확인하기
+ </a>
+ </div>
+
+ <p>이 이메일에 첨부된 파일을 확인하시거나, 시스템에 로그인하여 자세한 정보를 확인해 주세요.
+ 추가 문의사항이 있으시면 구매담당자에게 연락해 주시기 바랍니다.</p>
+{{/layout}} --}} \ No newline at end of file
diff --git a/lib/mail/templates/contract-sign-request.hbs b/lib/mail/templates/contract-sign-request.hbs
new file mode 100644
index 00000000..410fdf6a
--- /dev/null
+++ b/lib/mail/templates/contract-sign-request.hbs
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang="{{language}}">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>기본계약서 서명 요청</title>
+ <style>
+ body {
+ font-family: 'Malgun Gothic', 'Segoe UI', sans-serif;
+ line-height: 1.6;
+ color: #333;
+ background-color: #f9f9f9;
+ margin: 0;
+ padding: 0;
+ }
+ .container {
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 20px;
+ background-color: #ffffff;
+ border-radius: 8px;
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+ }
+ .header {
+ text-align: center;
+ padding-bottom: 20px;
+ border-bottom: 1px solid #eee;
+ }
+ .logo {
+ max-height: 60px;
+ margin-bottom: 10px;
+ }
+ .content {
+ padding: 30px 20px;
+ }
+ .footer {
+ margin-top: 30px;
+ padding-top: 20px;
+ border-top: 1px solid #eee;
+ font-size: 12px;
+ color: #666;
+ text-align: center;
+ }
+ .button {
+ display: inline-block;
+ background-color: #4F46E5;
+ color: white;
+ text-decoration: none;
+ padding: 12px 24px;
+ border-radius: 4px;
+ margin: 20px 0;
+ font-weight: bold;
+ }
+ .button:hover {
+ background-color: #4338CA;
+ }
+ .info-box {
+ background-color: #f3f4f6;
+ border-radius: 4px;
+ padding: 15px;
+ margin: 20px 0;
+ }
+ @media only screen and (max-width: 600px) {
+ .container {
+ width: 100%;
+ border-radius: 0;
+ }
+ }
+ </style>
+</head>
+<body>
+ <div class="container">
+ <div class="header">
+ <img src="{{logoUrl}}" alt="회사 로고" class="logo">
+ <h1>기본계약서 서명 요청</h1>
+ </div>
+
+ <div class="content">
+ <p>안녕하세요, <strong>{{vendorName}}</strong>님.</p>
+
+ <p>귀사에 기본계약서 서명을 요청드립니다.</p>
+
+ <div class="info-box">
+ <p><strong>계약서 정보:</strong></p>
+ <p>계약서 종류: {{templateName}}</p>
+ <p>계약 번호: {{contractId}}</p>
+ </div>
+
+ <p>아래 버튼을 클릭하여 계약서를 확인하고 서명해 주시기 바랍니다.</p>
+
+ <div style="text-align: center;">
+ <a href="{{loginUrl}}" class="button">계약서 서명하기</a>
+ </div>
+
+ <p>본 링크는 30일간 유효하며, 이후에는 새로운 서명 요청이 필요합니다.</p>
+
+ <p>서명 과정에서 문의사항이 있으시면 담당자에게 연락해 주시기 바랍니다.</p>
+
+ <p>감사합니다.</p>
+
+ <div style="margin-top: 30px;">
+ <p><strong>담당자 연락처:</strong><br>
+ 이메일: contact@company.com<br>
+ 전화: 02-123-4567</p>
+ </div>
+ </div>
+
+ <div class="footer">
+ <p>본 메일은 발신 전용으로, 회신하실 경우 확인이 어려울 수 있습니다.</p>
+ <p>© {{currentYear}} 주식회사 회사명. 모든 권리 보유.</p>
+ <p>이 이메일에 포함된 정보는 기밀 정보이며, 특정 수신자만을 위한 것입니다.
+ 만약 귀하가 의도된 수신자가 아닌 경우, 본 이메일의 사용, 배포 또는 복사는 엄격히 금지됩니다.</p>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/lib/mail/templates/investigation-request.hbs b/lib/mail/templates/investigation-request.hbs
new file mode 100644
index 00000000..a69091a5
--- /dev/null
+++ b/lib/mail/templates/investigation-request.hbs
@@ -0,0 +1,31 @@
+{{> header logoUrl=logoUrl }}
+
+<h2 style="font-size:28px; margin-bottom:16px;"> 협력업체 실사 요청</h2>
+
+<p style="font-size:16px;">안녕하세요,</p>
+
+<p style="font-size:16px;">협력업체 실사 요청이 접수되었습니다.</p>
+
+<div style="background-color:#F1F5F9; padding:16px; border-radius:4px; margin:16px 0;">
+ <p style="font-size:16px; margin:0 0 8px 0;"><strong>협력업체 ID:</strong></p>
+ <ul style="margin:0; padding-left:20px;">
+ {{#each vendorIds}}
+ <li style="font-size:16px; margin-bottom:4px;">{{this}}</li>
+ {{/each}}
+ </ul>
+
+ {{#if notes}}
+ <p style="font-size:16px; margin:16px 0 0 0;"><strong>메모:</strong></p>
+ <p style="font-size:16px; margin:8px 0 0 0;">{{notes}}</p>
+ {{/if}}
+</div>
+
+<p style="text-align: center; margin: 25px 0;">
+ <a href="{{portalUrl}}" target="_blank" style="display:inline-block; background-color:#163CC4; color:#ffffff; padding:10px 20px; text-decoration:none; border-radius:4px;">벤더 포털 바로가기</a>
+</p>
+
+<p style="font-size:16px;">문의사항이 있으시면 시스템 관리자에게 연락해 주세요.</p>
+
+<p style="font-size:16px;">감사합니다.<br />eVCP 팀</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/otp.hbs b/lib/mail/templates/otp.hbs
index adeda416..48df33f9 100644
--- a/lib/mail/templates/otp.hbs
+++ b/lib/mail/templates/otp.hbs
@@ -1,77 +1,27 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
- <title>{{subject}}</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- background: #f9fafb;
- color: #111827;
- padding: 20px;
- }
- .container {
- max-width: 480px;
- margin: 0 auto;
- background: #ffffff;
- border: 1px solid #e5e7eb;
- border-radius: 6px;
- padding: 24px;
- }
- h1 {
- font-size: 20px;
- margin-bottom: 8px;
- color: #111827;
- }
- p {
- line-height: 1.5;
- margin-bottom: 16px;
- }
- .code {
- display: inline-block;
- font-size: 24px;
- font-weight: bold;
- letter-spacing: 2px;
- margin: 12px 0;
- background: #f3f4f6;
- padding: 8px 16px;
- border-radius: 4px;
- }
- a {
- color: #3b82f6;
- text-decoration: none;
- }
- .footer {
- font-size: 12px;
- color: #6b7280;
- margin-top: 24px;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <h1>{{t "verifyYourEmailTitle"}}</h1>
- <p>{{t "greeting"}}, {{name}}</p>
+{{> header logoUrl=logoUrl }}
- <p>
- {{t "receivedSignInAttempt" location=location}}
- </p>
+<h1 style="font-size:28px; margin-bottom:20px; color:#111827;">{{t "verifyYourEmailTitle"}}</h1>
- <p>
- {{t "enterCodeInstruction"}}
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">{{t "greeting"}}, {{name}}</p>
- <p class="code">{{otp}}</p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "receivedSignInAttempt" location=location}}
+</p>
- <p>
- <a href="{{verificationUrl}}">{{verificationUrl}}</a>
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "enterCodeInstruction"}}
+</p>
+<p style="font-size:24px; font-weight:bold; letter-spacing:2px; background-color:#f3f4f6; padding:8px 16px; border-radius:4px; display:inline-block; margin:12px 0;">
+ {{otp}}
+</p>
- <div class="footer">
- {{t "securityWarning"}}
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
+<p style="font-size:16px; line-height:24px; margin-bottom:16px;">
+ <a href="{{verificationUrl}}" style="color:#0284C7; text-decoration:none;">{{verificationUrl}}</a>
+</p>
+
+<p style="font-size:16px; color:#6b7280; margin-top:16px;">
+ {{t "securityWarning"}}
+</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/pq-submitted-admin.hbs b/lib/mail/templates/pq-submitted-admin.hbs
new file mode 100644
index 00000000..0db3d6e4
--- /dev/null
+++ b/lib/mail/templates/pq-submitted-admin.hbs
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>PQ Submission Notification</title>
+ <style>
+ body {
+ font-family: Arial, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ padding: 20px;
+ max-width: 600px;
+ margin: 0 auto;
+ }
+ .header {
+ background-color: #0070f3;
+ color: white;
+ padding: 15px;
+ text-align: center;
+ margin-bottom: 20px;
+ border-radius: 5px;
+ }
+ .content {
+ background-color: #f9f9f9;
+ padding: 20px;
+ border-radius: 5px;
+ margin-bottom: 20px;
+ }
+ .details {
+ margin: 15px 0;
+ }
+ .details p {
+ margin: 5px 0;
+ }
+ .button {
+ display: inline-block;
+ background-color: #0070f3;
+ color: white;
+ text-decoration: none;
+ padding: 10px 20px;
+ border-radius: 5px;
+ margin: 20px 0;
+ text-align: center;
+ }
+ .footer {
+ text-align: center;
+ font-size: 12px;
+ color: #777;
+ margin-top: 30px;
+ }
+ </style>
+</head>
+<body>
+ <div class="header">
+ <h1>PQ Submission Notification</h1>
+ </div>
+
+ <div class="content">
+ <h2>New PQ Submission Received</h2>
+
+ <p>A new {{#if isProjectPQ}}project-specific{{else}}general{{/if}} PQ has been submitted and is ready for your review.</p>
+
+ <div class="details">
+ <p><strong>Vendor Name:</strong> {{vendorName}}</p>
+ <p><strong>Vendor ID:</strong> {{vendorId}}</p>
+ {{#if isProjectPQ}}
+ <p><strong>Project Name:</strong> {{projectName}}</p>
+ <p><strong>Project ID:</strong> {{projectId}}</p>
+ {{/if}}
+ <p><strong>Submission Date:</strong> {{submittedDate}}</p>
+ </div>
+
+ <p>Please review this submission at your earliest convenience.</p>
+
+ <a href="{{adminUrl}}" class="button">Review PQ Submission</a>
+ </div>
+
+ <div class="footer">
+ <p>This is an automated notification from the eVCP system. Please do not reply to this email.</p>
+ <p>© {{currentYear}} eVCP - Vendor Compliance Portal</p>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/lib/mail/templates/pq-submitted-vendor.hbs b/lib/mail/templates/pq-submitted-vendor.hbs
new file mode 100644
index 00000000..9cf8e133
--- /dev/null
+++ b/lib/mail/templates/pq-submitted-vendor.hbs
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>PQ Submission Confirmation</title>
+ <style>
+ body {
+ font-family: Arial, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ padding: 20px;
+ max-width: 600px;
+ margin: 0 auto;
+ }
+ .header {
+ background-color: #0070f3;
+ color: white;
+ padding: 15px;
+ text-align: center;
+ margin-bottom: 20px;
+ border-radius: 5px;
+ }
+ .content {
+ background-color: #f9f9f9;
+ padding: 20px;
+ border-radius: 5px;
+ margin-bottom: 20px;
+ }
+ .details {
+ margin: 15px 0;
+ }
+ .details p {
+ margin: 5px 0;
+ }
+ .button {
+ display: inline-block;
+ background-color: #0070f3;
+ color: white;
+ text-decoration: none;
+ padding: 10px 20px;
+ border-radius: 5px;
+ margin: 20px 0;
+ text-align: center;
+ }
+ .footer {
+ text-align: center;
+ font-size: 12px;
+ color: #777;
+ margin-top: 30px;
+ }
+ .success-message {
+ padding: 15px;
+ background-color: #dff0d8;
+ border-left: 4px solid #5cb85c;
+ margin-bottom: 20px;
+ }
+ </style>
+</head>
+<body>
+ <div class="header">
+ <h1>PQ Submission Confirmation</h1>
+ </div>
+
+ <div class="content">
+ <div class="success-message">
+ <p>Thank you! Your {{#if isProjectPQ}}project-specific{{else}}general{{/if}} PQ has been successfully submitted.</p>
+ </div>
+
+ <h2>Submission Details</h2>
+
+ <div class="details">
+ <p><strong>Vendor Name:</strong> {{vendorName}}</p>
+ {{#if isProjectPQ}}
+ <p><strong>Project Name:</strong> {{projectName}}</p>
+ {{/if}}
+ <p><strong>Submission Date:</strong> {{submittedDate}}</p>
+ </div>
+
+ <p>Our team will review your submission and contact you if any additional information is needed.</p>
+
+ <p>You can access your dashboard to track the status of your submissions and manage your vendor profile.</p>
+
+ <a href="{{portalUrl}}" class="button">Go to Vendor Dashboard</a>
+ </div>
+
+ <div class="footer">
+ <p>This is an automated confirmation from the eVCP system. Please do not reply to this email.</p>
+ <p>If you have any questions, please contact your procurement representative.</p>
+ <p>© {{currentYear}} eVCP - Vendor Compliance Portal</p>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/lib/mail/templates/pq.hbs b/lib/mail/templates/pq.hbs
new file mode 100644
index 00000000..78fb6fcd
--- /dev/null
+++ b/lib/mail/templates/pq.hbs
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang="{{language}}">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>PQ Invitation</title>
+ <style>
+ body {
+ font-family: Arial, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 20px;
+ }
+ .header {
+ background-color: #0066cc;
+ color: white;
+ padding: 20px;
+ text-align: center;
+ border-radius: 5px 5px 0 0;
+ }
+ .content {
+ background-color: #f9f9f9;
+ padding: 20px;
+ border-left: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+ }
+ .footer {
+ background-color: #f1f1f1;
+ padding: 15px;
+ text-align: center;
+ font-size: 14px;
+ border-radius: 0 0 5px 5px;
+ border: 1px solid #ddd;
+ }
+ .button {
+ display: inline-block;
+ background-color: #0066cc;
+ color: white;
+ padding: 12px 25px;
+ text-decoration: none;
+ border-radius: 5px;
+ margin: 20px 0;
+ font-weight: bold;
+ }
+ </style>
+</head>
+<body>
+ <div class="header">
+ <h1>eVCP Pre-Qualification Invitation</h1>
+ </div>
+
+ <div class="content">
+ <p>Dear {{vendorName}},</p>
+
+ <p>You have been invited to submit your Pre-Qualification (PQ) information for our vendor database. Completing this process will allow us to consider your company for future projects and procurement opportunities.</p>
+
+ <p>To submit your PQ information:</p>
+ <ol>
+ <li>Click on the button below to access our vendor portal</li>
+ <li>Log in to your account (or register if you haven't already)</li>
+ <li>Navigate to the PQ section in your dashboard</li>
+ <li>Complete all required information about your company, capabilities, and experience</li>
+ </ol>
+
+ <center>
+ <a href="{{loginUrl}}" class="button">Access Vendor Portal</a>
+ </center>
+
+ <p>Maintaining up-to-date PQ information in our system is essential for your company to be considered for upcoming opportunities.</p>
+
+ <p>If you have any questions or need assistance, please contact our vendor management team.</p>
+
+ <p>We look forward to learning more about your company and potentially working together on future projects.</p>
+
+ <p>Best regards,<br>
+ The eVCP Team</p>
+ </div>
+
+ <div class="footer">
+ <p>This is an automated email. Please do not reply to this message.</p>
+ <p>&copy; eVCP Vendor Management System</p>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/lib/mail/templates/project-pq.hbs b/lib/mail/templates/project-pq.hbs
new file mode 100644
index 00000000..2ecbd3a2
--- /dev/null
+++ b/lib/mail/templates/project-pq.hbs
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang="{{language}}">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Project PQ Invitation</title>
+ <style>
+ body {
+ font-family: Arial, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 20px;
+ }
+ .header {
+ background-color: #0066cc;
+ color: white;
+ padding: 20px;
+ text-align: center;
+ border-radius: 5px 5px 0 0;
+ }
+ .content {
+ background-color: #f9f9f9;
+ padding: 20px;
+ border-left: 1px solid #ddd;
+ border-right: 1px solid #ddd;
+ }
+ .footer {
+ background-color: #f1f1f1;
+ padding: 15px;
+ text-align: center;
+ font-size: 14px;
+ border-radius: 0 0 5px 5px;
+ border: 1px solid #ddd;
+ }
+ .button {
+ display: inline-block;
+ background-color: #0066cc;
+ color: white;
+ padding: 12px 25px;
+ text-decoration: none;
+ border-radius: 5px;
+ margin: 20px 0;
+ font-weight: bold;
+ }
+ .project-info {
+ background-color: #e6f2ff;
+ padding: 15px;
+ border-radius: 5px;
+ margin: 15px 0;
+ }
+ </style>
+</head>
+<body>
+ <div class="header">
+ <h1>eVCP Project PQ Invitation</h1>
+ </div>
+
+ <div class="content">
+ <p>Dear {{vendorName}},</p>
+
+ <p>You have been selected to participate in the Pre-Qualification (PQ) process for the following project:</p>
+
+ <div class="project-info">
+ <p><strong>Project Code:</strong> {{projectCode}}</p>
+ <p><strong>Project Name:</strong> {{projectName}}</p>
+ </div>
+
+ <p>This is an important step in our vendor selection process. Please complete the Project PQ questionnaire at your earliest convenience.</p>
+
+ <p>To submit your Project PQ:</p>
+ <ol>
+ <li>Click on the button below to access our vendor portal</li>
+ <li>Log in to your account (or register if you haven't already)</li>
+ <li>Navigate to the PQ section where you'll find the Project PQ for {{projectCode}}</li>
+ <li>Complete all required information</li>
+ </ol>
+
+ <center>
+ <a href="{{loginUrl}}" class="button">Access Vendor Portal</a>
+ </center>
+
+ <p>Please note that completing this Project PQ is a prerequisite for being considered for this project.</p>
+
+ <p>If you have any questions or need assistance, please contact our vendor management team.</p>
+
+ <p>Thank you for your participation.</p>
+
+ <p>Best regards,<br>
+ The eVCP Team</p>
+ </div>
+
+ <div class="footer">
+ <p>This is an automated email. Please do not reply to this message.</p>
+ <p>&copy; eVCP Vendor Management System</p>
+ </div>
+</body>
+</html> \ No newline at end of file
diff --git a/lib/mail/templates/rfq-invite.hbs b/lib/mail/templates/rfq-invite.hbs
index 25bd96eb..8ec20a99 100644
--- a/lib/mail/templates/rfq-invite.hbs
+++ b/lib/mail/templates/rfq-invite.hbs
@@ -1,116 +1,43 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="utf-8" />
- <title>{{t "rfqInvite.title" lng=language}} #{{rfqCode}}</title>
- <style>
- /* 간단한 스타일 예시 */
- body {
- font-family: Arial, sans-serif;
- margin: 0;
- padding: 16px;
- background-color: #f5f5f5;
- }
- .container {
- max-width: 600px;
- margin: 0 auto;
- background-color: #ffffff;
- padding: 24px;
- border-radius: 8px;
- }
- h1 {
- font-size: 20px;
- margin-bottom: 16px;
- }
- p {
- font-size: 14px;
- line-height: 1.6;
- }
- ul {
- margin-left: 20px;
- }
- li {
- font-size: 14px;
- line-height: 1.6;
- }
- .btn {
- display: inline-block;
- margin-top: 16px;
- padding: 12px 24px;
- background-color: #1D4ED8;
- color: #ffffff !important;
- text-decoration: none;
- border-radius: 4px;
- }
- .footer {
- margin-top: 24px;
- font-size: 12px;
- color: #888888;
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- 상단 로고/타이틀 영역 -->
- <div style="text-align: center;">
- <!-- 필요 시 로고 이미지 -->
- <!-- <img src="https://your-logo-url.com/logo.png" alt="EVCP" width="120" /> -->
- </div>
+{{> header logoUrl=logoUrl }}
- <!-- 메인 타이틀: RFQ 초대 -->
- <h1>
- {{t "rfqInvite.heading" lng=language}}
- #{{rfqCode}}
- </h1>
+<h1 style="font-size:28px; line-height:40px; margin-bottom:16px;">
+ {{t "rfqInvite.heading" lng=language}} #{{rfqCode}}
+</h1>
- <!-- 벤더에게 인사말 -->
- <p>
- {{t "rfqInvite.greeting" lng=language}}, <strong>Vendor #{{vendorId}}</strong>.
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "rfqInvite.greeting" lng=language}}, <strong>Vendor #{{vendorId}}</strong>.
+</p>
- <!-- 프로젝트/RFQ 정보 -->
- <p>
- {{t "rfqInvite.bodyIntro" lng=language}}
- <br />
- <strong>{{t "rfqInvite.projectName" lng=language}}:</strong> {{projectName}}<br />
- <strong>{{t "rfqInvite.projectCode" lng=language}}:</strong> {{projectCode}}<br />
- <strong>{{t "rfqInvite.dueDate" lng=language}}:</strong> {{dueDate}}<br />
- <strong>{{t "rfqInvite.description" lng=language}}:</strong> {{description}}
- </p>
+<p style="font-size:16px; line-height:32px; margin-bottom:16px;">
+ {{t "rfqInvite.bodyIntro" lng=language}}<br/>
+ <strong>{{t "rfqInvite.projectName" lng=language}}:</strong> {{projectName}}<br />
+ <strong>{{t "rfqInvite.projectCode" lng=language}}:</strong> {{projectCode}}<br />
+ <strong>{{t "rfqInvite.dueDate" lng=language}}:</strong> {{dueDate}}<br />
+ <strong>{{t "rfqInvite.description" lng=language}}:</strong> {{description}}
+</p>
- <!-- 아이템 목록 -->
- <p>
- {{t "rfqInvite.itemListTitle" lng=language}}
- </p>
- <ul>
- {{#each items}}
- <li>
- <strong>{{this.itemCode}}</strong>
- ({{this.quantity}} {{this.uom}})
- - {{this.description}}
- </li>
- {{/each}}
- </ul>
+<p style="font-size:16px; line-height:32px; margin-bottom:8px;">
+ {{t "rfqInvite.itemListTitle" lng=language}}
+</p>
- <!-- 로그인/접속 안내 -->
- <p>
- {{t "rfqInvite.moreDetail" lng=language}}
- </p>
- <a class="btn" href="{{loginUrl}}" target="_blank">
- {{t "rfqInvite.viewButton" lng=language}}
- </a>
+<ul style="margin-left:4px; font-size:16px; line-height:32px;">
+ {{#each items}}
+ <li><strong>{{this.itemCode}}</strong> ({{this.quantity}} {{this.uom}}) - {{this.description}}</li>
+ {{/each}}
+</ul>
- <!-- 기타 안내 문구 -->
- <p>
- {{t "rfqInvite.supportMsg" lng=language}}
- </p>
+<p style="font-size:14px; line-height:32px; margin-top:16px;">
+ {{t "rfqInvite.moreDetail" lng=language}}
+</p>
- <!-- 푸터 -->
- <div class="footer">
- <p>
- {{t "rfqInvite.footerDisclaimer" lng=language}}
- </p>
- </div>
- </div>
- </body>
-</html> \ No newline at end of file
+<p>
+ <a href="{{loginUrl}}" target="_blank" style="display: inline-block; width: 250px; padding: 12px 20px; background-color: #163CC4; color: #ffffff !important; text-decoration: none; border-radius: 8px; text-align: center; line-height: 28px;">
+ {{t "rfqInvite.viewButton" lng=language}}
+ </a>
+</p>
+
+<p style="font-size:16px; line-height:24px; margin-top:16px;">
+ {{t "rfqInvite.supportMsg" lng=language}}
+</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-active.hbs b/lib/mail/templates/vendor-active.hbs
index 6458e2fb..a2643f94 100644
--- a/lib/mail/templates/vendor-active.hbs
+++ b/lib/mail/templates/vendor-active.hbs
@@ -1,51 +1,25 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <title>벤더 등록이 완료되었습니다</title>
- <style>
- body { font-family: 'Malgun Gothic', sans-serif; line-height: 1.6; }
- .container { max-width: 600px; margin: 0 auto; padding: 20px; }
- .header { background-color: #f5f5f5; padding: 10px; text-align: center; }
- .content { padding: 20px 0; }
- .vendor-code { font-size: 18px; font-weight: bold; background-color: #f0f0f0;
- padding: 10px; margin: 15px 0; text-align: center; }
- .button { display: inline-block; background-color: #28a745; color: white;
- padding: 10px 20px; text-decoration: none; border-radius: 4px; }
- .footer { margin-top: 20px; font-size: 12px; color: #777; }
- </style>
-</head>
-<body>
- <div class="container">
- <div class="header">
- <h2>벤더 등록이 완료되었습니다</h2>
- </div>
-
- <div class="content">
- <p>{{vendorName}} 귀하,</p>
-
- <p>축하합니다! 귀사의 벤더 등록이 완료되었으며 벤더 정보가 당사 시스템에 성공적으로 등록되었습니다.</p>
-
- <p>귀사의 벤더 코드는 다음과 같습니다:</p>
- <div class="vendor-code">{{vendorCode}}</div>
-
- <p>향후 모든 의사소통 및 거래 시 이 벤더 코드를 사용해 주십시오. 이제 벤더 포털에 접속하여 계정 관리, 발주서 확인 및 인보이스 제출을 할 수 있습니다.</p>
-
- <p style="text-align: center; margin: 25px 0;">
- <a href="{{portalUrl}}" class="button">벤더 포털 접속</a>
- </p>
-
- <p>벤더 계정에 관한 질문이나 도움이 필요하시면 당사 벤더 관리팀에 문의해 주십시오.</p>
-
- <p>파트너십에 감사드립니다.</p>
-
- <p>감사합니다.<br>
- eVCP 팀</p>
- </div>
-
- <div class="footer">
- <p>이 메시지는 자동으로 발송되었습니다. 이 이메일에 회신하지 마십시오.</p>
- </div>
- </div>
-</body>
-</html> \ No newline at end of file
+{{> header logoUrl=logoUrl }}
+
+<h2 style="font-size:28px; margin-bottom:16px;">협력업체 등록이 완료되었습니다</h2>
+
+<p style="font-size:16px;">{{vendorName}} 귀하,</p>
+
+<p style="font-size:16px;">축하합니다! 귀사의 협력업체 등록이 완료되었으며 협력업체 정보가 당사 시스템에 성공적으로 등록되었습니다.</p>
+
+<p style="font-size:16px;">귀사의 협력업체 코드는 다음과 같습니다:</p>
+
+<div style="font-size:24px; font-weight:bold; letter-spacing:2px; background-color:#F1F5F9; padding:8px 16px; border-radius:4px; display:inline-block; margin:12px 0;">
+ {{vendorCode}}
+</div>
+
+<p style="font-size:1px;">이 코드를 사용하여 포털에 접속하고 계정을 관리할 수 있습니다.</p>
+
+<p style="text-align: center; margin: 25px 0;">
+ <a href="{{portalUrl}}" target="_blank" style="display:inline-block; background-color:#163CC4; color:#ffffff; padding:10px 20px; text-decoration:none; border-radius:4px;">협력업체 포털 접속</a>
+</p>
+
+<p style="font-size:16px;">문의사항이 있으시면 협력업체 관리팀에 연락해 주세요.</p>
+
+<p style="font-size:16px;">감사합니다.<br />eVCP 팀</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-additional-info.hbs b/lib/mail/templates/vendor-additional-info.hbs
index 9d93bb7b..17d9b130 100644
--- a/lib/mail/templates/vendor-additional-info.hbs
+++ b/lib/mail/templates/vendor-additional-info.hbs
@@ -1,76 +1,19 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>{{t "email.additionalInfo.title"}}</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- line-height: 1.6;
- color: #333;
- max-width: 600px;
- margin: 0 auto;
- padding: 20px;
- }
- .header {
- background-color: #0056b3;
- color: white;
- padding: 20px;
- text-align: center;
- border-radius: 5px 5px 0 0;
- }
- .content {
- padding: 20px;
- border: 1px solid #ddd;
- border-top: none;
- border-radius: 0 0 5px 5px;
- }
- .button {
- background-color: #0056b3;
- color: white;
- padding: 12px 20px;
- text-decoration: none;
- border-radius: 5px;
- display: inline-block;
- margin-top: 15px;
- font-weight: bold;
- }
- .footer {
- margin-top: 30px;
- text-align: center;
- font-size: 0.8em;
- color: #777;
- }
- </style>
-</head>
-<body>
- <div class="header">
- <h1>{{t "email.additionalInfo.header"}}</h1>
- </div>
+{{#> layout title=(t "email.additionalInfo.title")}}
+ <p>{{t "email.additionalInfo.greeting" vendorName=vendorName}}</p>
- <div class="content">
- <p>{{t "email.additionalInfo.greeting" vendorName=vendorName}}</p>
-
- <p>{{t "email.additionalInfo.messageP1"}}</p>
-
- <p>{{t "email.additionalInfo.messageP2"}}</p>
-
- <p>{{t "email.additionalInfo.messageP3"}}</p>
-
- <div style="text-align: center;">
- <a href="{{vendorInfoUrl}}" class="button">{{t "email.additionalInfo.buttonText"}}</a>
- </div>
-
- <p>{{t "email.additionalInfo.messageP4"}}</p>
-
- <p>{{t "email.additionalInfo.closing"}}</p>
-
- <p>EVCP Team</p>
- </div>
+ <p>{{t "email.additionalInfo.messageP1"}}</p>
+
+ <p>{{t "email.additionalInfo.messageP2"}}</p>
+
+ <p>{{t "email.additionalInfo.messageP3"}}</p>
- <div class="footer">
- <p>© {{currentYear}} EVCP. {{t "email.additionalInfo.footerText"}}</p>
+ <div class="button-container">
+ <a href="{{vendorInfoUrl}}" class="button">{{t "email.additionalInfo.buttonText"}}</a>
</div>
-</body>
-</html> \ No newline at end of file
+
+ <p>{{t "email.additionalInfo.messageP4"}}</p>
+
+ <p>{{t "email.additionalInfo.closing"}}</p>
+
+ <p>EVCP Team</p>
+{{/layout}} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-invitation.hbs b/lib/mail/templates/vendor-invitation.hbs
index d85067f4..9b68c10c 100644
--- a/lib/mail/templates/vendor-invitation.hbs
+++ b/lib/mail/templates/vendor-invitation.hbs
@@ -1,86 +1,20 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Vendor Registration Invitation</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- line-height: 1.6;
- color: #333333;
- margin: 0;
- padding: 0;
- }
- .container {
- max-width: 600px;
- margin: 0 auto;
- padding: 20px;
- }
- .header {
- background-color: #2563EB;
- padding: 20px;
- text-align: center;
- color: white;
- }
- .content {
- padding: 20px;
- background-color: #ffffff;
- }
- .footer {
- padding: 20px;
- text-align: center;
- font-size: 12px;
- color: #666666;
- background-color: #f5f5f5;
- }
- .button {
- display: inline-block;
- background-color: #2563EB;
- color: white;
- padding: 12px 24px;
- text-decoration: none;
- border-radius: 4px;
- margin: 20px 0;
- font-weight: bold;
- }
- .highlight {
- background-color: #f8f9fa;
- padding: 15px;
- border-left: 4px solid #2563EB;
- margin: 20px 0;
- }
- </style>
-</head>
-<body>
- <div class="container">
- <div class="header">
- <h1>{{t "email.vendor.invitation.title"}}</h1>
- </div>
- <div class="content">
- <p>{{t "email.vendor.invitation.greeting"}} {{companyName}},</p>
-
- <p>{{t "email.vendor.invitation.message"}}</p>
-
- <div class="highlight">
- <p>{{t "email.vendor.invitation.details"}}</p>
- </div>
-
- <div style="text-align: center;">
- <a href="{{registrationLink}}" class="button">{{t "email.vendor.invitation.register_now"}}</a>
- </div>
-
- <p>{{t "email.vendor.invitation.expire_notice"}}</p>
-
- <p>{{t "email.vendor.invitation.footer"}}</p>
-
- <p>{{t "email.vendor.invitation.signature"}}<br>
- EVCP {{t "email.vendor.invitation.team"}}</p>
- </div>
- <div class="footer">
- <p>© {{currentYear}} EVCP. {{t "email.vendor.invitation.copyright"}}</p>
- <p>{{t "email.vendor.invitation.no_reply"}}</p>
- </div>
+{{#> layout title=(t "email.vendor.invitation.title")}}
+ <p>{{t "email.vendor.invitation.greeting"}} {{companyName}},</p>
+
+ <p>{{t "email.vendor.invitation.message"}}</p>
+
+ <div class="info-box">
+ <p>{{t "email.vendor.invitation.details"}}</p>
</div>
-</body>
-</html> \ No newline at end of file
+
+ <div class="button-container">
+ <a href="{{registrationLink}}" class="button">{{t "email.vendor.invitation.register_now"}}</a>
+ </div>
+
+ <p>{{t "email.vendor.invitation.expire_notice"}}</p>
+
+ <p>{{t "email.vendor.invitation.footer"}}</p>
+
+ <p>{{t "email.vendor.invitation.signature"}}<br>
+ EVCP {{t "email.vendor.invitation.team"}}</p>
+{{/layout}} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-pq-comment.hbs b/lib/mail/templates/vendor-pq-comment.hbs
index b60deedc..3606bcdb 100644
--- a/lib/mail/templates/vendor-pq-comment.hbs
+++ b/lib/mail/templates/vendor-pq-comment.hbs
@@ -1,128 +1,41 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>PQ Review Comments</title>
- <style>
- body {
- font-family: Arial, sans-serif;
- line-height: 1.6;
- color: #333;
- margin: 0;
- padding: 0;
- }
- .container {
- max-width: 600px;
- margin: 0 auto;
- padding: 20px;
- }
- .header {
- text-align: center;
- padding: 20px 0;
- border-bottom: 1px solid #eee;
- }
- .content {
- padding: 20px 0;
- }
- .footer {
- text-align: center;
- padding: 20px 0;
- font-size: 12px;
- color: #999;
- border-top: 1px solid #eee;
- }
- .btn {
- display: inline-block;
- padding: 10px 20px;
- font-size: 16px;
- color: #fff;
- background-color: #0071bc;
- text-decoration: none;
- border-radius: 4px;
- margin: 20px 0;
- }
- .comment-section {
- margin: 20px 0;
- padding: 15px;
- background-color: #f9f9f9;
- border-left: 4px solid #0071bc;
- }
- .comment-item {
- margin-bottom: 15px;
- padding-bottom: 15px;
- border-bottom: 1px solid #eee;
- }
- .comment-item:last-child {
- border-bottom: none;
- }
- .comment-code {
- font-weight: bold;
- color: #0071bc;
- display: inline-block;
- min-width: 60px;
- }
- .comment-title {
- font-weight: bold;
- color: #333;
- }
- .important {
- color: #d14;
- font-weight: bold;
- }
- </style>
-</head>
-<body>
- <div class="container">
- <div class="header">
- <h1>PQ Review Comments</h1>
- </div>
-
- <div class="content">
- <p>Dear {{name}} ({{vendorCode}}),</p>
-
- <p>Thank you for submitting your PQ information. Our review team has completed the initial review and has requested some changes or additional information.</p>
-
- <p><span class="important">Action Required:</span> Please log in to your account and update your PQ submission based on the comments below.</p>
-
- {{#if hasGeneralComment}}
- <div class="comment-section">
- <h3>General Comments:</h3>
- <p>{{generalComment}}</p>
- </div>
- {{/if}}
-
- <div class="comment-section">
- <h3>Specific Item Comments ({{commentCount}}):</h3>
- {{#each comments}}
- <div class="comment-item">
- <div>
- <span class="comment-code">{{code}}</span>
- <span class="comment-title">{{checkPoint}}</span>
- </div>
- <p>{{text}}</p>
- </div>
- {{/each}}
- </div>
-
- <p>Please review these comments and make the necessary updates to your PQ submission. Once you have made the requested changes, you can resubmit your PQ for further review.</p>
-
- <div style="text-align: center;">
- <a href="{{loginUrl}}" class="btn">Log in to update your PQ</a>
- </div>
-
- <p>If you have any questions or need assistance, please contact our support team.</p>
-
- <p>Thank you for your cooperation.</p>
-
- <p>Best regards,<br>
- PQ Review Team</p>
- </div>
-
- <div class="footer">
- <p>This is an automated email. Please do not reply to this message.</p>
- <p>&copy; {{currentYear}} Your Company Name. All rights reserved.</p>
+{{> header logoUrl=logoUrl }}
+
+<h1 style="text-align:center; font-size:28px; margin-bottom:20px;">PQ Review Comments</h1>
+
+<p style="font-size:16px;">Dear {{name}} ({{vendorCode}}),</p>
+
+<p style="font-size:16px;">Thank you for submitting your PQ information. Our review team has completed the initial review and has requested some changes or additional information.</p>
+
+<p style="font-size:16px;"><span style="color:#d14; font-weight:bold;">Action Required:</span> Please log in to your account and update your PQ submission based on the comments below.</p>
+
+{{#if hasGeneralComment}}
+<div style="margin:20px 0; padding:15px; background-color:#f9f9f9; border-left:4px solid #0071bc;">
+ <h3>General Comments:</h3>
+ <p>{{generalComment}}</p>
+</div>
+{{/if}}
+
+<div style="margin:20px 0; padding:15px; background-color:#f9f9f9; border-left:4px solid #0071bc;">
+ <h3>Specific Item Comments ({{commentCount}}):</h3>
+ {{#each comments}}
+ <div style="margin-bottom:15px; border-bottom:1px solid #eee; padding-bottom:15px;">
+ <div>
+ <span style="font-weight:bold; color:#0071bc; display:inline-block; min-width:60px;">{{code}}</span>
+ <span style="font-weight:bold; color:#333;">{{checkPoint}}</span>
</div>
+ <p>{{text}}</p>
</div>
-</body>
-</html> \ No newline at end of file
+ {{/each}}
+</div>
+
+<p style="font-size:16px;">Please review these comments and update your PQ submission.</p>
+
+<div style="text-align:center; margin:20px 0;">
+ <a href="{{loginUrl}}" class="btn" style="padding:10px 20px; font-size:16px; background-color:#0071bc; color:#fff; text-decoration:none; border-radius:4px;">Log in to update your PQ</a>
+</div>
+
+<p style="font-size:16px;">If you have any questions, please contact our support team.</p>
+
+<p style="font-size:16px;">Thank you,<br />PQ Review Team</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=currentYear }} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-pq-status.hbs b/lib/mail/templates/vendor-pq-status.hbs
index 541a6137..4a3fece5 100644
--- a/lib/mail/templates/vendor-pq-status.hbs
+++ b/lib/mail/templates/vendor-pq-status.hbs
@@ -1,48 +1,23 @@
-<!-- file: templates/vendor-pq-status.hbs -->
+{{> header logoUrl=logoUrl }}
-<html>
- <body style="font-family: sans-serif; margin: 0; padding: 0;">
- <table width="100%" cellspacing="0" cellpadding="20" style="background-color: #f7f7f7;">
- <tr>
- <td>
- <table width="600" cellspacing="0" cellpadding="20" style="background-color: #ffffff; margin: 0 auto;">
- <tr>
- <td style="text-align: center;">
- <h1 style="margin-bottom: 0.5rem;">Vendor PQ Status Update</h1>
- </td>
- </tr>
- <tr>
- <td>
- <p>Hello {{name}},</p>
- <p>
- Your vendor status has been updated to
- <strong>{{status}}</strong>.
- </p>
- <p>
- You can log in to see details and take further action:
- <br />
- <a href="{{loginUrl}}" style="color: #007bff; text-decoration: underline;">
- Go to Portal
- </a>
- </p>
- <p>
- If you have any questions, feel free to contact us.
- </p>
- <p>Thank you,<br/>
- The PQ Team
- </p>
- </td>
- </tr>
- <tr>
- <td style="text-align: center; border-top: 1px solid #eee;">
- <small style="color: #999;">
- &copy; 2023 MyCompany
- </small>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </body>
-</html> \ No newline at end of file
+<h1 style="text-align:center; font-size:28px; margin-bottom:20px;">Vendor PQ Status Update</h1>
+
+<p style="font-size:16px;">Hello {{name}},</p>
+
+<p style="font-size:16px;">
+ Your vendor status has been updated to <strong>{{status}}</strong>.
+</p>
+
+<p style="font-size:16px;">
+ You can log in to see details and take further action:
+ <br />
+ <a href="{{loginUrl}}" target="_blank" style="color:#163CC4; text-decoration:underline;">
+ Go to Portal
+ </a>
+</p>
+
+<p style="font-size:16px;">If you have any questions, feel free to contact us.</p>
+
+<p style="font-size:16px;">Thank you,<br/>The PQ Team</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file
diff --git a/lib/mail/templates/vendor-project-pq-status.hbs b/lib/mail/templates/vendor-project-pq-status.hbs
new file mode 100644
index 00000000..c051ce02
--- /dev/null
+++ b/lib/mail/templates/vendor-project-pq-status.hbs
@@ -0,0 +1,42 @@
+{{> header logoUrl=logoUrl }}
+
+<h1 style="text-align:center; font-size:28px; margin-bottom:20px;">Vendor Project PQ Status Update</h1>
+
+<p style="font-size:16px;">Hello {{name}},</p>
+
+<p style="font-size:16px;">
+ Your vendor status for <strong>{{projectName}}</strong> has been updated to <strong>{{status}}</strong>.
+</p>
+
+{{#if hasRejectionReason}}
+<p style="font-size:16px; padding:15px; background-color:#f8f8f8; border-left:4px solid #e74c3c;">
+ <strong>Reason for rejection:</strong><br/>
+ {{rejectionReason}}
+</p>
+{{/if}}
+
+{{#if approvalDate}}
+<p style="font-size:16px;">
+ <strong>Approval Date:</strong> {{approvalDate}}
+</p>
+{{/if}}
+
+{{#if rejectionDate}}
+<p style="font-size:16px;">
+ <strong>Rejection Date:</strong> {{rejectionDate}}
+</p>
+{{/if}}
+
+<p style="font-size:16px;">
+ You can log in to see details and take further action:
+ <br />
+ <a href="{{loginUrl}}" target="_blank" style="color:#163CC4; text-decoration:underline;">
+ Go to Portal
+ </a>
+</p>
+
+<p style="font-size:16px;">If you have any questions, feel free to contact us.</p>
+
+<p style="font-size:16px;">Thank you,<br/>The PQ Team</p>
+
+{{> footer logoUrl=logoUrl companyName=companyName year=year }} \ No newline at end of file