update: add option for order pharmacy

This commit is contained in:
wayanrivan
2026-03-11 22:41:14 +07:00
parent 3363cd225c
commit 1cc0dba1c5
5 changed files with 120 additions and 35 deletions

View File

@ -75,7 +75,14 @@ export class ItemMasterController {
#swagger.security = [{ "bearerAuth": [] }] #swagger.security = [{ "bearerAuth": [] }]
*/ */
try { try {
const query = await ItemMasterModel.list(); // ← hapus await disini, karena list() return QueryBuilder const query = await ItemMasterModel.list();
query.select([
"item_master.item_name",
"unit.large_unit",
"unit.small_unit",
"item_master.pack_size",
]);
const total_count_data = await query.getCount(); const total_count_data = await query.getCount();
const list_data = await query.getMany(); const list_data = await query.getMany();
@ -213,19 +220,19 @@ export class ItemMasterController {
const data = new ItemMaster() const data = new ItemMaster()
data.item_name = param.item_name, data.item_name = param.item_name,
data.generic_name = param.generic_name_id, data.generic_name = param.generic_name_id,
data.type_detail = param.item_type_detail_id, data.type_detail = param.item_type_detail_id,
data.category = param.item_category_id, data.category = param.item_category_id,
data.item_class = param.item_class_id, data.item_class = param.item_class_id,
data.item_class_detail = param.item_class_detail_id, data.item_class_detail = param.item_class_detail_id,
data.status = param.item_status_id, data.status = param.item_status_id,
data.factory = param.factory_id, data.factory = param.factory_id,
data.unit = param.unit_id, data.unit = param.unit_id,
data.pack_size = param.pack_size, data.pack_size = param.pack_size,
data.minimum_quantity = param.minimum_quantity, data.minimum_quantity = param.minimum_quantity,
data.minimum_sales_quantity = param.minimum_sales_quantity, data.minimum_sales_quantity = param.minimum_sales_quantity,
data.strength = param.strength, data.strength = param.strength,
data.active = param.active data.active = param.active
data.created_by = req.auth.data.name; data.created_by = req.auth.data.name;
await OrmHelper.DB.manager.save(data); await OrmHelper.DB.manager.save(data);
@ -293,19 +300,19 @@ export class ItemMasterController {
if (data != null) { if (data != null) {
data.item_name = param.item_name, data.item_name = param.item_name,
data.generic_name = param.generic_name_id, data.generic_name = param.generic_name_id,
data.type_detail = param.item_type_detail_id, data.type_detail = param.item_type_detail_id,
data.category = param.item_category_id, data.category = param.item_category_id,
data.item_class = param.item_class_id, data.item_class = param.item_class_id,
data.item_class_detail = param.item_class_detail_id, data.item_class_detail = param.item_class_detail_id,
data.status = param.item_status_id, data.status = param.item_status_id,
data.factory = param.factory_id, data.factory = param.factory_id,
data.unit = param.unit_id, data.unit = param.unit_id,
data.pack_size = param.pack_size, data.pack_size = param.pack_size,
data.minimum_quantity = param.minimum_quantity, data.minimum_quantity = param.minimum_quantity,
data.minimum_sales_quantity = param.minimum_sales_quantity, data.minimum_sales_quantity = param.minimum_sales_quantity,
data.strength = param.strength, data.strength = param.strength,
data.active = param.active data.active = param.active
data.updated_by = req.auth.data.name; data.updated_by = req.auth.data.name;
await repo.save(data); await repo.save(data);

View File

@ -68,6 +68,31 @@ export class ItemOriginController {
} }
} }
static async option(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Pharmacy - ItemOrigin']
#swagger.security = [{ "bearerAuth": [] }]
*/
try {
const query = await ItemOriginModel.list();
query.select([
"item_origin.id",
"item_origin.origin_name",
]);
const total_count_data = await query.getCount();
const list_data = await query.getMany();
const count_data = CommonHelper.countObject(list_data);
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, 1, total_count_data, list_data);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message);
}
}
static async export(req: Request, res: Response, next: NextFunction): Promise<void | Response> { static async export(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/* /*
#swagger.tags = ['Pharmacy - ItemOrigin'] #swagger.tags = ['Pharmacy - ItemOrigin']
@ -110,7 +135,7 @@ export class ItemOriginController {
var query = await ItemOriginModel.list(filter); var query = await ItemOriginModel.list(filter);
const data = await query.getMany(); const data = await query.getMany();
const filename = "item_origin.csv"; const filename = "item_origin.csv";
res.setHeader('Content-Type', 'text/csv'); res.setHeader('Content-Type', 'text/csv');

View File

@ -68,6 +68,31 @@ export class SupplierController {
} }
} }
static async option(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Pharmacy - Supplier']
#swagger.security = [{ "bearerAuth": [] }]
*/
try {
const query = await SupplierModel.list();
query.select([
"supplier.id",
"supplier.supplier_name",
]);
const total_count_data = await query.getCount();
const list_data = await query.getMany();
const count_data = CommonHelper.countObject(list_data);
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, 1, total_count_data, list_data);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message);
}
}
static async export(req: Request, res: Response, next: NextFunction): Promise<void | Response> { static async export(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/* /*
#swagger.tags = ['Pharmacy - Supplier'] #swagger.tags = ['Pharmacy - Supplier']
@ -110,7 +135,7 @@ export class SupplierController {
var query = await SupplierModel.list(filter); var query = await SupplierModel.list(filter);
const data = await query.getMany(); const data = await query.getMany();
const filename = "supplier.csv"; const filename = "supplier.csv";
res.setHeader('Content-Type', 'text/csv'); res.setHeader('Content-Type', 'text/csv');

View File

@ -71,14 +71,39 @@ export class RoomController {
const total_count_data = await res_count.getCount(); const total_count_data = await res_count.getCount();
const list_data = await res_list.getMany(); const list_data = await res_list.getMany();
const mapped_data = list_data.map((item: any) => ({ const mapped_data = list_data.map((item: any) => ({
...item, ...item,
picture: item.picture picture: item.picture
? photoBaseUrl + item.picture ? photoBaseUrl + item.picture
: null : null
})); }));
const count_data = CommonHelper.countObject(list_data); const count_data = CommonHelper.countObject(list_data);
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, mapped_data); return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, current_page, total_count_data, mapped_data);
} catch (e: unknown) {
log.error(e);
const err = e as Error;
return ReturnHelper.errorResponse(res, 400, 401, Language.lang.failed_view, err.message);
}
}
static async option(req: Request, res: Response, next: NextFunction): Promise<void | Response> {
/*
#swagger.tags = ['Room']
#swagger.security = [{ "bearerAuth": [] }]
*/
try {
const query = await RoomModel.list();
query.select([
"Room.id",
"Room.room",
]);
const total_count_data = await query.getCount();
const list_data = await query.getMany();
const count_data = CommonHelper.countObject(list_data);
return ReturnHelper.successResponselist(res, 200, Language.lang.success_view, count_data, 1, total_count_data, list_data);
} catch (e: unknown) { } catch (e: unknown) {
log.error(e); log.error(e);
const err = e as Error; const err = e as Error;

View File

@ -130,6 +130,7 @@ export class RoutePrivate {
app.put('/api/diagnostic-procedure/restore/:id', DiagnosticProcedureController.restore) app.put('/api/diagnostic-procedure/restore/:id', DiagnosticProcedureController.restore)
app.get('/api/room/list', RoomController.list) app.get('/api/room/list', RoomController.list)
app.get('/api/room/option', RoomController.option)
app.post('/api/room/create', RoomController.create) app.post('/api/room/create', RoomController.create)
app.get('/api/room/detail/:id', RoomController.detail) app.get('/api/room/detail/:id', RoomController.detail)
app.put('/api/room/update/:id', RoomController.update) app.put('/api/room/update/:id', RoomController.update)
@ -247,6 +248,7 @@ export class RoutePrivate {
app.put('/api/pharmacy/item-group/restore/:id', ItemGroupController.restore) app.put('/api/pharmacy/item-group/restore/:id', ItemGroupController.restore)
app.get('/api/pharmacy/item-origin/list', ItemOriginController.list) app.get('/api/pharmacy/item-origin/list', ItemOriginController.list)
app.get('/api/pharmacy/item-origin/option', ItemOriginController.option)
app.get('/api/pharmacy/item-origin/export', ItemOriginController.export) app.get('/api/pharmacy/item-origin/export', ItemOriginController.export)
app.post('/api/pharmacy/item-origin/create', ItemOriginController.create) app.post('/api/pharmacy/item-origin/create', ItemOriginController.create)
app.put('/api/pharmacy/item-origin/update/:id', ItemOriginController.update) app.put('/api/pharmacy/item-origin/update/:id', ItemOriginController.update)
@ -331,6 +333,7 @@ export class RoutePrivate {
app.put('/api/pharmacy/factory/restore/:id', FactoryController.restore) app.put('/api/pharmacy/factory/restore/:id', FactoryController.restore)
app.get('/api/pharmacy/supplier/list', SupplierController.list) app.get('/api/pharmacy/supplier/list', SupplierController.list)
app.get('/api/pharmacy/supplier/option', SupplierController.option)
app.get('/api/pharmacy/supplier/export', SupplierController.export) app.get('/api/pharmacy/supplier/export', SupplierController.export)
app.post('/api/pharmacy/supplier/create', SupplierController.create) app.post('/api/pharmacy/supplier/create', SupplierController.create)
app.put('/api/pharmacy/supplier/update/:id', SupplierController.update) app.put('/api/pharmacy/supplier/update/:id', SupplierController.update)