From 143c80ef520ecd68d84a2714f61904ba5fa4b215 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Wed, 11 Mar 2026 15:35:35 +0700 Subject: [PATCH] update --- src/controllers/pharmacy/item_master.ts | 71 ++++++++++++++++--------- src/controllers/pharmacy/unit.ts | 6 ++- src/routes/private.ts | 1 + 3 files changed, 52 insertions(+), 26 deletions(-) diff --git a/src/controllers/pharmacy/item_master.ts b/src/controllers/pharmacy/item_master.ts index aa197c9..c7cc8cb 100644 --- a/src/controllers/pharmacy/item_master.ts +++ b/src/controllers/pharmacy/item_master.ts @@ -68,6 +68,27 @@ export class ItemMasterController { } } + + static async option(req: Request, res: Response, next: NextFunction): Promise { + /* + #swagger.tags = ['Pharmacy - ItemMaster'] + #swagger.security = [{ "bearerAuth": [] }] + */ + try { + const query = await ItemMasterModel.list(); // ← hapus await disini, karena list() return QueryBuilder + + 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 { /* #swagger.tags = ['Pharmacy - ItemMaster'] @@ -110,7 +131,7 @@ export class ItemMasterController { var query = await ItemMasterModel.list(filter); const data = await query.getMany(); - + const filename = "item_master.csv"; res.setHeader('Content-Type', 'text/csv'); @@ -191,18 +212,18 @@ export class ItemMasterController { const data = new ItemMaster() data.item_name = param.item_name, - data.generic_name = param.generic_name_id, - data.type_detail = param.item_type_detail_id, - data.category = param.item_category_id, - data.item_class = param.item_class_id, - data.status = param.item_status_id, - data.factory = param.factory_id, - data.unit = param.unit_id, - data.pack_size = param.pack_size, - data.minimum_quantity = param.minimum_quantity, - data.minimum_sales_quantity = param.minimum_sales_quantity, - data.strength = param.strength, - data.active = param.active + data.generic_name = param.generic_name_id, + data.type_detail = param.item_type_detail_id, + data.category = param.item_category_id, + data.item_class = param.item_class_id, + data.status = param.item_status_id, + data.factory = param.factory_id, + data.unit = param.unit_id, + data.pack_size = param.pack_size, + data.minimum_quantity = param.minimum_quantity, + data.minimum_sales_quantity = param.minimum_sales_quantity, + data.strength = param.strength, + data.active = param.active data.created_by = req.auth.data.name; await OrmHelper.DB.manager.save(data); @@ -269,18 +290,18 @@ export class ItemMasterController { if (data != null) { data.item_name = param.item_name, - data.generic_name = param.generic_name_id, - data.type_detail = param.item_type_detail_id, - data.category = param.item_category_id, - data.item_class = param.item_class_id, - data.status = param.item_status_id, - data.factory = param.factory_id, - data.unit = param.unit_id, - data.pack_size = param.pack_size, - data.minimum_quantity = param.minimum_quantity, - data.minimum_sales_quantity = param.minimum_sales_quantity, - data.strength = param.strength, - data.active = param.active + data.generic_name = param.generic_name_id, + data.type_detail = param.item_type_detail_id, + data.category = param.item_category_id, + data.item_class = param.item_class_id, + data.status = param.item_status_id, + data.factory = param.factory_id, + data.unit = param.unit_id, + data.pack_size = param.pack_size, + data.minimum_quantity = param.minimum_quantity, + data.minimum_sales_quantity = param.minimum_sales_quantity, + data.strength = param.strength, + data.active = param.active data.updated_by = req.auth.data.name; await repo.save(data); diff --git a/src/controllers/pharmacy/unit.ts b/src/controllers/pharmacy/unit.ts index 8b94b3d..8f2ef92 100644 --- a/src/controllers/pharmacy/unit.ts +++ b/src/controllers/pharmacy/unit.ts @@ -110,7 +110,7 @@ export class UnitController { var query = await UnitModel.list(filter); const data = await query.getMany(); - + const filename = "unit.csv"; res.setHeader('Content-Type', 'text/csv'); @@ -173,6 +173,8 @@ export class UnitController { try { const schema = Joi.object().keys({ unit_name: Joi.string().max(256).required().label('Name'), + small_unit: Joi.string().max(256).optional().allow('').label('Small Unit'), + large_unit: Joi.string().max(256).optional().allow('').label('Large Unit'), }); const param: any = await schema.validateAsync(req.body); @@ -223,6 +225,8 @@ export class UnitController { const schema = Joi.object().keys({ id: Joi.string().uuid().required().label('ID'), unit_name: Joi.string().max(256).required().label('Name'), + small_unit: Joi.string().max(256).optional().allow('').label('Small Unit'), + large_unit: Joi.string().max(256).optional().allow('').label('Large Unit'), }); req.body.id = req.params['id']; diff --git a/src/routes/private.ts b/src/routes/private.ts index 74ff9c6..c1e530e 100644 --- a/src/routes/private.ts +++ b/src/routes/private.ts @@ -345,6 +345,7 @@ export class RoutePrivate { // app.put('/api/pharmacy/factory-to-supplier/restore/:supplier_id', FactorytoSupplierController.restore) app.get('/api/pharmacy/item-master/list', ItemMasterController.list) + app.get('/api/pharmacy/item-master/option', ItemMasterController.option) app.get('/api/pharmacy/item-master/export', ItemMasterController.export) app.post('/api/pharmacy/item-master/create', ItemMasterController.create) app.put('/api/pharmacy/item-master/update/:id', ItemMasterController.update)