From 6f1969c829aae67c4201badaadaa4533b29daf1e Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 26 Feb 2025 11:49:35 +0700 Subject: [PATCH] fix: line user not registered for all customer branch --- src/controllers/09-line-controller.ts | 82 +++++++++++++++++-- src/controllers/09-verification-controller.ts | 21 +++-- 2 files changed, 89 insertions(+), 14 deletions(-) diff --git a/src/controllers/09-line-controller.ts b/src/controllers/09-line-controller.ts index 16028fc..879b00e 100644 --- a/src/controllers/09-line-controller.ts +++ b/src/controllers/09-line-controller.ts @@ -73,7 +73,14 @@ export class LineController extends Controller { status: activeOnly ? { not: Status.INACTIVE } : undefined, id: customerBranchId, customerId, - userId: line.user.sub, + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], }, subDistrict: zipCode ? { zipCode } : undefined, gender, @@ -135,7 +142,14 @@ export class LineController extends Controller { where: { id: employeeId, customerBranch: { - userId: line.user.sub, + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], }, }, }); @@ -220,7 +234,16 @@ export class LineController extends Controller { // registeredBranch: { OR: permissionCond(req.user) }, }, employee: { - customerBranch: { userId: line.user.sub }, + customerBranch: { + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], + }, }, } satisfies Prisma.RequestDataWhereInput; @@ -282,7 +305,16 @@ export class LineController extends Controller { where: { id: requestDataId, employee: { - customerBranch: { userId: line.user.sub }, + customerBranch: { + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], + }, }, }, include: { @@ -399,7 +431,16 @@ export class LineController extends Controller { : undefined, quotationId, employee: { - customerBranch: { userId: line.user.sub }, + customerBranch: { + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], + }, }, }, } satisfies Prisma.RequestWorkWhereInput; @@ -519,7 +560,16 @@ export class LineController extends Controller { id: requestWorkId, request: { employee: { - customerBranch: { userId: line.user.sub }, + customerBranch: { + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], + }, }, }, }, @@ -588,7 +638,14 @@ export class LineController extends Controller { payCondition, quotationStatus: historyOnly ? { in: ["ProcessComplete", "Canceled"] } : status, customerBranch: { - userId: line.user.sub, + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], }, requestData: inProgressOnly ? { @@ -698,7 +755,16 @@ export class LineController extends Controller { where: { id: quotationId, isDebitNote: false, - customerBranch: { userId: line.user.sub }, + customerBranch: { + OR: [ + { userId: line.user.sub }, + { + customer: { + branch: { some: { userId: line.user.sub } }, + }, + }, + ], + }, }, }); diff --git a/src/controllers/09-verification-controller.ts b/src/controllers/09-verification-controller.ts index 4b3809f..1222eef 100644 --- a/src/controllers/09-verification-controller.ts +++ b/src/controllers/09-verification-controller.ts @@ -25,7 +25,18 @@ export class verificationController extends Controller { @Get() @Security("line") async isRegistered(@Request() req: RequestWithLineUser) { - return !!(await prisma.customerBranch.findFirst({ where: { userId: req.user.sub } })); + return !!(await prisma.customerBranch.findFirst({ + where: { + OR: [ + { userId: req.user.sub }, + { + customer: { + branch: { some: { userId: req.user.sub } }, + }, + }, + ], + }, + })); } @Post("/send-otp") @@ -133,13 +144,11 @@ export class verificationController extends Controller { customerBranch.otpExpires && customerBranch.otpExpires >= new Date() ) { - const dataCustomer = await prisma.customerBranch.update({ + const dataCustomer = await prisma.customerBranch.updateMany({ where: { - id: customerBranch.id, - }, - data: { - userId: req.user.sub, + customerId: customerBranch.customerId, }, + data: { userId: req.user.sub }, }); return dataCustomer;