summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-07-18 08:15:14 +0000
committerjoonhoekim <26rote@gmail.com>2025-07-18 08:15:14 +0000
commitd8e0c42836690ddbf91b9a78d487993b22669f81 (patch)
tree14d11305a98ac4f5da3789a43d33a83a8dcd75e6 /db
parenta3b5cc9250978080a3ad269cf6c66d15de72355a (diff)
ECC 인터페이스 3건 WSDL(수신1, 송신2) 및 스키마(수신1) 추가
Diffstat (limited to 'db')
-rw-r--r--db/schema/ECC/ecc.ts74
-rw-r--r--db/schema/index.ts5
2 files changed, 78 insertions, 1 deletions
diff --git a/db/schema/ECC/ecc.ts b/db/schema/ECC/ecc.ts
new file mode 100644
index 00000000..e836909e
--- /dev/null
+++ b/db/schema/ECC/ecc.ts
@@ -0,0 +1,74 @@
+import {
+ integer,
+ varchar,
+ timestamp,
+ decimal,
+ pgSchema,
+} from 'drizzle-orm/pg-core';
+
+// 적용된 WSDL 파일: IF_ECC_EVCP_PR_INFORMATION.wsdl
+
+// WSDL 정의에서 CHG_GB, 응답할 메시지 타입(성공/실패) 및 내용은 메타데이터이다.
+// 따라서 로깅 테이블에 저장하고, 별도 스키마를 생성하지는 않는다.
+
+// S-ERP에서 받는 ECC 데이터를 MDG와 구분하기 위해 스키마를 새로 생성한다.
+export const ECCSchema = pgSchema('ecc');
+
+// Table: PR_INFORMATION_T_BID_HEADER
+export const PR_INFORMATION_T_BID_HEADER = ECCSchema.table(
+ 'PR_INFORMATION_T_BID_HEADER',
+ {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ANFNR: varchar({ length: 10 }).notNull(), // Bidding/RFQ Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ EKGRP: varchar({ length: 10 }), // Purchaing Group // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ EKORG: varchar({ length: 10 }), // Purchasing Organization // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ WERKS: varchar({ length: 10 }), // Plant // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZBSART: varchar({ length: 10 }).notNull(), // Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ ZRFQ_TRS_DT: varchar({ length: 10 }), // Date on Creating Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZRFQ_TRS_TM: varchar({ length: 10 }), // Time of Creating Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+ }
+);
+
+// Table: PR_INFORMATION_T_BID_ITEM
+export const PR_INFORMATION_T_BID_ITEM = ECCSchema.table(
+ 'PR_INFORMATION_T_BID_ITEM',
+ {
+ id: integer('id').primaryKey().generatedByDefaultAsIdentity(),
+ ANFNR: varchar({ length: 10 }).notNull(), // Bidding/RFQ Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ ANFPS: varchar({ length: 10 }).notNull(), // Item Number of Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ AUFNR: varchar({ length: 12 }), // Order Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ BANFN: varchar({ length: 10 }).notNull(), // Purchase Requisition Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ BANPO: varchar({ length: 10 }).notNull(), // Item Number of Purchase Requisition // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required
+ BPRME: varchar({ length: 10 }), // Order Price Unit (Purchasing) // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ BRGEW: decimal({ precision: 15, scale: 3 }), // Gross Weight // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ DISMM: varchar({ length: 10 }), // MRP Type // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ EBELP: varchar({ length: 10 }), // Series PO Item Seq // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ GEWEI: varchar({ length: 10 }), // Weight Unit // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ KNTTP: varchar({ length: 10 }), // Account Assignment Category // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ KOSTL: varchar({ length: 10 }), // Cost Center // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ LFDAT: varchar({ length: 10 }), // Delivery Date // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ MATKL: varchar({ length: 10 }), // Material Group // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ MATNR: varchar({ length: 18 }), // Material Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ MEINS: varchar({ length: 10 }), // Purchase Requisition Unit of Measure // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ MENGE: decimal({ precision: 15, scale: 3 }), // Purchase Requisition Quantity // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ PEINH: integer(), // Price Unit // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ PERNR: varchar({ length: 20 }), // Employee ID // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ POSID: varchar({ length: 24 }), // WBS No // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ PREIS: decimal({ precision: 15, scale: 2 }), // Price in Purchase Requisition // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ PSPID: varchar({ length: 24 }), // Project No // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ SAKTO: varchar({ length: 10 }), // G/L Account Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ TXZ01: varchar({ length: 40 }), // Short Text // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ WAERS1: varchar({ length: 10 }), // PR Currency Key // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ WAERS2: varchar({ length: 10 }), // Reference Price Currency Key // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZCON_NO_PO: varchar({ length: 15 }), // PR Consolidation Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZREQ_FN: varchar({ length: 10 }), // P/R Request Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZREQ_PO: varchar({ length: 10 }), // Item Number of P/R Request // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+ ZRSLT_AMT: decimal({ precision: 17, scale: 2 }), // Reference Price // From: IF_ECC_EVCP_PR_INFORMATION.wsdl
+
+ createdAt: timestamp('created_at').defaultNow().notNull(),
+ updatedAt: timestamp('updated_at').defaultNow().notNull(),
+ }
+);
diff --git a/db/schema/index.ts b/db/schema/index.ts
index b1d9ee89..0b94d109 100644
--- a/db/schema/index.ts
+++ b/db/schema/index.ts
@@ -36,4 +36,7 @@ export * from './MDG/mdg'
export * from './SOAP/soap';
// NONSAP Oracle DB 스키마
-export * from './NONSAP/nonsap'; \ No newline at end of file
+export * from './NONSAP/nonsap';
+
+// ECC SOAP 수신용 (RFQ, PO, PR 데이터)
+export * from './ECC/ecc'; \ No newline at end of file