feat: add task product record
This commit is contained in:
parent
33e77e33b5
commit
111adbb076
2 changed files with 19 additions and 2 deletions
|
|
@ -1121,6 +1121,7 @@ model Product {
|
||||||
|
|
||||||
workProduct WorkProduct[]
|
workProduct WorkProduct[]
|
||||||
quotationProductServiceList QuotationProductServiceList[]
|
quotationProductServiceList QuotationProductServiceList[]
|
||||||
|
taskProduct TaskProduct[]
|
||||||
|
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
createdBy User? @relation(name: "ProductCreatedByUser", fields: [createdByUserId], references: [id], onDelete: SetNull)
|
createdBy User? @relation(name: "ProductCreatedByUser", fields: [createdByUserId], references: [id], onDelete: SetNull)
|
||||||
|
|
@ -1519,6 +1520,16 @@ model Task {
|
||||||
taskOrderId String
|
taskOrderId String
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model TaskProduct {
|
||||||
|
taskOrderId String
|
||||||
|
taskOrder TaskOrder @relation(fields: [taskOrderId], references: [id])
|
||||||
|
productId String
|
||||||
|
product Product @relation(fields: [productId], references: [id])
|
||||||
|
discount Float?
|
||||||
|
|
||||||
|
@@id([taskOrderId, productId])
|
||||||
|
}
|
||||||
|
|
||||||
model TaskOrder {
|
model TaskOrder {
|
||||||
id String @id @default(cuid())
|
id String @id @default(cuid())
|
||||||
|
|
||||||
|
|
@ -1542,6 +1553,7 @@ model TaskOrder {
|
||||||
createdByUserId String
|
createdByUserId String
|
||||||
|
|
||||||
userTask UserTask[]
|
userTask UserTask[]
|
||||||
|
taskProduct TaskProduct[]
|
||||||
}
|
}
|
||||||
|
|
||||||
enum UserTaskStatus {
|
enum UserTaskStatus {
|
||||||
|
|
|
||||||
|
|
@ -144,6 +144,7 @@ export class TaskController extends Controller {
|
||||||
where: { id: taskOrderId },
|
where: { id: taskOrderId },
|
||||||
include: {
|
include: {
|
||||||
userTask: true,
|
userTask: true,
|
||||||
|
taskProduct: true,
|
||||||
taskList: {
|
taskList: {
|
||||||
where: {
|
where: {
|
||||||
requestWorkStep: { responsibleUserId: taskAssignedUserId },
|
requestWorkStep: { responsibleUserId: taskAssignedUserId },
|
||||||
|
|
@ -215,6 +216,7 @@ export class TaskController extends Controller {
|
||||||
registeredBranchId?: string;
|
registeredBranchId?: string;
|
||||||
|
|
||||||
taskList: { requestWorkId: string; step: number }[];
|
taskList: { requestWorkId: string; step: number }[];
|
||||||
|
taskProduct: { productId: string; discount?: number }[];
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
return await prisma.$transaction(async (tx) => {
|
return await prisma.$transaction(async (tx) => {
|
||||||
|
|
@ -236,7 +238,7 @@ export class TaskController extends Controller {
|
||||||
|
|
||||||
const code = `PO${year}${month}${last.value.toString().padStart(6, "0")}`;
|
const code = `PO${year}${month}${last.value.toString().padStart(6, "0")}`;
|
||||||
|
|
||||||
const { taskList, ...rest } = body;
|
const { taskList, taskProduct, ...rest } = body;
|
||||||
|
|
||||||
const userAffiliatedBranch = await tx.branch.findFirst({
|
const userAffiliatedBranch = await tx.branch.findFirst({
|
||||||
include: branchRelationPermInclude(req.user),
|
include: branchRelationPermInclude(req.user),
|
||||||
|
|
@ -323,6 +325,7 @@ export class TaskController extends Controller {
|
||||||
registeredBranchId: userAffiliatedBranch.id,
|
registeredBranchId: userAffiliatedBranch.id,
|
||||||
createdByUserId: req.user.sub,
|
createdByUserId: req.user.sub,
|
||||||
taskList: { create: taskList },
|
taskList: { create: taskList },
|
||||||
|
taskProduct: { create: taskProduct },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -344,6 +347,7 @@ export class TaskController extends Controller {
|
||||||
institutionId: string;
|
institutionId: string;
|
||||||
|
|
||||||
taskList: { requestWorkId: string; step: number }[];
|
taskList: { requestWorkId: string; step: number }[];
|
||||||
|
taskProduct: { productId: string; discount?: number }[];
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
const record = await prisma.taskOrder.findFirst({
|
const record = await prisma.taskOrder.findFirst({
|
||||||
|
|
@ -401,6 +405,7 @@ export class TaskController extends Controller {
|
||||||
skipDuplicates: true,
|
skipDuplicates: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
taskProduct: { deleteMany: {}, create: body.taskProduct },
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue