From 4715f55cc2ee0f0aef77d92ff336115d31c80bdd Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Thu, 30 Apr 2026 10:12:58 +0700 Subject: [PATCH] update registrationfee bugs --- src/controllers/inpatient_room.ts | 6 +++--- src/controllers/registrationfee.ts | 31 ++++++++++++++---------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/controllers/inpatient_room.ts b/src/controllers/inpatient_room.ts index 461c5c6..8234e6c 100644 --- a/src/controllers/inpatient_room.ts +++ b/src/controllers/inpatient_room.ts @@ -133,7 +133,7 @@ export class InpatientRoomController { data.room = room; data.name = param.name; data.number_of_bed = param.number_of_bed; - data.created_by = req.auth.data.name; + data.created_by = req.auth?.data.name; await OrmHelper.DB.manager.save(data); @@ -231,7 +231,7 @@ export class InpatientRoomController { inpatientRoom.room = room; inpatientRoom.name = param.name; inpatientRoom.number_of_bed = param.number_of_bed; - inpatientRoom.updated_by = req.auth.data.name; + inpatientRoom.updated_by = req.auth?.data.name; await queryRunner.manager.save(inpatientRoom); @@ -277,7 +277,7 @@ export class InpatientRoomController { const repo = OrmHelper.DB.getRepository(InpatientRoom); - const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected; + const affected = (!param.hard ? await repo.softDelete({ id: param.id }) : await repo.delete({ id: param.id })).affected ?? 0; if (affected > 0) { return ReturnHelper.successResponseAny(res, 200, Language.lang.success_delete, {}); diff --git a/src/controllers/registrationfee.ts b/src/controllers/registrationfee.ts index 66af3b6..bab6a27 100644 --- a/src/controllers/registrationfee.ts +++ b/src/controllers/registrationfee.ts @@ -49,40 +49,37 @@ export class RegistrationFeeController { const filter = param.filter && param.filter !== "" ? JSON.parse(param.filter) : {}; const offset = (param.page - 1) * param.limit; - const query = OrmHelper.DB.getRepository(RegistrationFee) + const baseQuery = OrmHelper.DB.getRepository(RegistrationFee) .createQueryBuilder("RegistrationFee") - .leftJoinAndSelect("RegistrationFee.services", "service") - .select([ - "RegistrationFee.id", - "RegistrationFee.type", - "RegistrationFee.created_at", - "RegistrationFee.updated_at", - "service.id", - "service.name", - ]); + .leftJoinAndMapMany( + "RegistrationFee.services", + Service, + "service", + "service.id::text = ANY(RegistrationFee.service)" + ); // ── Filter RegistrationFee.type ─────────────────────────────────── if (filter.type && filter.type !== "") { - query.andWhere("RegistrationFee.type = :type", { type: filter.type }); + baseQuery.andWhere("RegistrationFee.type ILIKE :type", { type:`%${filter.type}%` }); } // ── Filter service.name ─────────────────────────────────────────── if (filter.service_name && filter.service_name !== "") { - query.andWhere("service.name ILIKE :service_name", { service_name: `%${filter.service_name}%` }); + baseQuery.andWhere("service.name ILIKE :service_name", { service_name: `%${filter.service_name}%` }); } // ── Filter service.id ───────────────────────────────────────────── if (filter.service_id && filter.service_id !== "") { - query.andWhere("service.id = :service_id", { service_id: filter.service_id }); + baseQuery.andWhere("service.id = :service_id", { service_id: filter.service_id }); } if (param.with_deleted) { - query.withDeleted(); + baseQuery.withDeleted(); } const current_page = param.page; - const total_count_data = await query.getCount(); - const list_data = await query + const total_count_data = await baseQuery.getCount(); + const list_data = await baseQuery .orderBy("RegistrationFee." + param.order_field, param.order_direction) .offset(offset) .limit(param.limit) @@ -165,7 +162,7 @@ export class RegistrationFeeController { const param: any = await schema.validateAsync({ ...req.body, - id: req.params.id + id: req.params.id }); if (param.service && param.service.length > 0) { for (const serviceId of param.service) {