diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 11:16:32 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-11-24 11:16:32 +0000 |
| commit | a8674e6b91fb4d356c311fad0251878de154da53 (patch) | |
| tree | 8bdf91ef99b2628f319df37912ccede1e2f5009c /lib/approval | |
| parent | 68160eba15a2c8408329b6e14b94d5e44fa7e3ab (diff) | |
(최겸) 구매 입찰 수정(폐찰, 낙찰 결재 기능 추가 등)
Diffstat (limited to 'lib/approval')
| -rw-r--r-- | lib/approval/handlers-registry.ts | 10 | ||||
| -rw-r--r-- | lib/approval/templates/입찰 결과 업체 선정 품의 요청서.html | 788 | ||||
| -rw-r--r-- | lib/approval/templates/폐찰 품의 요청서.html | 581 |
3 files changed, 1379 insertions, 0 deletions
diff --git a/lib/approval/handlers-registry.ts b/lib/approval/handlers-registry.ts index 5c173565..beb6b971 100644 --- a/lib/approval/handlers-registry.ts +++ b/lib/approval/handlers-registry.ts @@ -68,6 +68,16 @@ export async function initializeApprovalHandlers() { // 입찰초대 핸들러 등록 (결재 승인 후 실행될 함수 requestBiddingInvitationInternal) registerActionHandler('bidding_invitation', requestBiddingInvitationInternal); + // 9. 폐찰 핸들러 + const { requestBiddingClosureInternal } = await import('@/lib/bidding/handlers'); + // 폐찰 핸들러 등록 (결재 승인 후 실행될 함수 requestBiddingClosureInternal) + registerActionHandler('bidding_closure', requestBiddingClosureInternal); + + // 10. 낙찰 핸들러 + const { requestBiddingAwardInternal } = await import('@/lib/bidding/handlers'); + // 낙찰 핸들러 등록 (결재 승인 후 실행될 함수 requestBiddingAwardInternal) + registerActionHandler('bidding_award', requestBiddingAwardInternal); + // ... 추가 핸들러 등록 console.log('[Approval Handlers] All handlers registered successfully'); diff --git a/lib/approval/templates/입찰 결과 업체 선정 품의 요청서.html b/lib/approval/templates/입찰 결과 업체 선정 품의 요청서.html new file mode 100644 index 00000000..50e1ff54 --- /dev/null +++ b/lib/approval/templates/입찰 결과 업체 선정 품의 요청서.html @@ -0,0 +1,788 @@ +<div + style=" + max-width: 1000px; + margin: 0 auto; + font-family: 'Malgun Gothic', 'Segoe UI', sans-serif; + font-size: 14px; + color: #333; + line-height: 1.5; + border: 1px solid #666; /* 전체적인 테두리 추가 */ + " +> + + <!-- 1. 제목 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 0px; + border-bottom: 2px solid #000; + " + > + <thead> + <tr> + <th + style=" + background-color: #fff; + color: #000; + padding: 15px; + text-align: center; + font-size: 20px; + font-weight: 700; + " + > + 입찰 결과 업체 선정 품의 요청서 ({{제목}}) + </th> + </tr> + <tr> + <td + style=" + padding: 5px 15px; + text-align: right; + font-size: 12px; + color: #666; + border-bottom: 1px solid #ccc; + " + > + *결재 완료 후 낙찰이 반영되며, 협력사로 통보됩니다. + </td> + </tr> + </thead> + </table> + + + + <!-- 2. 입찰 기본 정보 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="4" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 입찰 기본 정보 + </th> + </tr> + </thead> + <tbody> + <!-- 1행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰명 + </td> + <td + style=" + padding: 8px 10px; + width: 35%; + border: 1px solid #ccc; + " + > + {{입찰명}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰번호 + </td> + <td + style=" + padding: 8px 10px; + width: 35%; + border: 1px solid #ccc; + " + > + {{입찰번호}} + </td> + </tr> + <!-- 2행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 낙찰업체수 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{낙찰업체수}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 계약구분 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{계약구분}} + </td> + </tr> + <!-- 3행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + P/R번호 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{P/R번호}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 예산 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{예산}} + </td> + </tr> + <!-- 4행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 내정액 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{내정액}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰담당자 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{입찰담당자}} + </td> + </tr> + <!-- 5행: 입찰 개요 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰 개요 + </td> + <td + colspan="3" + style=" + padding: 8px 10px; + height: 80px; + border: 1px solid #ccc; + vertical-align: top; + " + > + {{입찰개요}} + </td> + </tr> + </tbody> + </table> + + + + <!-- 3. 업체 선정 결과 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="11" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 업체 선정 결과 + </th> + </tr> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 선정 사유 + </td> + <td + colspan="10" + style=" + padding: 8px 10px; + height: 50px; + border: 1px solid #ccc; + vertical-align: top; + " + > + {{업체선정사유}} + </td> + </tr> + <!-- 업체 선정 결과 테이블 헤더 --> + <tr> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 순번 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 협력사 코드 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 협력사명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 기업규모 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 연동제 희망 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 연동제 적용 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 낙찰 유무 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 12%; + " + > + 확정 금액 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 내정액 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 8%; + " + > + 입찰액 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 입찰액/내정액(%) + </th> + </tr> + </thead> + <tbody> + <!-- 업체 선정 결과 데이터 행 (반복 영역) --> + <tr> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">1</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{협력사_코드_1}}</td> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{협력사명_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{기업규모_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{연동제희망여부_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{연동제적용여부_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{낙찰유무_1}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{확정금액_1}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{내정액_1}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{입찰액_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{비율_1}}</td> + </tr> + <tr> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">2</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{협력사_코드_2}}</td> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{협력사명_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{기업규모_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{연동제희망여부_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{연동제적용여부_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{낙찰유무_2}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{확정금액_2}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{내정액_2}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{입찰액_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{비율_2}}</td> + </tr> + <!-- /업체 선정 결과 데이터 행 --> + </tbody> + </table> + + + + <!-- 4. 자재별 입찰 정보 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="13" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 품목별 입찰 정보 (총 {{대상_자재_수}} 건 - 결재본문 내 표시 품목은 10건 이하로 제한됩니다) + </th> + </tr> + <tr style="font-size: 12px;"> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 순번 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 자재번호 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 자재내역(품목명) + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 구매단위 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 수량 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 수량단위 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 총중량 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 중량단위 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 통화 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 내정액 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 낙찰 협력사명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 입찰액 + </th> + </tr> + </thead> + <tbody> + <!-- 자재별 입찰 정보 데이터 행 (반복 영역) --> + <tr style="font-size: 12px;"> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">1</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{자재번호_1}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{자재내역_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{구매단위_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{수량_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{수량단위_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{총중량_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{중량단위_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{통화_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{내정액_1}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{협력사명_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{입찰액_1}}</td> + </tr> + <tr style="font-size: 12px;"> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">2</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{자재번호_2}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{자재내역_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{구매단위_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{수량_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{수량단위_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{총중량_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{중량단위_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{통화_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{내정액_2}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{협력사명_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{입찰액_2}}</td> + </tr> + <!-- /자재별 입찰 정보 데이터 행 --> + </tbody> + </table> + + + + <!-- 5. 연동제 NOTE (템플릿만 - TODO) --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="3" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 연동제 NOTE + </th> + </tr> + <tr> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 33%; + " + > + 업체명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 33%; + " + > + 연동 합의서 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 34%; + " + > + 미연동 합의서 + </th> + </tr> + </thead> + <tbody> + <!-- 연동제 NOTE 데이터 행 (반복 영역 - 변수 매핑 불필요 - TODO) --> + <tr> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{업체명_연동제_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">[첨부파일 링크 또는 Y/N]</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">[첨부파일 링크 또는 Y/N]</td> + </tr> + <tr> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{업체명_연동제_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">[첨부파일 링크 또는 Y/N]</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">[첨부파일 링크 또는 Y/N]</td> + </tr> + <!-- /연동제 NOTE 데이터 행 --> + </tbody> + </table> + +</div> diff --git a/lib/approval/templates/폐찰 품의 요청서.html b/lib/approval/templates/폐찰 품의 요청서.html new file mode 100644 index 00000000..dafda83c --- /dev/null +++ b/lib/approval/templates/폐찰 품의 요청서.html @@ -0,0 +1,581 @@ +<div + style=" + max-width: 1000px; + margin: 0 auto; + font-family: 'Malgun Gothic', 'Segoe UI', sans-serif; + font-size: 14px; + color: #333; + line-height: 1.5; + border: 1px solid #666; /* 전체적인 테두리 추가 */ + " +> + + <!-- 1. 제목 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 0px; + border-bottom: 2px solid #000; + " + > + <thead> + <tr> + <th + style=" + background-color: #fff; + color: #000; + padding: 15px; + text-align: center; + font-size: 20px; + font-weight: 700; + " + > + 폐찰 품의 요청서 ({{제목}}) + </th> + </tr> + <tr> + <td + style=" + padding: 5px 15px; + text-align: right; + font-size: 12px; + color: #666; + border-bottom: 1px solid #ccc; + " + > + *결재 완료 후 폐찰 처리됩니다. + </td> + </tr> + </thead> + </table> + + + + <!-- 2. 입찰 기본 정보 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="4" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 입찰 기본 정보 + </th> + </tr> + </thead> + <tbody> + <!-- 1행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰명 + </td> + <td + style=" + padding: 8px 10px; + width: 35%; + border: 1px solid #ccc; + " + > + {{입찰명}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰번호 + </td> + <td + style=" + padding: 8px 10px; + width: 35%; + border: 1px solid #ccc; + " + > + {{입찰번호}} + </td> + </tr> + <!-- 2행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 낙찰업체수 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{낙찰업체수}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 계약구분 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{계약구분}} + </td> + </tr> + <!-- 3행 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 내정가 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{내정가}} + </td> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰담당자 + </td> + <td + style=" + padding: 8px 10px; + border: 1px solid #ccc; + " + > + {{입찰담당자}} + </td> + </tr> + <!-- 4행: 입찰 개요 --> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + border: 1px solid #ccc; + text-align: center; + " + > + 입찰 개요 + </td> + <td + colspan="3" + style=" + padding: 8px 10px; + height: 80px; + border: 1px solid #ccc; + vertical-align: top; + " + > + {{입찰개요}} + </td> + </tr> + </tbody> + </table> + + + + <!-- 3. 입찰 현황 및 폐찰 결과 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="7" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 입찰 현황 및 폐찰 결과 + </th> + </tr> + <tr> + <td + style=" + background-color: #f5f5f5; + padding: 8px 10px; + font-weight: 600; + width: 15%; + border: 1px solid #ccc; + text-align: center; + " + > + 폐찰 사유 + </td> + <td + colspan="6" + style=" + padding: 8px 10px; + height: 50px; + border: 1px solid #ccc; + vertical-align: top; + " + > + {{폐찰_사유}} + </td> + </tr> + <!-- 폐찰 결과 테이블 헤더 --> + <tr> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 순번 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 협력사 코드 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 25%; + " + > + 협력사명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 응찰 유무 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 내정가 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 입찰가 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 8px 10px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 입찰가/내정가(%) + </th> + </tr> + </thead> + <tbody> + <!-- 폐찰 결과 데이터 행 (반복 영역) --> + <tr> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">1</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{협력사_코드_1}}</td> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{협력사명_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{응찰유무_1}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{내정가_1}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{입찰가_1}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{비율_1}}</td> + </tr> + <tr> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">2</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{협력사_코드_2}}</td> + <td style="padding: 8px 10px; border: 1px solid #ccc;">{{협력사명_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{응찰유무_2}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{내정가_2}}</td> + <td style="padding: 8px 10px; text-align: right; border: 1px solid #ccc;">{{입찰가_2}}</td> + <td style="padding: 8px 10px; text-align: center; border: 1px solid #ccc;">{{비율_2}}</td> + </tr> + <!-- /폐찰 결과 데이터 행 --> + </tbody> + </table> + + + + <!-- 4. 품목별 입찰 정보 --> + <table + style=" + width: 100%; + border-collapse: collapse; + margin-bottom: 15px; + " + > + <thead> + <tr> + <th + colspan="10" + style=" + background-color: #333; + color: #fff; + padding: 10px; + text-align: left; + font-size: 15px; + font-weight: 600; + border-bottom: 1px solid #666; + " + > + ■ 품목별 입찰 정보 + </th> + </tr> + <tr style="font-size: 12px;"> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 순번 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 품목 코드 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 품목명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 수량 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 단위 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 5%; + " + > + 통화 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 내정가 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 10%; + " + > + 협력사 코드 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 협력사명 + </th> + <th + style=" + background-color: #e8e8e8; + padding: 6px 4px; + text-align: center; + font-weight: 600; + border: 1px solid #ccc; + width: 15%; + " + > + 입찰가 + </th> + </tr> + </thead> + <tbody> + <!-- 품목별 입찰 정보 데이터 행 (반복 영역) --> + <tr style="font-size: 12px;"> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">1</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{품목코드_1}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{품목명_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{수량_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{단위_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{통화_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{내정가_1}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{협력사코드_1}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{협력사명_1}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{입찰가_1}}</td> + </tr> + <tr style="font-size: 12px;"> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">2</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{품목코드_2}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{품목명_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{수량_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{단위_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{통화_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{내정가_2}}</td> + <td style="padding: 6px 4px; text-align: center; border: 1px solid #ccc;">{{협력사코드_2}}</td> + <td style="padding: 6px 4px; border: 1px solid #ccc;">{{협력사명_2}}</td> + <td style="padding: 6px 4px; text-align: right; border: 1px solid #ccc;">{{입찰가_2}}</td> + </tr> + <!-- /품목별 입찰 정보 데이터 행 --> + </tbody> + </table> + +</div> |
