From 3455ae604a87da045e4d511a8af130d65da66fa7 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 21 Jul 2025 11:17:23 +0700 Subject: [PATCH] feat: more notification related to task and request --- src/controllers/07-task-controller.ts | 63 +++++++++++++++++++-------- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index 253b9a5..c9b6b9d 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -782,22 +782,33 @@ export class TaskActionController extends Controller { const code = `RI${year}${month}${last.value.toString().padStart(6, "0")}`; await Promise.all([ - tx.taskOrder.update({ - where: { id: taskOrderId }, - data: { - urgent: false, - taskOrderStatus: TaskOrderStatus.Complete, - codeProductReceived: code, - userTask: { - updateMany: { - where: { taskOrderId }, - data: { - userTaskStatus: UserTaskStatus.Submit, + tx.taskOrder + .update({ + where: { id: taskOrderId }, + data: { + urgent: false, + taskOrderStatus: TaskOrderStatus.Complete, + codeProductReceived: code, + userTask: { + updateMany: { + where: { taskOrderId }, + data: { + userTaskStatus: UserTaskStatus.Submit, + }, }, }, }, - }, - }), + }) + .then(async (record) => { + await tx.notification.create({ + data: { + title: "ใบงานเสร็จสิ้น / Task Complete", + detail: "รหัสใบสั่งงาน / Order : " + record.code, + receiverId: record.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, + }, + }); + }), tx.requestWorkStepStatus.updateMany({ where: { task: { @@ -901,10 +912,28 @@ export class TaskActionController extends Controller { if (completeCheck) completed.push(item.id); }); - await tx.requestData.updateMany({ - where: { id: { in: completed } }, - data: { requestDataStatus: RequestDataStatus.Completed }, - }); + await tx.requestData + .updateManyAndReturn({ + where: { id: { in: completed } }, + include: { + quotation: { + select: { + createdByUserId: true, + }, + }, + }, + data: { requestDataStatus: RequestDataStatus.Completed }, + }) + .then(async (res) => { + await tx.notification.createMany({ + data: res.map((v) => ({ + title: "รายการคำขอเสร็จสิ้น / Request Complete", + detail: "รหัส / code : " + v.code + " Completed", + receiverId: v.quotation.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, + })), + }); + }); await tx.quotation .updateManyAndReturn({ where: {