feat (medicine): wip

This commit is contained in:
dpurbosakti
2025-08-28 14:43:39 +07:00
parent dfb9297cc8
commit e827f3d1a9
7 changed files with 141 additions and 23 deletions
@@ -34,6 +34,9 @@ func Create(input e.CreateDto) (*d.Data, error) {
return err
}
if err := createItemWithDefaultPrice(&input, &event, tx); err != nil {
return err
}
if resData, err := CreateData(input, &event, tx); err != nil {
return err
} else {
@@ -5,7 +5,17 @@ Any functions that are used internally by the use-case
package medicine
import (
ei "simrs-vx/internal/domain/main-entities/item"
eip "simrs-vx/internal/domain/main-entities/item-price"
e "simrs-vx/internal/domain/main-entities/medicine"
ui "simrs-vx/internal/use-case/main-use-case/item"
uip "simrs-vx/internal/use-case/main-use-case/item-price"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
"gorm.io/gorm"
)
func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Medicine) {
@@ -26,3 +36,44 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Medicine) {
data.Infra_Id = inputSrc.Infra_Id
data.Stock = inputSrc.Stock
}
func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
igcMed := "Medicine"
itemCreate := ei.CreateDto{
Code: pu.AddPrefix("med-", input.Code),
Name: input.Name,
ItemGroup_Code: &igcMed,
Uom_Code: input.Uom_Code,
Infra_Id: input.Infra_Id,
Stock: input.Stock,
}
item, err := ui.CreateData(itemCreate, event, tx)
if err != nil {
return err
}
input.Item_Id = &item.Id
return nil
}
func createItemPrice(input *e.CreateDto, event *pl.Event, tx *gorm.DB, item_id *uint) error {
itemPriceCreate := eip.CreateDto{
Item_Id: item_id,
Price: 0,
InsuranceCompany_Code: input.InsuranceCompany_Code,
}
_, err := uip.CreateData(itemPriceCreate, event, tx)
return err
}
func createItemWithDefaultPrice(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
if err := createItem(input, event, tx); err != nil {
return err
}
if err := createItemPrice(input, event, tx, input.Item_Id); err != nil {
return err
}
return nil
}
@@ -7,17 +7,3 @@ package medicine
// CreateMw{Name: "check-data", Func: pm.CheckData},
// )
// }
// func createItemAndItemPrice(input *e.CreateDto, data *e.Medicine, tx *gorm.DB) error {
// if input != nil {
// itemCreate := ei.CreateDto{
// Code: input.Code,
// Name: input.Name,
// ItemGroup_Code: "Medicine",
// Uom_Code: input.Uom_Code,
// Infra_Id: input.Infra_Id,
// Stock: input.Stock,
// }
// }
// return nil
// }