diff options
Diffstat (limited to 'lib/mail/templates/rfq-invitation.hbs')
| -rw-r--r-- | lib/mail/templates/rfq-invitation.hbs | 301 |
1 files changed, 301 insertions, 0 deletions
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 |
