diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index bc82406..c9b6b9d 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" } }, }, }), ]); @@ -769,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: { @@ -888,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: { @@ -936,6 +978,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 +1219,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({