diff options
Diffstat (limited to 'lib/soap/ecc/mapper/po-mapper.ts')
| -rw-r--r-- | lib/soap/ecc/mapper/po-mapper.ts | 64 |
1 files changed, 52 insertions, 12 deletions
diff --git a/lib/soap/ecc/mapper/po-mapper.ts b/lib/soap/ecc/mapper/po-mapper.ts index 6e282b98..9303cbcd 100644 --- a/lib/soap/ecc/mapper/po-mapper.ts +++ b/lib/soap/ecc/mapper/po-mapper.ts @@ -108,23 +108,63 @@ export async function mapECCPOHeaderToBusiness( throw new Error(`벤더를 찾을 수 없습니다: LIFNR=${eccHeader.LIFNR}`); } - // 매핑 + // 매핑 - SAP ECC 필드명과 함께 주석 추가 const mappedData: ContractData = { projectId, vendorId, - contractNo: eccHeader.EBELN || '', - contractName: eccHeader.ZTITLE || eccHeader.EBELN || '', - status: eccHeader.ZPO_CNFM_STAT || 'ACTIVE', - startDate: parseDate(eccHeader.ZPO_DT || null), + contractNo: eccHeader.EBELN || '', // EBELN - 구매오더번호 + contractName: eccHeader.ZTITLE || eccHeader.EBELN || '', // ZTITLE - 발주제목 + status: eccHeader.ZPO_CNFM_STAT || 'ACTIVE', // ZPO_CNFM_STAT - 구매오더확인상태 + startDate: parseDate(eccHeader.ZPO_DT || null), // ZPO_DT - 발주일자 endDate: null, // ZMM_DT에서 가져와야 함 deliveryDate: null, // ZMM_DT에서 가져와야 함 - paymentTerms: eccHeader.ZTERM || null, - deliveryTerms: eccHeader.INCO1 || null, - deliveryLocation: eccHeader.ZUNLD_PLC_CD || null, - currency: eccHeader.ZPO_CURR || 'KRW', - totalAmount: parseAmount(eccHeader.ZPO_AMT || null), - netTotal: parseAmount(eccHeader.ZPO_AMT || null), - remarks: eccHeader.ETC_2 || null, + + // SAP ECC 기본 필드들 + paymentTerms: eccHeader.ZTERM || null, // ZTERM - 지급조건코드 + deliveryTerms: eccHeader.INCO1 || null, // INCO1 - 인도조건코드 + shippmentPlace: eccHeader.ZSHIPMT_PLC_CD || null, // ZSHIPMT_PLC_CD - 선적지코드 + deliveryLocation: eccHeader.ZUNLD_PLC_CD || null, // ZUNLD_PLC_CD - 하역지코드 + + // SAP ECC 추가 필드들 + poVersion: eccHeader.ZPO_VER ? parseInt(eccHeader.ZPO_VER) : null, // ZPO_VER - 발주버전 + purchaseDocType: eccHeader.BSART || null, // BSART - 구매문서유형 + purchaseOrg: eccHeader.EKORG || null, // EKORG - 구매조직코드 + purchaseGroup: eccHeader.EKGRP || null, // EKGRP - 구매그룹코드 + exchangeRate: eccHeader.WKURS ? parseAmount(eccHeader.WKURS) : null, // WKURS - 환율 + poConfirmStatus: eccHeader.ZPO_CNFM_STAT || null, // ZPO_CNFM_STAT - 구매오더확인상태 + + // 계약/보증 관련 + contractGuaranteeCode: eccHeader.ZCNRT_GRNT_CD || null, // ZCNRT_GRNT_CD - 계약보증코드 + defectGuaranteeCode: eccHeader.ZDFCT_GRNT_CD || null, // ZDFCT_GRNT_CD - 하자보증코드 + guaranteePeriodCode: eccHeader.ZGRNT_PRD_CD || null, // ZGRNT_PRD_CD - 보증기간코드 + advancePaymentYn: eccHeader.ZPAMT_YN || null, // ZPAMT_YN - 선급금여부 + + // 금액 관련 + budgetAmount: parseAmount(eccHeader.ZBGT_AMT || null), // ZBGT_AMT - 예산금액 + budgetCurrency: eccHeader.ZBGT_CURR || null, // ZBGT_CURR - 예산금액 통화키 + currency: eccHeader.ZPO_CURR || 'KRW', // ZPO_CURR - 통화키 + totalAmount: parseAmount(eccHeader.ZPO_AMT || null), // ZPO_AMT - 발주금액 + totalAmountKrw: parseAmount(eccHeader.ZPO_AMT_KRW || null), // ZPO_AMT_KRW - 발주금액 KRW + + // 전자계약/승인 관련 + electronicContractYn: eccHeader.ZELC_CNRT_ND_YN || null, // ZELC_CNRT_ND_YN - 전자계약필요여부 + electronicApprovalDate: parseDate(eccHeader.ZELC_AGR_DT || null), // ZELC_AGR_DT - 전자승인일자 + electronicApprovalTime: eccHeader.ZELC_AGR_TM || null, // ZELC_AGR_TM - 전자승인시간 + ownerApprovalYn: eccHeader.ZOWN_AGR_IND_YN || null, // ZOWN_AGR_IND_YN - 선주승인필요여부 + + // 기타 + plannedInOutFlag: eccHeader.ZPLN_INO_GB || null, // ZPLN_INO_GB - 계획내외구분 + settlementStandard: eccHeader.ZECAL_BSE || null, // ZECAL_BSE - 정산기준 + weightSettlementFlag: eccHeader.ZWGT_ECAL_GB || null, // ZWGT_ECAL_GB - 중량정산구분 + + // 연동제 관련 + priceIndexYn: eccHeader.ZDLV_PRICE_T || null, // ZDLV_PRICE_T - 납품대금연동제대상여부 + writtenContractNo: eccHeader.ZWEBELN || null, // ZWEBELN - 서면계약번호 + contractVersion: eccHeader.ZVER_NO ? parseInt(eccHeader.ZVER_NO) : null, // ZVER_NO - 서면계약차수 + + netTotal: parseAmount(eccHeader.ZPO_AMT || null), // ZPO_AMT와 동일 + remarks: eccHeader.ETC_2 || null, // ETC_2 - 확장2 + // 기본값들 discount: null, tax: null, |
