fixing doctor package searching
This commit is contained in:
@ -7,6 +7,7 @@ import { ReturnHelper } from "../helpers/express/return";
|
|||||||
import { Language } from "../langs/lang";
|
import { Language } from "../langs/lang";
|
||||||
import { DoctorItemPackageModel } from "../model/doctor_item_package";
|
import { DoctorItemPackageModel } from "../model/doctor_item_package";
|
||||||
import { OrmHelper } from "../helpers/orm";
|
import { OrmHelper } from "../helpers/orm";
|
||||||
|
import CommonHelper from "../helpers/common";
|
||||||
|
|
||||||
const log: Logger<ILogObj> = new Logger({
|
const log: Logger<ILogObj> = new Logger({
|
||||||
name: "[DoctorItemPackageController]",
|
name: "[DoctorItemPackageController]",
|
||||||
@ -36,33 +37,42 @@ export class DoctorItemPackageController {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let param: any = await schema.validateAsync(req.query);
|
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 orderField = param.order_field || "id";
|
||||||
const orderDirection = param.order_direction || "asc";
|
const orderDirection = param.order_direction || "asc";
|
||||||
|
|
||||||
const total_count_data = await query.getCount();
|
|
||||||
const offset = (param.page - 1) * param.limit;
|
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)
|
.orderBy("DoctorItemPackage." + orderField, orderDirection)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.limit(param.limit)
|
.limit(param.limit)
|
||||||
.getMany();
|
|
||||||
|
|
||||||
const packages = rows.map((row: any) => ({
|
// const packages = rows.map((row: any) => ({
|
||||||
id: row.id,
|
// id: row.id,
|
||||||
name: row.name,
|
// name: row.name,
|
||||||
description: row.description || null,
|
// description: row.description || null,
|
||||||
active: row.active,
|
// active: row.active,
|
||||||
items: row.items || [],
|
// items: row.items || [],
|
||||||
}));
|
// }));
|
||||||
|
|
||||||
const list_data = packages;
|
|
||||||
const count_data = packages.length;
|
|
||||||
const current_page = param.page;
|
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);
|
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, list_data);
|
||||||
} catch (e: unknown) {
|
} catch (e: unknown) {
|
||||||
|
|||||||
@ -16,7 +16,7 @@ export class DoctorItemPackageModel {
|
|||||||
}
|
}
|
||||||
if (filterAny && filterAny !== "" && filterAny !== null && filterAny !== undefined) {
|
if (filterAny && filterAny !== "" && filterAny !== null && filterAny !== undefined) {
|
||||||
const filterResult = CommonHelper.handleFilter({
|
const filterResult = CommonHelper.handleFilter({
|
||||||
filter: JSON.stringify({ any: filterAny }),
|
filter: JSON.stringify({ any: filterAny.toLowerCase() }),
|
||||||
col_any_eq: [],
|
col_any_eq: [],
|
||||||
col_any_like: ["DoctorItemPackage.name"],
|
col_any_like: ["DoctorItemPackage.name"],
|
||||||
});
|
});
|
||||||
@ -29,10 +29,6 @@ export class DoctorItemPackageModel {
|
|||||||
|
|
||||||
let query = repo
|
let query = repo
|
||||||
.createQueryBuilder("DoctorItemPackage")
|
.createQueryBuilder("DoctorItemPackage")
|
||||||
.leftJoinAndSelect("DoctorItemPackage.doctor", "Doctor")
|
|
||||||
.leftJoinAndSelect("DoctorItemPackage.items", "ItemMaster")
|
|
||||||
.leftJoinAndSelect("ItemMaster.generic_name", "GenericName");
|
|
||||||
|
|
||||||
if (whereAttr.length != 0) {
|
if (whereAttr.length != 0) {
|
||||||
query = query.where(whereAttr.join(" and "), whereVal);
|
query = query.where(whereAttr.join(" and "), whereVal);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user