diff options
| author | joonhoekim <26rote@gmail.com> | 2025-08-04 11:07:10 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-08-04 11:07:10 +0000 |
| commit | 305a29e0e245ed9de1a7f4d32e96634116dcda82 (patch) | |
| tree | bba0f654d7072ab8b619ac08ccc4b988fef143f3 /db/schema | |
| parent | 4dc27e9495b005b29b4d7a2ad404c8c0644769eb (diff) | |
(김준회) SOAP ECC 개선, 린터 오류 해결, 구매 기준정보(인코텀즈, 지불조건, 장소(출발지, 도착지)) Non-SAP 동기화 처리
Diffstat (limited to 'db/schema')
| -rw-r--r-- | db/schema/ECC/ecc.ts | 2 | ||||
| -rw-r--r-- | db/schema/procurementRFQ.ts | 18 |
2 files changed, 18 insertions, 2 deletions
diff --git a/db/schema/ECC/ecc.ts b/db/schema/ECC/ecc.ts index e836909e..a1dfe15b 100644 --- a/db/schema/ECC/ecc.ts +++ b/db/schema/ECC/ecc.ts @@ -19,7 +19,7 @@ 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 + ANFNR: varchar({ length: 10 }).notNull().unique(), // 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 diff --git a/db/schema/procurementRFQ.ts b/db/schema/procurementRFQ.ts index 23521aaf..ef1198bc 100644 --- a/db/schema/procurementRFQ.ts +++ b/db/schema/procurementRFQ.ts @@ -61,6 +61,12 @@ export const procurementRfqs = pgTable( ); +/** + * 지불조건, 인코텀즈, 선적/하역(출발지, 도착지) 테이블은 Non-SAP에서 동기화 (Oracle DB to PostgreSQL) + * 동기화 로직은 instrumentation.ts 에서 node-cron 을 통해 job으로 등록됨 + */ + +// 지불조건 테이블 (Non-SAP 에서 동기화) export const paymentTerms = pgTable("payment_terms", { code: varchar("code", { length: 50 }).primaryKey(), description: varchar("description", { length: 255 }).notNull(), @@ -71,7 +77,7 @@ export const paymentTerms = pgTable("payment_terms", { createdAt: timestamp("created_at").defaultNow().notNull(), }); -// 인코텀즈 테이블 +// 인코텀즈 테이블 (Non-SAP 에서 동기화) export const incoterms = pgTable("incoterms", { code: varchar("code", { length: 20 }).primaryKey(), description: varchar("description", { length: 255 }).notNull(), @@ -81,6 +87,16 @@ export const incoterms = pgTable("incoterms", { createdAt: timestamp("created_at").defaultNow().notNull(), }); +// 선적/하역 테이블 (Non-SAP 에서 동기화) +export const placeOfShipping = pgTable("place_of_shipping", { + code: varchar("code", { length: 20 }).primaryKey(), + description: varchar("description", { length: 255 }).notNull(), + isActive: boolean("is_active").default(true).notNull(), + createdBy: integer("created_by") + .references(() => users.id, { onDelete: "set null" }), + createdAt: timestamp("created_at").defaultNow().notNull(), +}); + export const procurementRfqDetails = pgTable( "procurement_rfq_details", { |
