From 0ed436000c0833556354d50e704387bb46d866f4 Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Tue, 21 Apr 2026 14:10:26 +0700 Subject: [PATCH] update: update function item price --- src/controllers/pharmacy/item_price.ts | 45 +++++++++++++------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/controllers/pharmacy/item_price.ts b/src/controllers/pharmacy/item_price.ts index 48160f7..7151329 100644 --- a/src/controllers/pharmacy/item_price.ts +++ b/src/controllers/pharmacy/item_price.ts @@ -5,7 +5,7 @@ import { OrmHelper } from "../../helpers/orm"; import Joi from "joi"; import { ILogObj, Logger } from "tslog"; import { Language } from "../../langs/lang"; -import { ItemPrice, Paging } from "entity"; +import { ItemPrice, Paging, ItemMaster } from "entity"; import CommonHelper from "../../helpers/common"; import * as fastcsv from 'fast-csv'; import dayjs from "dayjs"; @@ -110,7 +110,7 @@ export class ItemPriceController { var query = await ItemPriceModel.list(filter); const data = await query.getMany(); - + const filename = "item_price.csv"; res.setHeader('Content-Type', 'text/csv'); @@ -220,7 +220,7 @@ export class ItemPriceController { }] #swagger.parameters['id'] = { in: 'path', - description: 'ItemPrice ID.', + description: 'ItemMaster ID.', required: true, type: 'string' } @@ -239,7 +239,6 @@ export class ItemPriceController { try { const schema = Joi.object().keys({ - id: Joi.string().uuid().required().label('ID'), item_master_id: Joi.string() .uuid() .required() @@ -254,37 +253,39 @@ export class ItemPriceController { .min(0) .required() .label('Selling Price'), - - // expired_date: Joi.date() - // .required() - // .label('Expired Date'), }); - req.body.id = req.params['id']; - const param: any = await schema.validateAsync(req.body); + const itemMaster = await OrmHelper.DB.getRepository(ItemMaster).findOneBy({ id: req.params['id'] }); + if (!itemMaster) return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, "Item Master not found"); + const repo = OrmHelper.DB.getRepository(ItemPrice); - const data = await repo.findOneBy({ id: param.id }); + let data = await repo.findOne({ where: { item_master: { id: req.params['id'] } } }); - if (data != null) { - data.item_master = param.item_master_id - data.purchase_price = param.purchase_price - data.selling_price = param.selling_price - data.expired_date = param.expired_date + if (data) { + // UPDATE + data.purchase_price = param.purchase_price; + data.selling_price = param.selling_price; data.updated_by = req.auth?.data.name; - - await repo.save(data); - - return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); } else { - return ReturnHelper.errorResponse(res, 404, 401, Language.lang.failed_not_found, ""); + // INSERT + data = new ItemPrice(); + data.item_master = itemMaster; + data.purchase_price = param.purchase_price; + data.selling_price = param.selling_price; + data.created_by = req.auth?.data.name; + data.updated_by = req.auth?.data.name; } + + await repo.save(data); + + return ReturnHelper.successResponseAny(res, 200, Language.lang.success_update, data); + } catch (e: unknown) { log.error(e); const err = e as Error; - return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_update, err.message); } }