diff options
Diffstat (limited to 'lib/pq/service.ts')
| -rw-r--r-- | lib/pq/service.ts | 19 |
1 files changed, 14 insertions, 5 deletions
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<PQGroupData[]> {
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<string, unknown> | null): Promise<number> {
if (!shiAttendees) return 0
-
+
let total = 0
Object.entries(shiAttendees).forEach(([key, value]) => {
if (value && typeof value === 'object' && 'checked' in value && 'count' in value) {
|
