From b9a2081a76e669688d5884f20482b37cc8acca22 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 13 Oct 2025 08:56:27 +0000 Subject: (최겸, 임수민) 구매 입찰, 견적(그룹코드, tbe에러) 수정, data-room 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/[lng]/evcp/(evcp)/(procurement)/bid/page.tsx | 23 ++++++++++++++++++---- .../(procurement)/rfq-last/[id]/vendor/page.tsx | 3 ++- .../(evcp)/data-room/[projectId]/members/page.tsx | 2 +- app/api/files/[...path]/route.ts | 3 ++- 4 files changed, 24 insertions(+), 7 deletions(-) (limited to 'app') diff --git a/app/[lng]/evcp/(evcp)/(procurement)/bid/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/bid/page.tsx index 3a45e61f..aa9f33b5 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/bid/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/bid/page.tsx @@ -7,6 +7,7 @@ import { getBiddingTypeCounts, getBiddingManagerCounts, getBiddingMonthlyStats, + getUserCodeByEmail, } from "@/lib/bidding/service" import { searchParamsCache } from "@/lib/bidding/validation" import { BiddingsPageHeader } from "@/lib/bidding/list/biddings-page-header" @@ -32,12 +33,26 @@ export default async function BiddingsPage(props: IndexPageProps) { const validFilters = getValidFilters(search.filters) + // ✅ 입찰 데이터를 먼저 가져옴 + const biddingsResult = await getBiddings({ + ...search, + filters: validFilters, + }) + + // ✅ 입찰 데이터에 managerCode 추가 + const biddingsDataWithManagerCode = await Promise.all( + biddingsResult.data.map(async (item) => { + let managerCode: string | null = null + if (item.managerEmail) { + managerCode = await getUserCodeByEmail(item.managerEmail) + } + return { ...item, managerCode: managerCode || null } + }) + ) + // ✅ 모든 데이터를 병렬로 로드 const promises = Promise.all([ - getBiddings({ - ...search, - filters: validFilters, - }), + Promise.resolve({ ...biddingsResult, data: biddingsDataWithManagerCode }), getBiddingStatusCounts(), getBiddingTypeCounts(), getBiddingManagerCounts(), diff --git a/app/[lng]/evcp/(evcp)/(procurement)/rfq-last/[id]/vendor/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/rfq-last/[id]/vendor/page.tsx index 296e46fe..c3a786b9 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/rfq-last/[id]/vendor/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/rfq-last/[id]/vendor/page.tsx @@ -112,7 +112,8 @@ export default async function VendorPage(props: VendorPageProps) { 벤더 목록 - 견적 요청 대상 벤더와 응답 상태를 관리합니다. + Short List 확정, 견적 비교, RFQ 발송 및 응답 관리, AVL 연동 등
+ 종합적인 벤더 관리 기능을 제공합니다.
diff --git a/app/[lng]/evcp/(evcp)/data-room/[projectId]/members/page.tsx b/app/[lng]/evcp/(evcp)/data-room/[projectId]/members/page.tsx index 7db60654..18442c0e 100644 --- a/app/[lng]/evcp/(evcp)/data-room/[projectId]/members/page.tsx +++ b/app/[lng]/evcp/(evcp)/data-room/[projectId]/members/page.tsx @@ -90,7 +90,7 @@ interface User { domain?: string; // 'partners' | 'internal' 등 } -export default async function ProjectMembersPage({ +export default function ProjectMembersPage({ params: promiseParams }: { params: Promise<{ projectId: string }> diff --git a/app/api/files/[...path]/route.ts b/app/api/files/[...path]/route.ts index 89f00a3c..8d736f80 100644 --- a/app/api/files/[...path]/route.ts +++ b/app/api/files/[...path]/route.ts @@ -52,7 +52,8 @@ const isAllowedPath = (requestedPath: string): boolean => { 'pq', 'pq/vendor', 'information', - 'general-contract-templates' + 'general-contract-templates', + 'purchase-requests' ]; return allowedPaths.some(allowed => -- cgit v1.2.3