diff --git a/src/controllers/doctor_item_package.ts b/src/controllers/doctor_item_package.ts index 10c9066..f9600cd 100644 --- a/src/controllers/doctor_item_package.ts +++ b/src/controllers/doctor_item_package.ts @@ -7,6 +7,7 @@ import { ReturnHelper } from "../helpers/express/return"; import { Language } from "../langs/lang"; import { DoctorItemPackageModel } from "../model/doctor_item_package"; import { OrmHelper } from "../helpers/orm"; +import CommonHelper from "../helpers/common"; const log: Logger = new Logger({ name: "[DoctorItemPackageController]", @@ -36,33 +37,42 @@ export class DoctorItemPackageController { }); let param: any = await schema.validateAsync(req.query); - let filter = param.filter && param.filter !== "" ? JSON.parse(param.filter) : {}; - filter.doctor_id = param.doctor_id; - const query = await DoctorItemPackageModel.list(filter); + let filter = param.filter && param.filter !== "" ? JSON.parse(param.filter) : {}; + let filterAny = filter.any && filter.any !== "" ? filter.any : ""; + + let filterObj = { ...filter } as any; + delete filterObj.any; + filterObj = { ...filterObj, "DoctorItemPackage.doctor": param.doctor_id }; + + const query = await DoctorItemPackageModel.list(filterObj, filterAny); const orderField = param.order_field || "id"; const orderDirection = param.order_direction || "asc"; - const total_count_data = await query.getCount(); const offset = (param.page - 1) * param.limit; - const rows = await query + + const res_count = query; + const res_list = query + .leftJoinAndSelect("DoctorItemPackage.items", "ItemMaster") + .leftJoinAndSelect("ItemMaster.generic_name", "GenericName") + .leftJoinAndSelect("ItemMaster.type_detail", "item_type") .orderBy("DoctorItemPackage." + orderField, orderDirection) .offset(offset) .limit(param.limit) - .getMany(); - const packages = rows.map((row: any) => ({ - id: row.id, - name: row.name, - description: row.description || null, - active: row.active, - items: row.items || [], - })); + // const packages = rows.map((row: any) => ({ + // id: row.id, + // name: row.name, + // description: row.description || null, + // active: row.active, + // items: row.items || [], + // })); - const list_data = packages; - const count_data = packages.length; const current_page = param.page; + const total_count_data = await res_count.getCount(); + const list_data = await res_list.getMany(); + const count_data = CommonHelper.countObject(list_data); return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, list_data); } catch (e: unknown) { diff --git a/src/model/doctor_item_package.ts b/src/model/doctor_item_package.ts index 7d3af7e..1a026d3 100644 --- a/src/model/doctor_item_package.ts +++ b/src/model/doctor_item_package.ts @@ -16,7 +16,7 @@ export class DoctorItemPackageModel { } if (filterAny && filterAny !== "" && filterAny !== null && filterAny !== undefined) { const filterResult = CommonHelper.handleFilter({ - filter: JSON.stringify({ any: filterAny }), + filter: JSON.stringify({ any: filterAny.toLowerCase() }), col_any_eq: [], col_any_like: ["DoctorItemPackage.name"], }); @@ -29,10 +29,6 @@ export class DoctorItemPackageModel { let query = repo .createQueryBuilder("DoctorItemPackage") - .leftJoinAndSelect("DoctorItemPackage.doctor", "Doctor") - .leftJoinAndSelect("DoctorItemPackage.items", "ItemMaster") - .leftJoinAndSelect("ItemMaster.generic_name", "GenericName"); - if (whereAttr.length != 0) { query = query.where(whereAttr.join(" and "), whereVal); }