diff options
Diffstat (limited to 'lib/mail/templates')
| -rw-r--r-- | lib/mail/templates/rfq-due-date-change.hbs | 235 | ||||
| -rw-r--r-- | lib/mail/templates/rfq-invitation.hbs | 301 | ||||
| -rw-r--r-- | lib/mail/templates/rfq-resend.hbs | 364 |
3 files changed, 900 insertions, 0 deletions
diff --git a/lib/mail/templates/rfq-due-date-change.hbs b/lib/mail/templates/rfq-due-date-change.hbs new file mode 100644 index 00000000..9ff268bc --- /dev/null +++ b/lib/mail/templates/rfq-due-date-change.hbs @@ -0,0 +1,235 @@ +<!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 Due Date Change Notification{{/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: 600px; + margin: 0 auto; + padding: 20px; + background-color: #f5f5f5; + } + .container { + background-color: white; + border-radius: 8px; + padding: 30px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + .header { + border-bottom: 2px solid #0066cc; + padding-bottom: 20px; + margin-bottom: 30px; + } + .header h1 { + color: #0066cc; + margin: 0; + font-size: 24px; + } + .alert-box { + background-color: #fff3cd; + border: 1px solid #ffc107; + border-radius: 4px; + padding: 15px; + margin: 20px 0; + } + .alert-box strong { + color: #856404; + } + .info-table { + width: 100%; + border-collapse: collapse; + margin: 20px 0; + } + .info-table th { + text-align: left; + padding: 10px; + background-color: #f8f9fa; + border: 1px solid #dee2e6; + width: 30%; + font-weight: 600; + } + .info-table td { + padding: 10px; + border: 1px solid #dee2e6; + } + .date-change { + background-color: #e3f2fd; + border-radius: 4px; + padding: 15px; + margin: 20px 0; + text-align: center; + } + .old-date { + color: #6c757d; + text-decoration: line-through; + font-size: 16px; + margin-bottom: 10px; + } + .arrow { + font-size: 24px; + color: #0066cc; + margin: 10px 0; + } + .new-date { + color: #0066cc; + font-size: 20px; + font-weight: bold; + } + .button { + display: inline-block; + padding: 12px 24px; + background-color: #0066cc; + color: white; + text-decoration: none; + border-radius: 4px; + font-weight: 600; + margin: 20px 0; + } + .button:hover { + background-color: #0052a3; + } + .footer { + margin-top: 30px; + padding-top: 20px; + border-top: 1px solid #dee2e6; + font-size: 14px; + color: #6c757d; + } + .contact-info { + background-color: #f8f9fa; + padding: 15px; + border-radius: 4px; + margin-top: 20px; + } + </style> +</head> +<body> + <div class="container"> + <div class="header"> + <h1>{{#if (eq language 'ko')}}RFQ 마감일 변경 안내{{else}}RFQ Due Date Change Notification{{/if}}</h1> + </div> + + <p> + {{#if (eq language 'ko')}} + {{vendorName}} 귀하,<br><br> + 아래 RFQ의 마감일이 변경되었음을 알려드립니다. + {{else}} + Dear {{vendorName}},<br><br> + We would like to inform you that the due date for the following RFQ has been changed. + {{/if}} + </p> + + <div class="alert-box"> + <strong>⚠️ {{#if (eq language 'ko')}}중요: 마감일이 변경되었습니다{{else}}Important: Due date has been changed{{/if}}</strong> + </div> + + <table class="info-table"> + <tr> + <th>{{#if (eq language 'ko')}}RFQ 번호{{else}}RFQ Number{{/if}}</th> + <td><strong>{{rfqCode}}</strong></td> + </tr> + {{#if rfqTitle}} + <tr> + <th>{{#if (eq language 'ko')}}RFQ 제목{{else}}RFQ Title{{/if}}</th> + <td>{{rfqTitle}}</td> + </tr> + {{/if}} + {{#if rfqType}} + <tr> + <th>{{#if (eq language 'ko')}}RFQ 유형{{else}}RFQ Type{{/if}}</th> + <td>{{rfqType}}</td> + </tr> + {{/if}} + {{#if projectCode}} + <tr> + <th>{{#if (eq language 'ko')}}프로젝트 코드{{else}}Project Code{{/if}}</th> + <td>{{projectCode}}</td> + </tr> + {{/if}} + {{#if projectName}} + <tr> + <th>{{#if (eq language 'ko')}}프로젝트명{{else}}Project Name{{/if}}</th> + <td>{{projectName}}</td> + </tr> + {{/if}} + {{#if packageNo}} + <tr> + <th>{{#if (eq language 'ko')}}패키지 번호{{else}}Package No{{/if}}</th> + <td>{{packageNo}}</td> + </tr> + {{/if}} + {{#if packageName}} + <tr> + <th>{{#if (eq language 'ko')}}패키지명{{else}}Package Name{{/if}}</th> + <td>{{packageName}}</td> + </tr> + {{/if}} + {{#if itemCode}} + <tr> + <th>{{#if (eq language 'ko')}}품목 코드{{else}}Item Code{{/if}}</th> + <td>{{itemCode}}</td> + </tr> + {{/if}} + {{#if itemName}} + <tr> + <th>{{#if (eq language 'ko')}}품목명{{else}}Item Name{{/if}}</th> + <td>{{itemName}}</td> + </tr> + {{/if}} + </table> + + <div class="date-change"> + <h3>{{#if (eq language 'ko')}}마감일 변경{{else}}Due Date Change{{/if}}</h3> + <div class="old-date"> + {{#if (eq language 'ko')}}기존 마감일: {{else}}Previous Due Date: {{/if}}{{oldDueDate}} + </div> + <div class="arrow">▼</div> + <div class="new-date"> + {{#if (eq language 'ko')}}새 마감일: {{else}}New Due Date: {{/if}}{{newDueDate}} + </div> + </div> + + <p> + {{#if (eq language 'ko')}} + 변경된 마감일까지 견적서를 제출해 주시기 바랍니다. + 견적서 제출은 아래 포털 사이트를 통해 진행하실 수 있습니다. + {{else}} + Please submit your quotation by the new due date. + You can submit your quotation through the portal site below. + {{/if}} + </p> + + <div style="text-align: center;"> + <a href="{{portalUrl}}" class="button"> + {{#if (eq language 'ko')}}포털 사이트 바로가기{{else}}Go to Portal Site{{/if}} + </a> + </div> + + <div class="contact-info"> + <h4>{{#if (eq language 'ko')}}담당자 정보{{else}}Contact Information{{/if}}</h4> + <p> + {{#if (eq language 'ko')}}구매 담당자{{else}}Procurement PIC{{/if}}: {{picName}}<br> + {{#if (eq language 'ko')}}이메일{{else}}Email{{/if}}: <a href="mailto:{{picEmail}}">{{picEmail}}</a> + {{#if engPicName}}<br>{{#if (eq language 'ko')}}기술 담당자{{else}}Engineering PIC{{/if}}: {{engPicName}}{{/if}} + </p> + </div> + + <div class="footer"> + <p> + {{#if (eq language 'ko')}} + 본 메일은 발신 전용입니다. 문의사항이 있으시면 위 담당자에게 연락 주시기 바랍니다.<br> + 감사합니다. + {{else}} + This is an automated email. If you have any questions, please contact the person in charge above.<br> + Thank you. + {{/if}} + </p> + </div> + </div> +</body> +</html>
\ No newline at end of file diff --git a/lib/mail/templates/rfq-invitation.hbs b/lib/mail/templates/rfq-invitation.hbs new file mode 100644 index 00000000..d3064d3c --- /dev/null +++ b/lib/mail/templates/rfq-invitation.hbs @@ -0,0 +1,301 @@ +<!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 Invitation{{/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; + } + .info-section { + background-color: #f8fafc; + border-left: 4px solid #3b82f6; + padding: 20px; + margin: 20px 0; + border-radius: 4px; + } + .info-row { + display: flex; + padding: 8px 0; + border-bottom: 1px solid #e5e7eb; + } + .info-row:last-child { + border-bottom: none; + } + .info-label { + font-weight: 600; + color: #4b5563; + min-width: 150px; + padding-right: 15px; + } + .info-value { + color: #111827; + flex: 1; + } + .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; + } + .custom-message { + background-color: #fef3c7; + border: 1px solid #f59e0b; + padding: 15px; + border-radius: 6px; + margin: 20px 0; + } + .attachments { + background-color: #f0f9ff; + border: 1px solid #3b82f6; + padding: 15px; + border-radius: 6px; + margin: 20px 0; + } + .footer { + margin-top: 40px; + padding-top: 20px; + border-top: 1px solid #e5e7eb; + color: #6b7280; + font-size: 14px; + } + .contact-info { + background-color: #f9fafb; + padding: 15px; + border-radius: 6px; + margin-top: 20px; + } + table { + width: 100%; + border-collapse: collapse; + } + th { + background-color: #f3f4f6; + padding: 10px; + text-align: left; + font-weight: 600; + } + td { + padding: 10px; + border-bottom: 1px solid #e5e7eb; + } + </style> +</head> +<body> + <div class="container"> + <!-- Header --> + <div class="header"> + <div class="logo">{{t 'email.company_name'}}</div> + <h1>{{#if (eq language 'ko')}}견적 요청서 (RFQ){{else}}Request for Quotation{{/if}}</h1> + </div> + + <!-- Greeting --> + <p>{{#if (eq language 'ko')}}{{vendorName}} 귀하{{else}}Dear {{vendorName}}{{/if}},</p> + + <p> + {{#if (eq language 'ko')}} + 귀사를 당사의 입찰에 초대하게 되어 영광입니다. 아래 RFQ에 대한 견적서를 제출해 주시기 바랍니다. + {{else}} + We are pleased to invite your company to submit a quotation for the following RFQ. + {{/if}} + </p> + + <!-- RFQ Code --> + <div class="rfq-code"> + {{#if (eq rfqType '일반견적')}}견적{{else if (eq rfqType 'ITB')}}ITB{{else}}RFQ{{/if}} No: {{rfqCode}} + </div> + + <!-- 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}} + {{#if itemCode}} + <tr> + <td class="info-label">{{#if (eq language 'ko')}}품목{{else}}Item{{/if}}</td> + <td class="info-value">{{itemCode}} - {{itemName}}</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="custom-message"> + <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;"> + {{#if (eq language 'ko')}} + 아래 버튼을 클릭하여 상세 정보를 확인하고 견적서를 제출해 주세요. + {{else}} + Please click the button below to view details and submit your quotation. + {{/if}} + </p> + <a href="{{portalUrl}}" class="action-button"> + {{#if (eq language 'ko')}}견적서 작성하기{{else}}Submit Quotation{{/if}} + </a> + </div> + + <!-- Important Notes --> + <div class="info-section"> + <h4>{{#if (eq language 'ko')}}중요 안내사항{{else}}Important Notes{{/if}}</h4> + <ul> + <li> + {{#if (eq language 'ko')}} + 견적서는 반드시 마감일 이전에 제출해 주시기 바랍니다. + {{else}} + Please ensure your quotation is submitted before the due date. + {{/if}} + </li> + <li> + {{#if (eq language 'ko')}} + 모든 기술 사양 및 상업 조건을 충족하는 견적서를 제출해 주세요. + {{else}} + Please submit a quotation that meets all technical specifications and commercial terms. + {{/if}} + </li> + <li> + {{#if (eq language 'ko')}} + 문의사항이 있으시면 아래 담당자에게 연락 주시기 바랍니다. + {{else}} + If you have any questions, please contact the person below. + {{/if}} + </li> + </ul> + </div> + + <!-- Contact Information --> + <div class="contact-info"> + <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> + {{#if (eq language 'ko')}} + © 2025 {{t 'email.company_name'}}. All rights reserved. | RFQ ID: #{{responseId}} + {{else}} + © 2025 {{t 'email.company_name'}}. All rights reserved. | RFQ ID: #{{responseId}} + {{/if}} + </small> + </p> + </div> + </div> +</body> +</html>
\ No newline at end of file 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 |
