Merge branch 'develop'

This commit is contained in:
Methapon2001 2025-01-24 13:45:17 +07:00
commit 3b60582e66
5 changed files with 43 additions and 5 deletions

View file

@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "TaskOrder" ADD COLUMN "urgent" BOOLEAN NOT NULL DEFAULT false;

View file

@ -1552,6 +1552,8 @@ model TaskOrder {
contactName String
contactTel String
urgent Boolean @default(false)
institution Institution @relation(fields: [institutionId], references: [id])
institutionId String

View file

@ -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),

View file

@ -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 }),
]);
@ -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;
}
}

View file

@ -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,
@ -295,6 +296,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 +368,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 +454,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 +485,7 @@ export class TaskController extends Controller {
},
data: {
...body,
urgent: work.some((v) => v.requestWork.request.quotation.urgent),
taskList: {
deleteMany: record?.taskList
.filter(
@ -629,6 +660,7 @@ export class TaskActionController extends Controller {
tx.taskOrder.update({
where: { id: taskOrderId },
data: {
urgent: false,
taskOrderStatus: TaskOrderStatus.Complete,
userTask: {
updateMany: {