diff options
| author | joonhoekim <26rote@gmail.com> | 2025-05-29 05:12:36 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-05-29 05:37:04 +0000 |
| commit | e484964b1d78cedabbe182c789a8e4c9b53e29d3 (patch) | |
| tree | d18133dde99e6feb773c95d04f7e79715ab24252 /lib/techsales-rfq/repository.ts | |
| parent | 37f55540833c2d5894513eca9fc8f7c6233fc2d2 (diff) | |
(김준회) 기술영업 조선 RFQ 파일첨부 및 채팅 기능 구현 / menuConfig 수정 (벤더 기술영업)
Diffstat (limited to 'lib/techsales-rfq/repository.ts')
| -rw-r--r-- | lib/techsales-rfq/repository.ts | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lib/techsales-rfq/repository.ts b/lib/techsales-rfq/repository.ts index 260eef19..8a579427 100644 --- a/lib/techsales-rfq/repository.ts +++ b/lib/techsales-rfq/repository.ts @@ -3,9 +3,9 @@ import { techSalesRfqs, techSalesVendorQuotations, - items, vendors, - users + users, + itemShipbuilding } from "@/db/schema"; import { asc, @@ -81,7 +81,7 @@ export async function selectTechSalesRfqsWithJoin( id: techSalesRfqs.id, rfqCode: techSalesRfqs.rfqCode, itemId: techSalesRfqs.itemId, - itemName: items.itemName, + itemName: itemShipbuilding.itemList, materialCode: techSalesRfqs.materialCode, // 날짜 및 상태 정보 @@ -132,7 +132,7 @@ export async function selectTechSalesRfqsWithJoin( )`, }) .from(techSalesRfqs) - .leftJoin(items, sql`${techSalesRfqs.itemId} = ${items.id}`) + .leftJoin(itemShipbuilding, sql`split_part(${techSalesRfqs.materialCode}, ',', 1) = ${itemShipbuilding.itemCode}`) .leftJoin(sql`${users} AS created_user`, sql`${techSalesRfqs.createdBy} = created_user.id`) .leftJoin(sql`${users} AS updated_user`, sql`${techSalesRfqs.updatedBy} = updated_user.id`) .leftJoin(sql`${users} AS sent_user`, sql`${techSalesRfqs.sentBy} = sent_user.id`); @@ -159,7 +159,7 @@ export async function countTechSalesRfqsWithJoin( const res = await tx .select({ count: count() }) .from(techSalesRfqs) - .leftJoin(items, sql`${techSalesRfqs.itemId} = ${items.id}`) + .leftJoin(itemShipbuilding, sql`split_part(${techSalesRfqs.materialCode}, ',', 1) = ${itemShipbuilding.itemCode}`) .where(where ?? undefined); return res[0]?.count ?? 0; } @@ -211,7 +211,7 @@ export async function selectTechSalesVendorQuotationsWithJoin( // 프로젝트 정보 materialCode: techSalesRfqs.materialCode, itemId: techSalesRfqs.itemId, - itemName: items.itemName, + itemName: itemShipbuilding.itemList, // 프로젝트 핵심 정보 pspid: sql<string>`${techSalesRfqs.projectSnapshot}->>'pspid'`, @@ -221,14 +221,14 @@ export async function selectTechSalesVendorQuotationsWithJoin( // 첨부파일 개수 attachmentCount: sql<number>`( SELECT COUNT(*) - FROM tech_sales_rfq_comment_attachments - WHERE tech_sales_rfq_comment_attachments.quotation_id = ${techSalesVendorQuotations.id} + FROM tech_sales_attachments + WHERE tech_sales_attachments.tech_sales_rfq_id = ${techSalesRfqs.id} )`, }) .from(techSalesVendorQuotations) .leftJoin(techSalesRfqs, sql`${techSalesVendorQuotations.rfqId} = ${techSalesRfqs.id}`) .leftJoin(vendors, sql`${techSalesVendorQuotations.vendorId} = ${vendors.id}`) - .leftJoin(items, sql`${techSalesRfqs.itemId} = ${items.id}`) + .leftJoin(itemShipbuilding, sql`split_part(${techSalesRfqs.materialCode}, ',', 1) = ${itemShipbuilding.itemCode}`) .leftJoin(sql`${users} AS created_user`, sql`${techSalesVendorQuotations.createdBy} = created_user.id`) .leftJoin(sql`${users} AS updated_user`, sql`${techSalesVendorQuotations.updatedBy} = updated_user.id`); @@ -256,6 +256,7 @@ export async function countTechSalesVendorQuotationsWithJoin( .from(techSalesVendorQuotations) .leftJoin(techSalesRfqs, sql`${techSalesVendorQuotations.rfqId} = ${techSalesRfqs.id}`) .leftJoin(vendors, sql`${techSalesVendorQuotations.vendorId} = ${vendors.id}`) + .leftJoin(itemShipbuilding, sql`split_part(${techSalesRfqs.materialCode}, ',', 1) = ${itemShipbuilding.itemCode}`) .where(where ?? undefined); return res[0]?.count ?? 0; } @@ -286,7 +287,7 @@ export async function selectTechSalesDashboardWithJoin( // 아이템 정보 itemId: techSalesRfqs.itemId, - itemName: items.itemName, + itemName: itemShipbuilding.itemList, // 프로젝트 정보 pspid: sql<string>`${techSalesRfqs.projectSnapshot}->>'pspid'`, @@ -363,7 +364,7 @@ export async function selectTechSalesDashboardWithJoin( createdByName: sql<string>`created_user.name`, }) .from(techSalesRfqs) - .leftJoin(items, sql`${techSalesRfqs.itemId} = ${items.id}`) + .leftJoin(itemShipbuilding, sql`split_part(${techSalesRfqs.materialCode}, ',', 1) = ${itemShipbuilding.itemCode}`) .leftJoin(sql`${users} AS created_user`, sql`${techSalesRfqs.createdBy} = created_user.id`); // where 조건 적용 |
