summaryrefslogtreecommitdiff
path: root/lib/mail/templates/rfq-resend.hbs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mail/templates/rfq-resend.hbs')
-rw-r--r--lib/mail/templates/rfq-resend.hbs364
1 files changed, 364 insertions, 0 deletions
diff --git a/lib/mail/templates/rfq-resend.hbs b/lib/mail/templates/rfq-resend.hbs
new file mode 100644
index 00000000..1c21f6b9
--- /dev/null
+++ b/lib/mail/templates/rfq-resend.hbs
@@ -0,0 +1,364 @@
+<!DOCTYPE html>
+<html lang="{{language}}">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>{{#if (eq language 'ko')}}RFQ 재발송{{else}}RFQ Resend{{/if}}</title>
+ <style>
+ body {
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 20px;
+ background-color: #f5f5f5;
+ }
+ .container {
+ background-color: white;
+ border-radius: 8px;
+ padding: 30px;
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+ }
+ .header {
+ border-bottom: 3px solid #1e40af;
+ padding-bottom: 20px;
+ margin-bottom: 30px;
+ }
+ .logo {
+ font-size: 24px;
+ font-weight: bold;
+ color: #1e40af;
+ }
+ .rfq-code {
+ background-color: #eff6ff;
+ color: #1e40af;
+ padding: 10px 15px;
+ border-radius: 6px;
+ display: inline-block;
+ font-weight: bold;
+ margin: 15px 0;
+ }
+ .resend-badge {
+ background-color: #fef3c7;
+ color: #d97706;
+ padding: 5px 10px;
+ border-radius: 4px;
+ display: inline-block;
+ font-weight: bold;
+ margin-left: 10px;
+ font-size: 14px;
+ }
+ .warning-box {
+ background-color: #fef2f2;
+ border: 2px solid #f87171;
+ border-radius: 6px;
+ padding: 15px;
+ margin: 20px 0;
+ }
+ .warning-title {
+ color: #dc2626;
+ font-weight: bold;
+ font-size: 18px;
+ margin-bottom: 10px;
+ }
+ .warning-list {
+ color: #991b1b;
+ margin: 10px 0 10px 20px;
+ }
+ .info-section {
+ background-color: #f8fafc;
+ border-left: 4px solid #3b82f6;
+ padding: 20px;
+ margin: 20px 0;
+ border-radius: 4px;
+ }
+ .due-date {
+ background-color: #fef2f2;
+ color: #dc2626;
+ padding: 15px;
+ border-radius: 6px;
+ text-align: center;
+ margin: 20px 0;
+ font-size: 18px;
+ font-weight: bold;
+ }
+ .action-button {
+ background-color: #3b82f6;
+ color: white;
+ padding: 15px 30px;
+ text-decoration: none;
+ border-radius: 6px;
+ display: inline-block;
+ font-weight: bold;
+ margin: 20px 0;
+ }
+ .action-button:hover {
+ background-color: #2563eb;
+ }
+ .contract-requirements {
+ background-color: #fef3c7;
+ border: 1px solid #f59e0b;
+ padding: 15px;
+ border-radius: 6px;
+ margin: 20px 0;
+ }
+ .contract-list {
+ list-style: none;
+ padding: 0;
+ margin: 10px 0;
+ }
+ .contract-item {
+ padding: 8px 0;
+ border-bottom: 1px solid #fcd34d;
+ display: flex;
+ align-items: center;
+ }
+ .contract-item:last-child {
+ border-bottom: none;
+ }
+ .contract-icon {
+ width: 20px;
+ height: 20px;
+ margin-right: 10px;
+ background-color: #f59e0b;
+ color: white;
+ border-radius: 50%;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ font-weight: bold;
+ font-size: 12px;
+ }
+ .footer {
+ margin-top: 40px;
+ padding-top: 20px;
+ border-top: 1px solid #e5e7eb;
+ color: #6b7280;
+ font-size: 14px;
+ }
+ table {
+ width: 100%;
+ border-collapse: collapse;
+ }
+ td {
+ padding: 10px;
+ border-bottom: 1px solid #e5e7eb;
+ }
+ .info-label {
+ font-weight: 600;
+ color: #4b5563;
+ min-width: 150px;
+ }
+ .info-value {
+ color: #111827;
+ }
+ </style>
+</head>
+<body>
+ <div class="container">
+ <!-- Header -->
+ <div class="header">
+ <div class="logo">{{t 'email.company_name'}}</div>
+ <h1>
+ {{#if (eq language 'ko')}}견적 요청서 재발송{{else}}Request for Quotation - Resend{{/if}}
+ <span class="resend-badge">{{sendVersion}}{{#if (eq language 'ko')}}차{{else}}th Version{{/if}}</span>
+ </h1>
+ </div>
+
+ <!-- Greeting -->
+ <p>{{#if (eq language 'ko')}}{{vendorName}} 귀하{{else}}Dear {{vendorName}}{{/if}},</p>
+
+ <!-- Warning Box -->
+ <div class="warning-box">
+ <div class="warning-title">
+ ⚠️ {{#if (eq language 'ko')}}중요 공지{{else}}Important Notice{{/if}}
+ </div>
+ <p>
+ {{#if (eq language 'ko')}}
+ 본 RFQ는 수정된 내용으로 재발송되는 것입니다. 다음 사항에 유의해 주시기 바랍니다:
+ {{else}}
+ This RFQ is being resent with updated information. Please note the following:
+ {{/if}}
+ </p>
+ <ul class="warning-list">
+ <li>
+ {{#if (eq language 'ko')}}
+ <strong>기존에 작성하신 견적 데이터는 모두 초기화되었습니다.</strong>
+ {{else}}
+ <strong>All previously submitted quotation data has been reset.</strong>
+ {{/if}}
+ </li>
+ <li>
+ {{#if (eq language 'ko')}}
+ 새로운 요구사항과 조건을 확인하시고 견적서를 다시 작성해 주세요.
+ {{else}}
+ Please review the new requirements and conditions and resubmit your quotation.
+ {{/if}}
+ </li>
+ <li>
+ {{#if (eq language 'ko')}}
+ 이전에 제출하신 견적서는 더 이상 유효하지 않습니다.
+ {{else}}
+ Previously submitted quotations are no longer valid.
+ {{/if}}
+ </li>
+ </ul>
+ </div>
+
+ <!-- RFQ Code -->
+ <div class="rfq-code">
+ {{#if (eq rfqType '일반견적')}}견적{{else if (eq rfqType 'ITB')}}ITB{{else}}RFQ{{/if}} No: {{rfqCode}}
+ </div>
+
+ <!-- Basic Contract Requirements -->
+ {{#if hasContractRequirements}}
+ <div class="contract-requirements">
+ <h4>{{#if (eq language 'ko')}}📋 기본계약 요청사항{{else}}📋 Basic Contract Requirements{{/if}}</h4>
+ <p>
+ {{#if (eq language 'ko')}}
+ 다음 계약서류의 제출이 요청됩니다:
+ {{else}}
+ The following contract documents are required:
+ {{/if}}
+ </p>
+ <ul class="contract-list">
+ {{#if contracts.nda}}
+ <li class="contract-item">
+ <span class="contract-icon">N</span>
+ {{#if (eq language 'ko')}}비밀유지계약서 (NDA){{else}}Non-Disclosure Agreement (NDA){{/if}}
+ </li>
+ {{/if}}
+ {{#if contracts.generalGtc}}
+ <li class="contract-item">
+ <span class="contract-icon">G</span>
+ {{#if (eq language 'ko')}}일반 거래약관 (General GTC){{else}}General Terms and Conditions{{/if}}
+ </li>
+ {{/if}}
+ {{#if contracts.projectGtc}}
+ <li class="contract-item">
+ <span class="contract-icon">P</span>
+ {{#if (eq language 'ko')}}
+ 프로젝트 거래약관 (Project {{projectCode}})
+ {{else}}
+ Project Terms and Conditions ({{projectCode}})
+ {{/if}}
+ </li>
+ {{/if}}
+ {{#if contracts.agreement}}
+ <li class="contract-item">
+ <span class="contract-icon">T</span>
+ {{#if (eq language 'ko')}}기술자료 제공 동의서{{else}}Technical Data Agreement{{/if}}
+ </li>
+ {{/if}}
+ </ul>
+ </div>
+ {{/if}}
+
+ <!-- RFQ Information -->
+ <div class="info-section">
+ <h3>{{#if (eq language 'ko')}}견적 요청 정보{{else}}RFQ Information{{/if}}</h3>
+ <table>
+ {{#if rfqTitle}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}견적명{{else}}Title{{/if}}</td>
+ <td class="info-value">{{rfqTitle}}</td>
+ </tr>
+ {{/if}}
+ {{#if projectCode}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}프로젝트{{else}}Project{{/if}}</td>
+ <td class="info-value">{{projectCode}} - {{projectName}}</td>
+ </tr>
+ {{/if}}
+ {{#if packageNo}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}패키지{{else}}Package{{/if}}</td>
+ <td class="info-value">{{packageNo}} - {{packageName}}</td>
+ </tr>
+ {{/if}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}품목 수{{else}}Number of Items{{/if}}</td>
+ <td class="info-value">{{prItemsCount}} {{#if (eq language 'ko')}}개{{else}}items{{/if}}</td>
+ </tr>
+ {{#if attachmentsCount}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}첨부파일{{else}}Attachments{{/if}}</td>
+ <td class="info-value">{{attachmentsCount}} {{#if (eq language 'ko')}}개{{else}}file(s){{/if}}</td>
+ </tr>
+ {{/if}}
+ </table>
+ </div>
+
+ <!-- Due Date -->
+ <div class="due-date">
+ {{#if (eq language 'ko')}}
+ ⏰ 견적 제출 마감일: {{formatDate dueDate 'YYYY년 MM월 DD일'}}
+ {{else}}
+ ⏰ Quotation Due Date: {{formatDate dueDate 'MMMM DD, YYYY'}}
+ {{/if}}
+ </div>
+
+ <!-- Custom Message -->
+ {{#if customMessage}}
+ <div class="info-section">
+ <h4>{{#if (eq language 'ko')}}추가 안내사항{{else}}Additional Information{{/if}}</h4>
+ <p>{{customMessage}}</p>
+ </div>
+ {{/if}}
+
+ <!-- Portal Access -->
+ <div style="text-align: center; margin: 30px 0;">
+ <p style="margin-bottom: 15px; font-weight: bold; color: #dc2626;">
+ {{#if (eq language 'ko')}}
+ ⚠️ 반드시 아래 버튼을 클릭하여 새로운 견적서를 작성해 주세요.
+ {{else}}
+ ⚠️ Please click the button below to submit a new quotation.
+ {{/if}}
+ </p>
+ <a href="{{portalUrl}}" class="action-button">
+ {{#if (eq language 'ko')}}견적서 다시 작성하기{{else}}Resubmit Quotation{{/if}}
+ </a>
+ </div>
+
+ <!-- Contact Information -->
+ <div class="info-section">
+ <h4>{{#if (eq language 'ko')}}담당자 정보{{else}}Contact Information{{/if}}</h4>
+ <table>
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}구매 담당자{{else}}Procurement Contact{{/if}}</td>
+ <td class="info-value">{{picName}}</td>
+ </tr>
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}이메일{{else}}Email{{/if}}</td>
+ <td class="info-value"><a href="mailto:{{picEmail}}">{{picEmail}}</a></td>
+ </tr>
+ {{#if engPicName}}
+ <tr>
+ <td class="info-label">{{#if (eq language 'ko')}}기술 담당자{{else}}Technical Contact{{/if}}</td>
+ <td class="info-value">{{engPicName}}</td>
+ </tr>
+ {{/if}}
+ </table>
+ </div>
+
+ <!-- Footer -->
+ <div class="footer">
+ <p>
+ {{#if (eq language 'ko')}}
+ 본 이메일은 RFQ 시스템에서 자동으로 발송되었습니다.
+ 회신은 위 담당자 이메일로 부탁드립니다.
+ {{else}}
+ This email was sent automatically from the RFQ system.
+ Please reply to the contact email above for any inquiries.
+ {{/if}}
+ </p>
+ <p style="margin-top: 10px;">
+ <small>
+ © 2025 {{t 'email.company_name'}}. All rights reserved. | RFQ ID: #{{responseId}} | Version: {{sendVersion}}
+ </small>
+ </p>
+ </div>
+ </div>
+</body>
+</html> \ No newline at end of file