From afb89ef94970d16d62974711d34fea50286dfca6 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 21 Jul 2025 10:38:31 +0700 Subject: [PATCH] feat: notify document check when status changed --- src/controllers/07-task-controller.ts | 144 ++++++++++++++------------ 1 file changed, 80 insertions(+), 64 deletions(-) diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index bc82406..253b9a5 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -337,49 +337,51 @@ export class TaskController extends Controller { where: { OR: taskList }, }); - return await tx.taskOrder.create({ - include: { - taskList: { - include: { - requestWorkStep: { - include: { - requestWork: { - include: { - request: { - include: { - employee: true, - quotation: { - include: { - customerBranch: { - include: { - customer: true, - }, - }, - }, - }, - }, - }, - productService: { - include: { - service: { - include: { - workflow: { - include: { - step: { - include: { - value: true, - responsiblePerson: { - include: { user: true }, - }, - responsibleInstitution: true, - }, + return await tx.taskOrder + .create({ + include: { + taskList: { + include: { + requestWorkStep: { + include: { + requestWork: { + include: { + request: { + include: { + employee: true, + quotation: { + include: { + customerBranch: { + include: { + customer: true, }, }, }, }, }, - work: true, - product: true, + }, + productService: { + include: { + service: { + include: { + workflow: { + include: { + step: { + include: { + value: true, + responsiblePerson: { + include: { user: true }, + }, + responsibleInstitution: true, + }, + }, + }, + }, + }, + }, + work: true, + product: true, + }, }, }, }, @@ -387,20 +389,29 @@ export class TaskController extends Controller { }, }, }, + institution: true, + createdBy: true, }, - institution: true, - createdBy: true, - }, - data: { - ...rest, - code, - urgent: work.some((v) => v.requestWork.request.quotation.urgent), - registeredBranchId: userAffiliatedBranch.id, - createdByUserId: req.user.sub, - taskList: { create: taskList }, - taskProduct: { create: taskProduct }, - }, - }); + data: { + ...rest, + code, + urgent: work.some((v) => v.requestWork.request.quotation.urgent), + registeredBranchId: userAffiliatedBranch.id, + createdByUserId: req.user.sub, + taskList: { create: taskList }, + taskProduct: { create: taskProduct }, + }, + }) + .then(async (v) => { + await prisma.notification.create({ + data: { + title: "ใบสั่งงานใหม่ / New Task Order", + detail: "รหัส / code : " + v.code, + groupReceiver: { create: { name: "document_checker" } }, + }, + }); + return v; + }); }); } @@ -543,6 +554,7 @@ export class TaskController extends Controller { title: "มีการส่งงาน / Task Submitted", detail: "รหัสใบสั่งงาน / Order : " + record.code, receiverId: record.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, }, }); } @@ -737,6 +749,7 @@ export class TaskActionController extends Controller { title: "มีการส่งงาน / Task Submitted", detail: "รหัสใบสั่งงาน / Order : " + record.code, receiverId: record.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, }, }), ]); @@ -936,6 +949,7 @@ export class TaskActionController extends Controller { title: "สถานะใบเสนอราคาเปลี่ยนแปลง / Quotation Status Updated", detail: "รหัส / code : " + v.code + " Completed", receiverId: v.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, })), }); @@ -1176,19 +1190,21 @@ export class UserTaskController extends Controller { }, }) .then(async (v) => { - await tx.notification.createMany({ - data: [ - { - title: "สถานะใบส่งงานมีการเปลี่ยนแปลง / Order Status Changed", - detail: "รหัสใบสั่งงาน / Order : " + v.code + " InProgress", - receiverId: v.createdByUserId, - }, - { - title: "มีการรับงาน / Task Accepted", - detail: "รหัสใบสั่งงาน / Order : " + v.code, - receiverId: v.createdByUserId, - }, - ], + await tx.notification.create({ + data: { + title: "สถานะใบส่งงานมีการเปลี่ยนแปลง / Order Status Changed", + detail: "รหัสใบสั่งงาน / Order : " + v.code + " InProgress", + receiverId: v.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, + }, + }); + await tx.notification.create({ + data: { + title: "มีการรับงาน / Task Accepted", + detail: "รหัสใบสั่งงาน / Order : " + v.code, + receiverId: v.createdByUserId, + groupReceiver: { create: { name: "document_checker" } }, + }, }); }), tx.task.updateMany({