summaryrefslogtreecommitdiff
path: root/lib/soap/ecc/mapper
diff options
context:
space:
mode:
Diffstat (limited to 'lib/soap/ecc/mapper')
-rw-r--r--lib/soap/ecc/mapper/po-mapper.ts64
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,