From bf204c926dcdf8fc7c9b12d9dd127c108c2c1276 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 09:15:10 +0700 Subject: [PATCH 1/6] feat: push urgent to latest --- src/controllers/06-request-list-controller.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index a3f5124..25e7b5e 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -189,7 +189,7 @@ export class RequestDataController extends Controller { }, take: pageSize, skip: (page - 1) * pageSize, - orderBy: { createdAt: "desc" }, + orderBy: [{ quotation: { urgent: "desc" } }, { createdAt: "desc" }], }), prisma.requestData.count({ where }), ]); From 8358c7194562bfeb68be3ba5cb426f42019c30c3 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 09:25:51 +0700 Subject: [PATCH 2/6] refactor: response not found instead --- src/controllers/06-request-list-controller.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index 25e7b5e..145f01c 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -200,7 +200,7 @@ export class RequestDataController extends Controller { @Get("{requestDataId}") @Security("keycloak") async getRequestData(@Path() requestDataId: string) { - return await prisma.requestData.findFirst({ + const record = await prisma.requestData.findFirst({ where: { id: requestDataId }, include: { quotation: { @@ -224,6 +224,10 @@ export class RequestDataController extends Controller { }, }, }); + + if (!record) throw notFoundError("Request Data"); + + return record; } } From 7ab1a94782a21cd20afac5fa459ca4a1d43fe531 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 09:40:54 +0700 Subject: [PATCH 3/6] feat: add urgent task order field --- prisma/schema.prisma | 2 ++ src/controllers/07-task-controller.ts | 31 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index d90b7f9..2cc73fe 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1552,6 +1552,8 @@ model TaskOrder { contactName String contactTel String + urgent Boolean @default(false) + institution Institution @relation(fields: [institutionId], references: [id]) institutionId String diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index bd9da4c..1b8737a 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -295,6 +295,21 @@ export class TaskController extends Controller { ); } + const work = await tx.requestWorkStepStatus.findMany({ + include: { + requestWork: { + include: { + request: { + include: { + quotation: true, + }, + }, + }, + }, + }, + where: { OR: taskList }, + }); + return await tx.taskOrder.create({ include: { taskList: { @@ -352,6 +367,7 @@ export class TaskController extends Controller { data: { ...rest, code, + urgent: work.some((v) => v.requestWork.request.quotation.urgent), registeredBranchId: userAffiliatedBranch.id, createdByUserId: req.user.sub, taskList: { create: taskList }, @@ -437,6 +453,19 @@ export class TaskController extends Controller { data: { workStatus: RequestWorkStatus.InProgress }, }); + const work = await tx.requestWorkStepStatus.findMany({ + include: { + requestWork: { + include: { + request: { + include: { quotation: true }, + }, + }, + }, + }, + where: { OR: body.taskList }, + }); + return await tx.taskOrder.update({ where: { id: taskOrderId }, include: { @@ -455,6 +484,7 @@ export class TaskController extends Controller { }, data: { ...body, + urgent: work.some((v) => v.requestWork.request.quotation.urgent), taskList: { deleteMany: record?.taskList .filter( @@ -629,6 +659,7 @@ export class TaskActionController extends Controller { tx.taskOrder.update({ where: { id: taskOrderId }, data: { + urgent: false, taskOrderStatus: TaskOrderStatus.Complete, userTask: { updateMany: { From 7ae7f47c9433d701c23c393dcaa8eb0263d60af8 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 09:41:02 +0700 Subject: [PATCH 4/6] chore: migration --- prisma/migrations/20250124023155_add_urgent_field/migration.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 prisma/migrations/20250124023155_add_urgent_field/migration.sql diff --git a/prisma/migrations/20250124023155_add_urgent_field/migration.sql b/prisma/migrations/20250124023155_add_urgent_field/migration.sql new file mode 100644 index 0000000..7e2a65b --- /dev/null +++ b/prisma/migrations/20250124023155_add_urgent_field/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "TaskOrder" ADD COLUMN "urgent" BOOLEAN NOT NULL DEFAULT false; From a1b78e117e45f0debe9dba43fb440b37e20a2cef Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 10:01:32 +0700 Subject: [PATCH 5/6] refactor: store value of product that excluded vat instead --- src/controllers/05-quotation-controller.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/controllers/05-quotation-controller.ts b/src/controllers/05-quotation-controller.ts index c621ac5..4224e45 100644 --- a/src/controllers/05-quotation-controller.ts +++ b/src/controllers/05-quotation-controller.ts @@ -512,9 +512,7 @@ export class QuotationController extends Controller { a.vat = precisionRound(a.vat + c.vat); a.vatExcluded = c.vat === 0 - ? precisionRound( - a.vatExcluded + (c.pricePerUnit * c.amount - (c.discount || 0)) * VAT_DEFAULT, - ) + ? precisionRound(a.vatExcluded + (c.pricePerUnit * c.amount - (c.discount || 0))) : a.vatExcluded; a.finalPrice = precisionRound( Math.max(a.totalPrice - a.totalDiscount + a.vat - (body.discount || 0), 0), From f18c5cd4442d9094505ad3ee4998c06fbe8d25fb Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Fri, 24 Jan 2025 10:04:06 +0700 Subject: [PATCH 6/6] feat: add order to task order --- src/controllers/07-task-controller.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index 1b8737a..90a6991 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -152,6 +152,7 @@ export class TaskController extends Controller { ) { const record = await prisma.taskOrder.findFirst({ where: { id: taskOrderId }, + orderBy: [{ urgent: "desc" }, { createdAt: "desc" }], include: { userTask: true, taskProduct: true,