From 7e937333dc96241cb6249a99c009db1c8fce3323 Mon Sep 17 00:00:00 2001 From: Kanjana Date: Wed, 9 Apr 2025 09:51:52 +0700 Subject: [PATCH 1/3] add payment attachment --- src/controllers/09-line-controller.ts | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/controllers/09-line-controller.ts b/src/controllers/09-line-controller.ts index cf8d7f3..93996c7 100644 --- a/src/controllers/09-line-controller.ts +++ b/src/controllers/09-line-controller.ts @@ -1368,3 +1368,70 @@ export class LineQuotationFileController extends Controller { return await deleteFile(fileLocation.quotation.attachment(quotationId, name)); } } + +@Route("api/v1/line/payment/{paymentId}/attachment") +@Tags("Line") +export class PaymentFileLineController extends Controller { + private async checkPermission(_user: RequestWithUser["user"], id: string) { + const data = await prisma.payment.findUnique({ + include: { + invoice: { + include: { + quotation: true, + }, + }, + }, + where: { id }, + }); + console.log("data", data); + + if (!data) throw notFoundError("Payment"); + return { paymentId: id, quotationId: data.invoice.quotationId }; + } + + @Get() + @Security("line") + async listAttachment(@Request() req: RequestWithUser, @Path() paymentId: string) { + console.log("req", req); + + const { quotationId } = await this.checkPermission(req.user, paymentId); + console.log("quotationId", quotationId); + + return await listFile(fileLocation.quotation.payment(quotationId, paymentId)); + } + + @Head("{name}") + async headAttachment( + @Request() req: RequestWithUser, + @Path() paymentId: string, + @Path() name: string, + ) { + const data = await prisma.payment.findUnique({ + where: { id: paymentId }, + include: { invoice: true }, + }); + if (!data) throw notFoundError("Payment"); + return req.res?.redirect( + await getPresigned( + "head", + fileLocation.quotation.payment(data.invoice.quotationId, paymentId, name), + ), + ); + } + + @Get("{name}") + async getAttachment( + @Request() req: RequestWithUser, + @Path() paymentId: string, + @Path() name: string, + ) { + const data = await prisma.payment.findUnique({ + where: { id: paymentId }, + include: { invoice: true }, + }); + if (!data) throw notFoundError("Payment"); + return req.res?.redirect( + await getFile(fileLocation.quotation.payment(data.invoice.quotationId, paymentId, name)), + ); + } +} From 743fde5493abc62bbb53b99a896964a05fc4aff6 Mon Sep 17 00:00:00 2001 From: Kanjana Date: Wed, 9 Apr 2025 11:54:52 +0700 Subject: [PATCH 2/3] add mode: "insensitive" --- src/controllers/00-notification-controller.ts | 4 +- src/controllers/01-branch-controller.ts | 24 ++++----- src/controllers/01-branch-user-controller.ts | 16 +++--- src/controllers/02-user-controller.ts | 12 ++--- .../03-customer-branch-controller.ts | 26 ++++----- src/controllers/03-customer-controller.ts | 16 +++--- src/controllers/03-employee-controller.ts | 20 +++---- .../04-flow-template-controller.ts | 4 +- src/controllers/04-institution-controller.ts | 2 +- src/controllers/04-invoice-controller.ts | 16 +++--- src/controllers/04-product-controller.ts | 4 +- .../04-product-group-controller.ts | 4 +- src/controllers/04-properties-controller.ts | 5 +- src/controllers/04-service-controller.ts | 4 +- src/controllers/05-quotation-controller.ts | 12 ++--- src/controllers/06-request-list-controller.ts | 24 ++++----- src/controllers/07-task-controller.ts | 12 ++--- src/controllers/08-credit-note-controller.ts | 22 ++++---- src/controllers/09-debit-note-controller.ts | 12 ++--- src/controllers/09-line-controller.ts | 53 +++++++++---------- 20 files changed, 145 insertions(+), 147 deletions(-) diff --git a/src/controllers/00-notification-controller.ts b/src/controllers/00-notification-controller.ts index 2bc4bf0..da40b93 100644 --- a/src/controllers/00-notification-controller.ts +++ b/src/controllers/00-notification-controller.ts @@ -36,8 +36,8 @@ export class NotificationController extends Controller { AND: [ { OR: queryOrNot<(typeof where)[]>(query, [ - { title: { contains: query } }, - { detail: { contains: query } }, + { title: { contains: query, mode: "insensitive" } }, + { detail: { contains: query, mode: "insensitive" } }, ]), }, { diff --git a/src/controllers/01-branch-controller.ts b/src/controllers/01-branch-controller.ts index acb204f..f0cc512 100644 --- a/src/controllers/01-branch-controller.ts +++ b/src/controllers/01-branch-controller.ts @@ -265,20 +265,20 @@ export class BranchController extends Controller { }, OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { nameEN: { contains: query } }, - { name: { contains: query } }, - { email: { contains: query } }, - { telephoneNo: { contains: query } }, + { nameEN: { contains: query, mode: "insensitive" } }, + { name: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telephoneNo: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), { branch: { some: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { nameEN: { contains: query } }, - { name: { contains: query } }, - { email: { contains: query } }, - { telephoneNo: { contains: query } }, + { nameEN: { contains: query, mode: "insensitive" } }, + { name: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telephoneNo: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ], }, @@ -309,10 +309,10 @@ export class BranchController extends Controller { where: { AND: { OR: permissionCond(req.user) }, OR: [ - { nameEN: { contains: query } }, - { name: { contains: query } }, - { email: { contains: query } }, - { telephoneNo: { contains: query } }, + { nameEN: { contains: query, mode: "insensitive" } }, + { name: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telephoneNo: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ], }, diff --git a/src/controllers/01-branch-user-controller.ts b/src/controllers/01-branch-user-controller.ts index 2b0ec23..99d77a4 100644 --- a/src/controllers/01-branch-user-controller.ts +++ b/src/controllers/01-branch-user-controller.ts @@ -104,8 +104,8 @@ export class UserBranchController extends Controller { userId, }, OR: queryOrNot(query, [ - { branch: { name: { contains: query } } }, - { branch: { nameEN: { contains: query } } }, + { branch: { name: { contains: query, mode: "insensitive" } } }, + { branch: { nameEN: { contains: query, mode: "insensitive" } } }, ]), } satisfies Prisma.BranchUserWhereInput; @@ -157,12 +157,12 @@ export class BranchUserController extends Controller { branchId, }, OR: [ - { user: { firstName: { contains: query } } }, - { user: { firstNameEN: { contains: query } } }, - { user: { lastName: { contains: query } } }, - { user: { lastNameEN: { contains: query } } }, - { user: { email: { contains: query } } }, - { user: { telephoneNo: { contains: query } } }, + { user: { firstName: { contains: query, mode: "insensitive" } } }, + { user: { firstNameEN: { contains: query, mode: "insensitive" } } }, + { user: { lastName: { contains: query, mode: "insensitive" } } }, + { user: { lastNameEN: { contains: query, mode: "insensitive" } } }, + { user: { email: { contains: query, mode: "insensitive" } } }, + { user: { telephoneNo: { contains: query, mode: "insensitive" } } }, ], } satisfies Prisma.BranchUserWhereInput; diff --git a/src/controllers/02-user-controller.ts b/src/controllers/02-user-controller.ts index f1dca32..7ba34e6 100644 --- a/src/controllers/02-user-controller.ts +++ b/src/controllers/02-user-controller.ts @@ -324,12 +324,12 @@ export class UserController extends Controller { const where = { OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, - { email: { contains: query } }, - { telephoneNo: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { telephoneNo: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]), AND: { diff --git a/src/controllers/03-customer-branch-controller.ts b/src/controllers/03-customer-branch-controller.ts index 772c4df..7818bef 100644 --- a/src/controllers/03-customer-branch-controller.ts +++ b/src/controllers/03-customer-branch-controller.ts @@ -198,15 +198,15 @@ export class CustomerBranchController extends Controller { ) { const where = { OR: queryOrNot(query, [ - { customerName: { contains: query } }, - { registerName: { contains: query } }, - { registerNameEN: { contains: query } }, - { email: { contains: query } }, - { code: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { registerName: { contains: query, mode: "insensitive" } }, + { registerNameEN: { contains: query, mode: "insensitive" } }, + { email: { contains: query, mode: "insensitive" } }, + { code: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]), AND: { @@ -288,10 +288,10 @@ export class CustomerBranchController extends Controller { ) { const where = { OR: queryOrNot(query, [ - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]), AND: { diff --git a/src/controllers/03-customer-controller.ts b/src/controllers/03-customer-controller.ts index bef51e3..8cac3d9 100644 --- a/src/controllers/03-customer-controller.ts +++ b/src/controllers/03-customer-controller.ts @@ -168,14 +168,14 @@ export class CustomerController extends Controller { ) { const where = { OR: queryOrNot(query, [ - { branch: { some: { namePrefix: { contains: query } } } }, - { branch: { some: { customerName: { contains: query } } } }, - { branch: { some: { registerName: { contains: query } } } }, - { branch: { some: { registerNameEN: { contains: query } } } }, - { branch: { some: { firstName: { contains: query } } } }, - { branch: { some: { firstNameEN: { contains: query } } } }, - { branch: { some: { lastName: { contains: query } } } }, - { branch: { some: { lastNameEN: { contains: query } } } }, + { branch: { some: { namePrefix: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { customerName: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { registerName: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { registerNameEN: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { firstName: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { firstNameEN: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { lastName: { contains: query, mode: "insensitive" } } } }, + { branch: { some: { lastNameEN: { contains: query, mode: "insensitive" } } } }, ]), AND: { customerType, diff --git a/src/controllers/03-employee-controller.ts b/src/controllers/03-employee-controller.ts index eb08db7..44629c1 100644 --- a/src/controllers/03-employee-controller.ts +++ b/src/controllers/03-employee-controller.ts @@ -163,13 +163,13 @@ export class EmployeeController extends Controller { OR: queryOrNot(query, [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]), AND: { @@ -252,13 +252,13 @@ export class EmployeeController extends Controller { ...(queryOrNot(query, [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]) ?? []), ...(queryOrNot(!!body, [ diff --git a/src/controllers/04-flow-template-controller.ts b/src/controllers/04-flow-template-controller.ts index 54510d5..0f80d61 100644 --- a/src/controllers/04-flow-template-controller.ts +++ b/src/controllers/04-flow-template-controller.ts @@ -61,10 +61,10 @@ export class FlowTemplateController extends Controller { ) { const where = { OR: queryOrNot(query, [ - { name: { contains: query } }, + { name: { contains: query, mode: "insensitive" } }, { step: { - some: { name: { contains: query } }, + some: { name: { contains: query, mode: "insensitive" } }, }, }, ]), diff --git a/src/controllers/04-institution-controller.ts b/src/controllers/04-institution-controller.ts index 5e21445..76c0fc4 100644 --- a/src/controllers/04-institution-controller.ts +++ b/src/controllers/04-institution-controller.ts @@ -131,7 +131,7 @@ export class InstitutionController extends Controller { ...filterStatus(activeOnly ? Status.ACTIVE : status), group: body?.group ? { in: body.group } : group, OR: queryOrNot(query, [ - { name: { contains: query } }, + { name: { contains: query, mode: "insensitive" } }, { code: { contains: query, mode: "insensitive" } }, ]), } satisfies Prisma.InstitutionWhereInput; diff --git a/src/controllers/04-invoice-controller.ts b/src/controllers/04-invoice-controller.ts index 20dd91a..64efee2 100644 --- a/src/controllers/04-invoice-controller.ts +++ b/src/controllers/04-invoice-controller.ts @@ -99,19 +99,19 @@ export class InvoiceController extends Controller { const where: Prisma.InvoiceWhereInput = { OR: [ { code: { contains: query, mode: "insensitive" } }, - { quotation: { workName: { contains: query } } }, + { quotation: { workName: { contains: query, mode: "insensitive" } } }, { quotation: { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { registerName: { contains: query } }, - { registerNameEN: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { registerName: { contains: query, mode: "insensitive" } }, + { registerNameEN: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, diff --git a/src/controllers/04-product-controller.ts b/src/controllers/04-product-controller.ts index 3646479..8cb8c3e 100644 --- a/src/controllers/04-product-controller.ts +++ b/src/controllers/04-product-controller.ts @@ -154,8 +154,8 @@ export class ProductController extends Controller { const where = { OR: queryOrNot(query, [ - { name: { contains: query } }, - { detail: { contains: query } }, + { name: { contains: query, mode: "insensitive" } }, + { detail: { contains: query, mode: "insensitive" } }, { code: { contains: query, mode: "insensitive" } }, ]), AND: { diff --git a/src/controllers/04-product-group-controller.ts b/src/controllers/04-product-group-controller.ts index 2fdcb50..ee27265 100644 --- a/src/controllers/04-product-group-controller.ts +++ b/src/controllers/04-product-group-controller.ts @@ -93,8 +93,8 @@ export class ProductGroup extends Controller { ) { const where = { OR: queryOrNot(query, [ - { name: { contains: query } }, - { detail: { contains: query } }, + { name: { contains: query, mode: "insensitive" } }, + { detail: { contains: query, mode: "insensitive" } }, { code: { contains: query, mode: "insensitive" } }, ]), AND: [ diff --git a/src/controllers/04-properties-controller.ts b/src/controllers/04-properties-controller.ts index 46cea13..35f94a8 100644 --- a/src/controllers/04-properties-controller.ts +++ b/src/controllers/04-properties-controller.ts @@ -51,7 +51,10 @@ export class PropertiesController extends Controller { @Query() activeOnly?: boolean, ) { const where = { - OR: queryOrNot(query, [{ name: { contains: query } }, { nameEN: { contains: query } }]), + OR: queryOrNot(query, [ + { name: { contains: query, mode: "insensitive" } }, + { nameEN: { contains: query, mode: "insensitive" } }, + ]), AND: { ...filterStatus(activeOnly ? Status.ACTIVE : status), registeredBranch: { diff --git a/src/controllers/04-service-controller.ts b/src/controllers/04-service-controller.ts index a60c555..c193fbd 100644 --- a/src/controllers/04-service-controller.ts +++ b/src/controllers/04-service-controller.ts @@ -179,8 +179,8 @@ export class ServiceController extends Controller { const where = { OR: queryOrNot(query, [ - { name: { contains: query } }, - { detail: { contains: query } }, + { name: { contains: query, mode: "insensitive" } }, + { detail: { contains: query, mode: "insensitive" } }, { code: { contains: query, mode: "insensitive" } }, ]), AND: { diff --git a/src/controllers/05-quotation-controller.ts b/src/controllers/05-quotation-controller.ts index 0369627..fa3d6b3 100644 --- a/src/controllers/05-quotation-controller.ts +++ b/src/controllers/05-quotation-controller.ts @@ -210,16 +210,16 @@ export class QuotationController extends Controller { const where = { OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { workName: { contains: query } }, + { workName: { contains: query, mode: "insensitive" } }, { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index 4484ce3..464b5fc 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -91,13 +91,13 @@ export class RequestDataController extends Controller { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { registerName: { contains: query } }, - { registerNameEN: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { registerName: { contains: query, mode: "insensitive" } }, + { registerNameEN: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, @@ -105,14 +105,14 @@ export class RequestDataController extends Controller { OR: [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, { code: { contains: query, mode: "insensitive" } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index 2da73b2..03009b3 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -121,9 +121,9 @@ export class TaskController extends Controller { code: body?.code ? { in: body.code } : undefined, OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { taskName: { contains: query } }, - { contactName: { contains: query } }, - { contactTel: { contains: query } }, + { taskName: { contains: query, mode: "insensitive" } }, + { contactName: { contains: query, mode: "insensitive" } }, + { contactTel: { contains: query, mode: "insensitive" } }, ]), } satisfies Prisma.TaskOrderWhereInput; @@ -1021,9 +1021,9 @@ export class UserTaskController extends Controller { : undefined, OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { taskName: { contains: query } }, - { contactName: { contains: query } }, - { contactTel: { contains: query } }, + { taskName: { contains: query, mode: "insensitive" } }, + { contactName: { contains: query, mode: "insensitive" } }, + { contactTel: { contains: query, mode: "insensitive" } }, ]), } satisfies Prisma.TaskOrderWhereInput; diff --git a/src/controllers/08-credit-note-controller.ts b/src/controllers/08-credit-note-controller.ts index e5d2759..5fda3eb 100644 --- a/src/controllers/08-credit-note-controller.ts +++ b/src/controllers/08-credit-note-controller.ts @@ -153,17 +153,17 @@ export class CreditNoteController extends Controller { request: { OR: queryOrNot(query, [ { quotation: { code: { contains: query, mode: "insensitive" } } }, - { quotation: { workName: { contains: query } } }, + { quotation: { workName: { contains: query, mode: "insensitive" } } }, { quotation: { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, @@ -171,14 +171,14 @@ export class CreditNoteController extends Controller { OR: [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, { code: { contains: query, mode: "insensitive" } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, diff --git a/src/controllers/09-debit-note-controller.ts b/src/controllers/09-debit-note-controller.ts index bca4057..a499f88 100644 --- a/src/controllers/09-debit-note-controller.ts +++ b/src/controllers/09-debit-note-controller.ts @@ -200,16 +200,16 @@ export class DebitNoteController extends Controller { const where = { OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { workName: { contains: query } }, + { workName: { contains: query, mode: "insensitive" } }, { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, diff --git a/src/controllers/09-line-controller.ts b/src/controllers/09-line-controller.ts index 93996c7..0a6ea3c 100644 --- a/src/controllers/09-line-controller.ts +++ b/src/controllers/09-line-controller.ts @@ -58,13 +58,13 @@ export class LineController extends Controller { ...(queryOrNot(query, [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ...whereAddressQuery(query), ]) ?? []), ] @@ -178,19 +178,19 @@ export class LineController extends Controller { OR: queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, { quotation: { code: { contains: query, mode: "insensitive" } } }, - { quotation: { workName: { contains: query } } }, + { quotation: { workName: { contains: query, mode: "insensitive" } } }, { quotation: { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { registerName: { contains: query } }, - { registerNameEN: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { registerName: { contains: query, mode: "insensitive" } }, + { registerNameEN: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, @@ -198,14 +198,14 @@ export class LineController extends Controller { OR: [ { employeePassport: { - some: { number: { contains: query } }, + some: { number: { contains: query, mode: "insensitive" } }, }, }, { code: { contains: query, mode: "insensitive" } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, @@ -611,16 +611,16 @@ export class LineController extends Controller { ? [ ...(queryOrNot(query, [ { code: { contains: query, mode: "insensitive" } }, - { workName: { contains: query } }, + { workName: { contains: query, mode: "insensitive" } }, { customerBranch: { OR: [ { code: { contains: query, mode: "insensitive" } }, - { customerName: { contains: query } }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, + { customerName: { contains: query, mode: "insensitive" } }, + { firstName: { contains: query, mode: "insensitive" } }, + { firstNameEN: { contains: query, mode: "insensitive" } }, + { lastName: { contains: query, mode: "insensitive" } }, + { lastNameEN: { contains: query, mode: "insensitive" } }, ], }, }, @@ -1383,7 +1383,6 @@ export class PaymentFileLineController extends Controller { }, where: { id }, }); - console.log("data", data); if (!data) throw notFoundError("Payment"); return { paymentId: id, quotationId: data.invoice.quotationId }; @@ -1392,11 +1391,7 @@ export class PaymentFileLineController extends Controller { @Get() @Security("line") async listAttachment(@Request() req: RequestWithUser, @Path() paymentId: string) { - console.log("req", req); - const { quotationId } = await this.checkPermission(req.user, paymentId); - console.log("quotationId", quotationId); - return await listFile(fileLocation.quotation.payment(quotationId, paymentId)); } From afe54b1a4e7658cce4bca61bd2149df2963ace60 Mon Sep 17 00:00:00 2001 From: Kanjana Date: Wed, 9 Apr 2025 14:05:05 +0700 Subject: [PATCH 3/3] add insensitive search --- src/controllers/00-employment-office-controller.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/controllers/00-employment-office-controller.ts b/src/controllers/00-employment-office-controller.ts index e7efc24..95adc5a 100644 --- a/src/controllers/00-employment-office-controller.ts +++ b/src/controllers/00-employment-office-controller.ts @@ -2,6 +2,7 @@ import { Body, Controller, Get, Path, Post, Query, Route, Tags } from "tsoa"; import prisma from "../db"; import { queryOrNot } from "../utils/relation"; import { notFoundError } from "../utils/error"; +import { Prisma } from "@prisma/client"; @Route("/api/v1/employment-office") @Tags("Employment Office") @@ -40,11 +41,14 @@ export class EmploymentOfficeController extends Controller { ], [], ), - ...queryOrNot( + ...(queryOrNot( query, - [{ name: { contains: query } }, { nameEN: { contains: query } }], + [ + { name: { contains: query, mode: "insensitive" } }, + { nameEN: { contains: query, mode: "insensitive" } }, + ], [], - ), + ) satisfies Prisma.EmploymentOfficeWhereInput["OR"]), ...queryOrNot(!!body?.id, [{ id: { in: body?.id } }], []), ] : undefined,