update: update function item price

This commit is contained in:
wayanrivan
2026-04-21 14:10:26 +07:00
parent baf181d152
commit 0ed436000c

View File

@ -5,7 +5,7 @@ import { OrmHelper } from "../../helpers/orm";
import Joi from "joi"; import Joi from "joi";
import { ILogObj, Logger } from "tslog"; import { ILogObj, Logger } from "tslog";
import { Language } from "../../langs/lang"; import { Language } from "../../langs/lang";
import { ItemPrice, Paging } from "entity"; import { ItemPrice, Paging, ItemMaster } from "entity";
import CommonHelper from "../../helpers/common"; import CommonHelper from "../../helpers/common";
import * as fastcsv from 'fast-csv'; import * as fastcsv from 'fast-csv';
import dayjs from "dayjs"; import dayjs from "dayjs";
@ -110,7 +110,7 @@ export class ItemPriceController {
var query = await ItemPriceModel.list(filter); var query = await ItemPriceModel.list(filter);
const data = await query.getMany(); const data = await query.getMany();
const filename = "item_price.csv"; const filename = "item_price.csv";
res.setHeader('Content-Type', 'text/csv'); res.setHeader('Content-Type', 'text/csv');
@ -220,7 +220,7 @@ export class ItemPriceController {
}] }]
#swagger.parameters['id'] = { #swagger.parameters['id'] = {
in: 'path', in: 'path',
description: 'ItemPrice ID.', description: 'ItemMaster ID.',
required: true, required: true,
type: 'string' type: 'string'
} }
@ -239,7 +239,6 @@ export class ItemPriceController {
try { try {
const schema = Joi.object().keys({ const schema = Joi.object().keys({
id: Joi.string().uuid().required().label('ID'),
item_master_id: Joi.string() item_master_id: Joi.string()
.uuid() .uuid()
.required() .required()
@ -254,37 +253,39 @@ export class ItemPriceController {
.min(0) .min(0)
.required() .required()
.label('Selling Price'), .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 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 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) { if (data) {
data.item_master = param.item_master_id // UPDATE
data.purchase_price = param.purchase_price data.purchase_price = param.purchase_price;
data.selling_price = param.selling_price data.selling_price = param.selling_price;
data.expired_date = param.expired_date
data.updated_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);
} else { } 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) { } catch (e: unknown) {
log.error(e); log.error(e);
const err = e as Error; const err = e as Error;
return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_update, err.message); return ReturnHelper.errorResponse(res, 500, 402, Language.lang.failed_update, err.message);
} }
} }