blob: fbed2387b309c5c99cd0aabb39a4deae3ce0b411 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
/**
* 벤더용 PO 데이터 타입 정의
*/
export interface VendorPO {
id: number
// 선택 체크박스 (1개만 선택 가능)
// 메인 테이블 정보
contractNo: string // PO/계약번호 (EBELN)
revision: string // Rev. (mock 데이터용)
itemNo: string // 품번 (mock 데이터용)
contractStatus: string // 계약상태 (ZPO_CNFM_STAT)
contractType: string // 계약종류 (BSART)
details: string // 상세 (mock 데이터용)
projectName: string // 프로젝트 이름
projectCode?: string // 프로젝트 코드 (PSPID)
contractName: string // 계약명/자재내역 (ZTITLE)
contractPeriod: string // PO/계약기간
contractQuantity: string // PO/계약수량
currency: string // 계약통화 (ZPO_CURR)
paymentTerms: string // 지불조건 (ZTERM)
tax: string // Tax
exchangeRate: string // 환율 (WKURS)
deliveryTerms: string // 인도조건 (INCO1)
purchaseManager: string // 구매/계약담당
poReceiveDate: string // PO/계약수신일 (AEDAT)
contractDate: string // 계약체결일
lcNo?: string // L/C No.
priceIndexTarget: boolean // 납품대금 연동제 대상 (ZDLV_PRICE_T)
linkedContractNo?: string // 연계 PO/계약번호
lastModifiedDate: string // 최종수정일
lastModifiedBy: string // 최종수정자
// SAP ECC 추가 필드들
poVersion?: number // PO 버전 (ZPO_VER)
purchaseDocType?: string // 구매문서유형 (BSART)
purchaseOrg?: string // 구매조직 (EKORG)
purchaseGroup?: string // 구매그룹 (EKGRP)
poConfirmStatus?: string // PO확인상태 (ZPO_CNFM_STAT)
// 계약/보증 관련
contractGuaranteeCode?: string // 계약보증코드 (ZCNRT_GRNT_CD)
defectGuaranteeCode?: string // 하자보증코드 (ZDFCT_GRNT_CD)
guaranteePeriodCode?: string // 보증기간코드 (ZGRNT_PRD_CD)
advancePaymentYn?: string // 선급금여부 (ZPAMT_YN)
// 금액 관련
budgetAmount?: number // 예산금액 (ZBGT_AMT)
budgetCurrency?: string // 예산통화 (ZBGT_CURR)
totalAmount?: number // 총 계약 금액 (ZPO_AMT)
totalAmountKrw?: number // 발주금액KRW (ZPO_AMT_KRW)
// 전자계약/승인 관련
electronicContractYn?: string // 전자계약필요여부 (ZELC_CNRT_ND_YN)
electronicApprovalDate?: string // 전자승인일자 (ZELC_AGR_DT)
electronicApprovalTime?: string // 전자승인시간 (ZELC_AGR_TM)
ownerApprovalYn?: string // 선주승인필요여부 (ZOWN_AGR_IND_YN)
// 기타
plannedInOutFlag?: string // 계획내외구분 (ZPLN_INO_GB)
settlementStandard?: string // 정산기준 (ZECAL_BSE)
weightSettlementFlag?: string // 중량정산구분 (ZWGT_ECAL_GB)
// 연동제 관련
priceIndexYn?: string // 납품대금연동제대상여부 (ZDLV_PRICE_T)
writtenContractNo?: string // 서면계약번호 (ZWEBELN)
contractVersion?: number // 서면계약차수 (ZVER_NO)
// 계약서 내용 및 노트
contractContent?: string // 계약서 내용 (ZMM_NOTE에서 추출)
remarks?: string // 비고 (ECC에서 추가 정보)
// 벤더 정보 (발주서 출력용)
vendorName?: string // 공급자명
vendorAddress?: string // 공급자 주소
vendorAddressDetail?: string // 공급자 상세주소
vendorPhone?: string // 공급자 전화번호
vendorFax?: string // 공급자 팩스번호
vendorEmail?: string // 공급자 이메일
// 구매담당자 정보 (발주서 출력용)
purchaseManagerName?: string // 구매담당자 이름
// 상세품목 정보 (다이얼로그에서 표시)
items?: VendorPOItem[]
}
export interface VendorPOItem {
contractNo: string // PO/계약번호
itemNo: string // 품번 (EBELP)
prNo: string // P/R번호 (BANFN)
prItemNo: string // PR 품번 (BNFPO)
materialGroup: string // 자재그룹(명)
priceStandard: string // 단가기준
materialNo: string // 자재번호
itemDescription: string // 품목/자재내역
materialSpec: string // 자재내역사양
designMaterialNo?: string // 설계자재번호
fittingNo?: string // Fitting No.
cert?: string // Cert.
material?: string // 재질
specification: string // 규격
quantity: number // 수량
quantityUnit: string // 수량단위 (기존)
ZPO_UNIT?: string // SAP 구매오더수량단위
weight?: number // 중량
weightUnit?: string // 중량단위
totalWeight?: number // 총중량
unitPrice: number // 단가기준 (단가 - NETPR)
// 가격 관련 추가 필드
PEINH?: number // 가격단위값 (예: 1, 10, 100)
BPRME?: string // 구매단가단위 (EA, KG 등)
ZNETPR?: number // 발주단가
ZREF_NETPR?: number // 참조단가
priceUnit: string // 단가단위
priceUnitValue: string // 가격단위값
contractAmount: number // PO계약금액 (기존 필드 - 호환성 유지)
adjustmentAmount?: number // 조정금액 (기존 필드 - 호환성 유지)
// SAP ECC 금액 필드 (금액 관계: NETWR = BRTWR + ZPDT_EXDS_AMT)
NETWR?: number // 오더정가 (최종 정가)
BRTWR?: number // 오더총액 (기본 총액)
ZPDT_EXDS_AMT?: number // 할인/할증금액 (조정금액: 할인은 음수, 할증은 양수)
// 위치 정보
WERKS?: string // 플랜트코드
LGORT?: string // 저장위치
// RFQ 추적
ANFNR?: string // RFQ번호
ANFPS?: string // RFQ품목번호
// 자재 추적
ZPO_LOT_NO?: string // Steel Material Marking No
// 볼륨 정보
VOLUM?: number // 볼륨
VOLEH?: string // 볼륨단위
deliveryDate: string // 납기일자 (기존)
ZPO_DLV_DT?: string // SAP PO납기일자
ZPLN_ST_DT?: string // SAP 예정시작일자
ZPLN_ED_DT?: string // SAP 예정종료일자
LFDAT?: string // PR Delivery Date
ZRCV_DT?: string // 구매접수일자
// 기타
ZCON_IND?: string // 시리즈구분 (SS 등)
vatType: string // VAT구분
steelSpec?: string // 철의장 SPEC
prManager: string // P/R 담당자
remark?: string // 비고 (contract_items.remark)
}
// 파싱된 벤더 PO 타입 (JSON 필드들이 파싱된 상태)
export interface VendorPOParsed extends Omit<VendorPO, 'items'> {
items: VendorPOItem[]
}
// 벤더 PO 액션 타입들
export type VendorPOActionType =
| "pcr-create" // PCR생성
| "item-status" // 상세품목현황
| "contract-detail" // 계약상세
| "po-note" // PO Note
| "price-index" // 연동표입력
| "approve" // 승인
| "cancel-approve" // 승인취소
| "reject-contract" // 계약거절
| "print-contract" // 계약서출력
| "view-items" // 상세품목 보기 (다이얼로그)
|