From defda07c0bb4b0bd444ca8dc4fd3f89322bda0ce Mon Sep 17 00:00:00 2001 From: dujinkim Date: Fri, 3 Oct 2025 04:48:47 +0000 Subject: (대표님) edp, tbe, dolce 등 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pq/service.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'lib/pq/service.ts') diff --git a/lib/pq/service.ts b/lib/pq/service.ts index 67be5398..f58a1d4d 100644 --- a/lib/pq/service.ts +++ b/lib/pq/service.ts @@ -94,6 +94,10 @@ export async function getPQDataByVendorId( projectId?: number ): Promise { try { + // 파라미터 유효성 검증 + if (isNaN(vendorId)) { + throw new Error("Invalid vendorId parameter"); + } // 기본 쿼리 구성 const selectObj = { criteriaId: pqCriterias.id, @@ -1531,6 +1535,7 @@ export async function getAllPQsByVendorId(vendorId: number) { // 특정 PQ의 상세 정보 조회 (개별 PQ 페이지용) export async function getPQById(pqSubmissionId: number, vendorId: number) { try { + const pq = await db .select({ id: vendorPQSubmissions.id, @@ -1543,12 +1548,15 @@ export async function getPQById(pqSubmissionId: number, vendorId: number) { approvedAt: vendorPQSubmissions.approvedAt, rejectedAt: vendorPQSubmissions.rejectedAt, rejectReason: vendorPQSubmissions.rejectReason, - + // 벤더 정보 (추가) vendorName: vendors.vendorName, vendorCode: vendors.vendorCode, vendorStatus: vendors.status, - + vendorCountry: vendors.country, + vendorEmail: vendors.email, + vendorPhone: vendors.phone, + // 프로젝트 정보 (조인) projectName: projects.name, projectCode: projects.code, @@ -1564,11 +1572,11 @@ export async function getPQById(pqSubmissionId: number, vendorId: number) { ) .limit(1) .then(rows => rows[0]); - + if (!pq) { throw new Error("PQ not found or access denied"); } - + return pq; } catch (error) { console.error("Error fetching PQ by ID:", error); @@ -4046,11 +4054,12 @@ export async function updatePqValidToAction(input: UpdatePqValidToInput) { } } + // SHI 참석자 총 인원수 계산 함수 export async function getTotalShiAttendees(shiAttendees: Record | null): Promise { if (!shiAttendees) return 0 - + let total = 0 Object.entries(shiAttendees).forEach(([key, value]) => { if (value && typeof value === 'object' && 'checked' in value && 'count' in value) { -- cgit v1.2.3