summaryrefslogtreecommitdiff
path: root/lib/soap
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-11-20 19:36:01 +0900
committerjoonhoekim <26rote@gmail.com>2025-11-20 19:36:01 +0900
commit935fd22e17afc034a472bc2d159de7b9f5e5dcae (patch)
tree6beea33ab38750be17632dffca5e05e644647365 /lib/soap
parentb75b1cd920efd61923f7b2dbc4c49987b7b0c4e1 (diff)
(김준회) PO, POS, swp
- PO: 발주서출력기능 초안 - 벤더측 POS 다운로드 기능 추가 - Contract 생성시 Status 설정 (mapper) - swp document registration table 로직 리팩터링 - swp: 입력가능 문서번호 validation 추가 (리스트 메뉴에서 Completed 된 건)
Diffstat (limited to 'lib/soap')
-rw-r--r--lib/soap/ecc/mapper/po-mapper.ts9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/soap/ecc/mapper/po-mapper.ts b/lib/soap/ecc/mapper/po-mapper.ts
index fef85662..ec7e4fb6 100644
--- a/lib/soap/ecc/mapper/po-mapper.ts
+++ b/lib/soap/ecc/mapper/po-mapper.ts
@@ -12,6 +12,7 @@ import {
ZMM_DT,
} from '@/db/schema/ECC/ecc';
import { eq } from 'drizzle-orm';
+import { ContractStatus } from '@/db/schema/contract';
// ECC 데이터 타입 정의
export type ECCPOHeader = typeof ZMM_HD.$inferInsert & {
@@ -125,7 +126,7 @@ export async function mapECCPOHeaderToBusiness(
throw new Error(`벤더를 찾을 수 없습니다: LIFNR=${eccHeader.LIFNR}, EBELN=${eccHeader.EBELN}`);
}
- // 계약서 내용 구성 (ZMM_NOTE에서 가져옴)
+ // 계약서(발주서) 내용 구성 (ZMM_NOTE에서 가져옴)
let contractContent: string | null = null;
if (eccHeader.notes && eccHeader.notes.length > 0) {
// ZNOTE_SER 순번으로 정렬 후 텍스트 합치기
@@ -145,9 +146,9 @@ export async function mapECCPOHeaderToBusiness(
contractNo: eccHeader.EBELN || '', // EBELN - 구매오더번호
contractName: eccHeader.ZTITLE || eccHeader.EBELN || '', // ZTITLE - 발주제목
contractContent, // 계약서 내용
- // TODO: ZPO_CNFM_STAT 값을 ContractStatus enum으로 매핑하는 로직 필요
- // 현재는 ECC에서 받은 값을 그대로 사용하되, null인 경우 undefined로 변환
- status: eccHeader.ZPO_CNFM_STAT || undefined, // ZPO_CNFM_STAT - 구매오더확인상태
+ // // TODO: ZPO_CNFM_STAT 값을 ContractStatus enum으로 매핑하는 로직 필요
+ // ZPO_CNFM_STAT은 단순히 확인여부로 null or 'C'
+ status: ContractStatus.CONTRACT_TRANSFER, // ECC에서 PO 전송받은 상태
startDate: parseDate(eccHeader.ZPO_DT || null), // ZPO_DT - 발주일자
endDate: null, // TODO: ZMM_DT의 ZPLN_ED_DT(예정종료일자) 중 최대값으로 계산 필요
deliveryDate: null, // TODO: ZMM_DT의 ZPO_DLV_DT(PO납기일자) 중 최대값으로 계산 필요