diff options
Diffstat (limited to 'lib/soap/mdg/mapper/vendor-mapper.ts')
| -rw-r--r-- | lib/soap/mdg/mapper/vendor-mapper.ts | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/soap/mdg/mapper/vendor-mapper.ts b/lib/soap/mdg/mapper/vendor-mapper.ts index 1bb542e0..c9824785 100644 --- a/lib/soap/mdg/mapper/vendor-mapper.ts +++ b/lib/soap/mdg/mapper/vendor-mapper.ts @@ -307,7 +307,7 @@ async function fetchMDGVendorData(vndrCodes: string[]): Promise<MDGVendorData[]> * - id: serial (자동) * - vendorName: varchar (필수) * - vendorCode: varchar - * - taxId: varchar (필수) + * - taxId: varchar (nullable - MDG에서 없이 수신될 수 있음) * - address: text * - addressDetail: text * - postalCode: varchar @@ -342,15 +342,6 @@ function mapMDGToVendor(mdgVendorData: MDGVendorData): VendorData | null { return null; } - // taxId가 없으면 처리하지 않음 (vendors 테이블에서 필수) - if (!mdgVendorData.BIZ_PTNR_TX_NO) { - debugError('BIZ_PTNR_TX_NO가 없는 벤더 데이터', { - vndrCode: mdgVendorData.VNDRCD, - reason: '필수 필드 누락: taxId' - }); - return null; - } - // vendorName이 없으면 처리하지 않음 (vendors 테이블에서 필수) if (!mdgVendorData.VNDRNM_1) { debugError('VNDRNM_1이 없는 벤더 데이터', { @@ -360,10 +351,17 @@ function mapMDGToVendor(mdgVendorData: MDGVendorData): VendorData | null { return null; } + // taxId가 없는 경우 경고 로그만 출력 (nullable이므로 처리 계속) + if (!mdgVendorData.BIZ_PTNR_TX_NO) { + debugWarn('BIZ_PTNR_TX_NO가 없는 벤더 데이터 - taxId null로 저장됨', { + vndrCode: mdgVendorData.VNDRCD + }); + } + debugSuccess('필수 필드 검증 통과', { vndrCode: mdgVendorData.VNDRCD, vendorName: mdgVendorData.VNDRNM_1, - taxId: mdgVendorData.BIZ_PTNR_TX_NO + taxId: mdgVendorData.BIZ_PTNR_TX_NO || 'null' }); // 주소 상세 정보 결합 |
