diff options
Diffstat (limited to 'lib/sedp')
| -rw-r--r-- | lib/sedp/get-form-tags.ts | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/sedp/get-form-tags.ts b/lib/sedp/get-form-tags.ts index 32f4403e..5b1c500d 100644 --- a/lib/sedp/get-form-tags.ts +++ b/lib/sedp/get-form-tags.ts @@ -9,7 +9,9 @@ import { tagTypes, tagClasses, formMetas, - formEntries + formEntries, + contracts, + vendors } from "@/db/schema"; import { eq, and, like, inArray } from "drizzle-orm"; import { getSEDPToken } from "./sedp-token"; @@ -86,7 +88,7 @@ export async function importTagsFromSEDP( const packageCodeAttId = projectType === "ship" ? "CM3003" : "ME5074"; // packageId로 contractItem과 item 정보 가져오기 - const contractItemRecord = await tx.select({ itemId: contractItems.itemId }) + const contractItemRecord = await tx.select({ itemId: contractItems.itemId, contractId:contractItems.contractId }) .from(contractItems) .where(eq(contractItems.id, packageId)) .limit(1); @@ -94,6 +96,16 @@ export async function importTagsFromSEDP( if (!contractItemRecord || contractItemRecord.length === 0) { throw new Error(`Contract item not found for packageId: ${packageId}`); } + + const contractRecord = await tx.select({ vendorId: contracts.vendorId }) + .from(contracts) + .where(eq(contracts.id, contractItemRecord[0].contractId)) + .limit(1); + + const vendorRecord = await tx.select({ vendorCode: vendors.vendorCode, vendorName: vendors.vendorName }) + .from(vendors) + .where(eq(vendors.id, contractRecord[0].vendorId)) + .limit(1); const itemRecord = await tx.select({ packageCode: items.packageCode }) .from(items) @@ -449,6 +461,8 @@ export async function importTagsFromSEDP( const tagObject: any = { TAG_NO: tagEntry.TAG_NO, TAG_DESC: tagEntry.TAG_DESC || "", + VNDRCD:vendorRecord[0].vendorCode, + VNDRNM_1:vendorRecord[0].vendorName, status: "From S-EDP" // SEDP에서 가져온 데이터임을 표시 }; |
