From feffe6d52f701814c7b7db92b7c8453d55b0d65a Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 24 Feb 2025 11:39:08 +0700 Subject: [PATCH] feat: add accept endpoint debit note --- src/controllers/09-debit-note-controller.ts | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/controllers/09-debit-note-controller.ts b/src/controllers/09-debit-note-controller.ts index 0ca6b2e..8c817aa 100644 --- a/src/controllers/09-debit-note-controller.ts +++ b/src/controllers/09-debit-note-controller.ts @@ -823,6 +823,34 @@ export class DebitNoteController extends Controller { } } +@Route("api/v1/debit-note/{debitNoteId}") +@Tags("Debit Note") +export class DebitNoteActionController extends Controller { + async #checkPermission(user: RequestWithUser["user"], id: string) { + const data = await prisma.quotation.findUnique({ + include: { + registeredBranch: { + include: branchRelationPermInclude(user), + }, + }, + where: { id, isDebitNote: true }, + }); + if (!data) throw notFoundError("Debit Note"); + await permissionCheck(user, data.registeredBranch); + return data; + } + + @Post("accept") + @Security("keycloak", MANAGE_ROLES) + async acceptDebitNote(@Request() req: RequestWithUser, @Path() debitNoteId: string) { + await this.#checkPermission(req.user, debitNoteId); + return await prisma.quotation.update({ + where: { id: debitNoteId }, + data: { quotationStatus: QuotationStatus.Accepted }, + }); + } +} + @Route("api/v1/debit-note/{debitNoteId}") @Tags("Debit Note") export class DebitNoteFileController extends Controller {