diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-24 09:52:35 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-24 09:52:35 +0000 |
| commit | 0174ad394032a8dad81107341f477d6d23a3c04c (patch) | |
| tree | 6be84f638a852e6d0cea057b67e462e78fc65d41 /lib/pq/service.ts | |
| parent | 912e2bc761d7d57bd33d68cb5050da43dea59636 (diff) | |
(최겸) 구매 피드백 수정(PQ, 실사 등)-1024
Diffstat (limited to 'lib/pq/service.ts')
| -rw-r--r-- | lib/pq/service.ts | 80 |
1 files changed, 50 insertions, 30 deletions
diff --git a/lib/pq/service.ts b/lib/pq/service.ts index f58a1d4d..7296b836 100644 --- a/lib/pq/service.ts +++ b/lib/pq/service.ts @@ -456,10 +456,11 @@ export async function submitPQAction({ // 특정 PQ Submission ID가 있는 경우
if (pqSubmissionId) {
existingSubmission = await db
- .select({
- id: vendorPQSubmissions.id,
+ .select({
+ id: vendorPQSubmissions.id,
status: vendorPQSubmissions.status,
- type: vendorPQSubmissions.type
+ type: vendorPQSubmissions.type,
+ requesterId: vendorPQSubmissions.requesterId
})
.from(vendorPQSubmissions)
.where(
@@ -490,10 +491,11 @@ export async function submitPQAction({ }
existingSubmission = await db
- .select({
- id: vendorPQSubmissions.id,
+ .select({
+ id: vendorPQSubmissions.id,
status: vendorPQSubmissions.status,
- type: vendorPQSubmissions.type
+ type: vendorPQSubmissions.type,
+ requesterId: vendorPQSubmissions.requesterId
})
.from(vendorPQSubmissions)
.where(and(...submissionQueryConditions))
@@ -539,6 +541,7 @@ export async function submitPQAction({ submittedAt: currentDate,
createdAt: currentDate,
updatedAt: currentDate,
+ requesterId: requesterId,
});
}
@@ -556,32 +559,49 @@ export async function submitPQAction({ .where(eq(vendors.id, vendorId));
}
}
-
- // 5. 관리자에게 이메일 알림 발송
- if (process.env.ADMIN_EMAIL) {
+
+ // 5. PQ 요청자에게 이메일 알림 발송
+ const targetSubmissionId = existingSubmission?.id || '';
+ const targetRequesterId = existingSubmission?.requesterId || requesterId;
+
+ if (targetRequesterId) {
try {
- const emailSubject = projectId
- ? `[eVCP] Project PQ Submitted: ${vendor.vendorName} for ${projectName}`
- : `[eVCP] General PQ Submitted: ${vendor.vendorName}`;
-
- const adminUrl = `http://${host}/evcp/pq/${vendorId}/${existingSubmission?.id || ''}`;
-
- await sendEmail({
- to: process.env.ADMIN_EMAIL,
- subject: emailSubject,
- template: "pq-submitted-admin",
- context: {
- vendorName: vendor.vendorName,
- vendorId: vendor.id,
- projectId: projectId,
- projectName: projectName,
- isProjectPQ: !!projectId,
- submittedDate: currentDate.toLocaleString(),
- adminUrl,
- }
- });
+ // 요청자 정보 조회
+ const requester = await db
+ .select({
+ id: users.id,
+ name: users.name,
+ email: users.email,
+ })
+ .from(users)
+ .where(eq(users.id, targetRequesterId))
+ .then(rows => rows[0]);
+
+ if (requester?.email) {
+ const emailSubject = projectId
+ ? `[eVCP] Project PQ Submitted: ${vendor.vendorName} for ${projectName}`
+ : `[eVCP] General PQ Submitted: ${vendor.vendorName}`;
+
+ const adminUrl = `http://${host}/evcp/pq/${vendorId}/${targetSubmissionId}`;
+
+ await sendEmail({
+ to: requester.email,
+ subject: emailSubject,
+ template: "pq-submitted-admin",
+ context: {
+ vendorName: vendor.vendorName,
+ vendorId: vendor.id,
+ projectId: projectId,
+ projectName: projectName,
+ isProjectPQ: !!projectId,
+ submittedDate: currentDate.toLocaleString(),
+ adminUrl,
+ requesterName: requester.name,
+ }
+ });
+ }
} catch (emailError) {
- console.error("Failed to send admin notification:", emailError);
+ console.error("Failed to send requester notification:", emailError);
}
}
|
