feat: allow company change

This commit is contained in:
Methapon Metanipat 2024-09-23 17:47:02 +07:00
parent 4b963cf69c
commit 6ba5234587

View file

@ -230,21 +230,34 @@ export class ProductGroup extends Controller {
let companyAfter =
!!body.registeredBranchId && branch ? (branch.headOffice || branch).code : false;
if (companyBefore && companyAfter && companyBefore !== companyAfter) {
throw new HttpError(
HttpStatus.BAD_REQUEST,
"Cannot move between different headoffice",
"crossCompanyNotPermit",
);
}
const result = await prisma.productGroup.update({
include: {
createdBy: true,
updatedBy: true,
},
data: { ...body, statusOrder: +(body.status === "INACTIVE"), updatedByUserId: req.user.sub },
where: { id: groupId },
const result = await prisma.$transaction(async (tx) => {
let code = "";
if (companyBefore && companyAfter && companyBefore !== companyAfter) {
const last = await tx.runningNo.upsert({
where: {
key: `PRODGRP_${companyAfter}`,
},
create: {
key: `PRODGRP_${companyAfter}`,
value: 1,
},
update: { value: { increment: 1 } },
});
code = `G${last.value.toString().padStart(2, "0")}`;
}
return await prisma.productGroup.update({
include: {
createdBy: true,
updatedBy: true,
},
data: {
...body,
code: !!code ? code : undefined,
statusOrder: +(body.status === "INACTIVE"),
updatedByUserId: req.user.sub,
},
where: { id: groupId },
});
});
return result;