diff --git a/src/controllers/03-employee-controller.ts b/src/controllers/03-employee-controller.ts index 6008642..0f1fb73 100644 --- a/src/controllers/03-employee-controller.ts +++ b/src/controllers/03-employee-controller.ts @@ -207,64 +207,18 @@ export class EmployeeController extends Controller { @Query() page: number = 1, @Query() pageSize: number = 30, ) { - const where = { - OR: queryOrNot(query, [ - { - employeePassport: { - some: { number: { contains: query } }, - }, - }, - { firstName: { contains: query } }, - { firstNameEN: { contains: query } }, - { lastName: { contains: query } }, - { lastNameEN: { contains: query } }, - ...whereAddressQuery(query), - ]), - AND: { - ...filterStatus(status), - customerBranch: { - customerId, - customer: isSystem(req.user) - ? undefined - : { - registeredBranch: { - OR: permissionCond(req.user), - }, - }, - }, - subDistrict: zipCode ? { zipCode } : undefined, - gender, - }, - } satisfies Prisma.EmployeeWhereInput; - - const [result, total] = await prisma.$transaction([ - prisma.employee.findMany({ - orderBy: [{ statusOrder: "asc" }, { createdAt: "asc" }], - include: { - employeePassport: passport ? { orderBy: { expireDate: "desc" } } : undefined, - employeeVisa: visa ? { orderBy: { expireDate: "desc" } } : undefined, - province: true, - district: true, - subDistrict: true, - customerBranch: { - include: { customer: true }, - }, - createdBy: true, - updatedBy: true, - }, - where, - take: pageSize, - skip: (page - 1) * pageSize, - }), - prisma.employee.count({ where }), - ]); - - return { - result, + return this.listByCriteria( + req, + zipCode, + gender, + status, + visa, + passport, + customerId, + query, page, pageSize, - total, - }; + ); } @Post("list")