infra, room, item, medicine, device, material ids into codes

This commit is contained in:
dpurbosakti
2025-11-07 15:28:32 +07:00
parent feb54bd2f5
commit a944105f72
40 changed files with 277 additions and 218 deletions
@@ -169,7 +169,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
}
func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: &input.Code}
var data *e.Device
var err error
@@ -225,7 +225,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
}
func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Device
var err error
@@ -30,8 +30,8 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Device) {
data.Code = inputSrc.Code
data.Name = inputSrc.Name
data.Uom_Code = inputSrc.Uom_Code
data.Item_Id = inputSrc.Item_Id
data.Infra_Id = inputSrc.Infra_Id
data.Item_Code = inputSrc.Item_Code
data.Infra_Code = inputSrc.Infra_Code
}
func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
@@ -40,13 +40,13 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
Name: input.Name,
ItemGroup_Code: ero.ITGCDevice,
Uom_Code: &input.Uom_Code,
Infra_Id: input.Infra_Id,
Infra_Code: input.Infra_Code,
}
item, err := ui.CreateData(itemCreate, event, tx)
if err != nil {
return err
}
input.Item_Id = &item.Id
input.Item_Code = &item.Code
return nil
}
@@ -81,6 +81,13 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
tx = dg.I
}
if input.Code != nil {
tx = tx.Where("\"Code\" = ?", *input.Code)
}
if input.Id != nil {
tx = tx.Where("\"Id\" = ?", *input.Id)
}
if err := tx.First(&data, input.Id).Error; err != nil {
if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil {
return nil, processedErr
@@ -52,7 +52,7 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Di
EXISTS (
SELECT 1
FROM "Division" c
WHERE c."Parent_Id" = "Division"."Id"
WHERE c."Parent_Code" = "Division"."Code"
)
`)
}
@@ -38,12 +38,12 @@ func Create(input e.CreateDto) (*d.Data, error) {
}
if input.InfraGroup_Code == ero.IFGCRoom {
if input.Parent_Id == nil {
if input.Parent_Code == nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-create-fail",
Detail: "parent_id is required",
Raw: errors.New("parent_id is required"),
Detail: "parent_code is required",
Raw: errors.New("parent_code is required"),
}
return pl.SetLogError(&event, input)
@@ -59,7 +59,7 @@ func Create(input e.CreateDto) (*d.Data, error) {
}
if input.InfraGroup_Code == ero.IFGCRoom {
input.Infra_Id = &data.Id
input.Infra_Code = &data.Code
if err := createRoom(&input, &event, tx); err != nil {
return err
}
@@ -29,7 +29,7 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Infra) {
data.Code = inputSrc.Code
data.Name = inputSrc.Name
data.InfraGroup_Code = inputSrc.InfraGroup_Code
data.Parent_Id = inputSrc.Parent_Id
data.Parent_Code = inputSrc.Parent_Code
data.Item_Id = inputSrc.Item_Id
}
@@ -42,7 +42,7 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
tmp := "unit"
return &tmp
}(),
Infra_Id: input.Parent_Id,
Infra_Code: input.Parent_Code,
}
item, err := ui.CreateData(itemCreate, event, tx)
if err != nil {
@@ -55,10 +55,10 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
func createRoom(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
roomCreate := er.CreateDto{
Infra_Id: input.Infra_Id,
Unit_Id: input.Unit_Id,
Specialist_Id: input.Specialist_Id,
Subspecialist_Id: input.Subspecialist_Id,
Infra_Code: input.Infra_Code,
Unit_Code: input.Unit_Code,
Specialist_Code: input.Specialist_Code,
Subspecialist_Code: input.Subspecialist_Code,
}
_, err := ur.CreateData(roomCreate, event, tx)
if err != nil {
+9 -2
View File
@@ -52,7 +52,7 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.In
EXISTS (
SELECT 1
FROM "Infra" c
WHERE c."Parent_Id" = "Infra"."Id"
WHERE c."Parent_Code" = "Infra"."Code"
)
`)
}
@@ -91,6 +91,13 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
tx = dg.I
}
if input.Code != nil {
tx = tx.Where("\"Code\" = ?", *input.Code)
}
if input.Id != nil {
tx = tx.Where("\"Id\" = ?", *input.Id)
}
tx = tx.Preload("Parent").
Preload("Childrens").
Preload("Item").
@@ -99,7 +106,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
Preload("Rooms.Subspecialist").
Preload("Rooms.Unit")
if err := tx.First(&data, input.Id).Error; err != nil {
if err := tx.First(&data).Error; err != nil {
if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil {
return nil, processedErr
}
+2 -2
View File
@@ -166,7 +166,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
}
func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: &input.Code}
var data *e.Item
var err error
@@ -222,7 +222,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
}
func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Item
var err error
@@ -21,6 +21,6 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Item) {
data.Name = inputSrc.Name
data.ItemGroup_Code = inputSrc.ItemGroup_Code
data.Uom_Code = inputSrc.Uom_Code
data.Infra_Id = inputSrc.Infra_Id
data.Infra_Code = inputSrc.Infra_Code
data.Stock = inputSrc.Stock
}
@@ -169,7 +169,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
}
func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: &input.Code}
var data *e.Material
var err error
@@ -225,7 +225,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
}
func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Material
var err error
@@ -30,8 +30,8 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Material) {
data.Name = inputSrc.Name
data.Uom_Code = inputSrc.Uom_Code
data.Stock = inputSrc.Stock
data.Item_Id = inputSrc.Item_Id
data.Infra_Id = inputSrc.Infra_Id
data.Item_Code = inputSrc.Item_Code
data.Infra_Code = inputSrc.Infra_Code
}
func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
@@ -40,7 +40,7 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
Name: input.Name,
ItemGroup_Code: ero.ITGCMaterial,
Uom_Code: &input.Uom_Code,
Infra_Id: input.Infra_Id,
Infra_Code: input.Infra_Code,
Stock: input.Stock,
}
item, err := ui.CreateData(itemCreate, event, tx)
@@ -48,6 +48,6 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
return err
}
input.Item_Id = &item.Id
input.Item_Code = &item.Code
return nil
}
@@ -169,7 +169,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
}
func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: &input.Code}
var data *e.Medicine
var err error
@@ -225,7 +225,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
}
func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: uint16(input.Id)}
rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Medicine
var err error
@@ -33,9 +33,9 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Medicine) {
data.MedicineMethod_Code = inputSrc.MedicineMethod_Code
data.Uom_Code = inputSrc.Uom_Code
data.Dose = inputSrc.Dose
data.Infra_Id = inputSrc.Infra_Id
data.Infra_Code = inputSrc.Infra_Code
data.Stock = inputSrc.Stock
data.Item_Id = inputSrc.Item_Id
data.Item_Code = inputSrc.Item_Code
}
func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
@@ -44,7 +44,7 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
Name: input.Name,
ItemGroup_Code: ero.ITGCMedicine,
Uom_Code: input.Uom_Code,
Infra_Id: input.Infra_Id,
Infra_Code: input.Infra_Code,
Stock: input.Stock,
}
item, err := ui.CreateData(itemCreate, event, tx)
@@ -52,6 +52,6 @@ func createItem(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
return err
}
input.Item_Id = &item.Id
input.Item_Code = &item.Code
return nil
}
@@ -81,8 +81,15 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
tx = dg.I
}
if input.Code != nil {
tx = tx.Where("\"Code\" = ?", *input.Code)
}
if input.Id != nil {
tx = tx.Where("\"Id\" = ?", *input.Id)
}
tx = tx.Preload("Item")
if err := tx.First(&data, input.Id).Error; err != nil {
if err := tx.First(&data).Error; err != nil {
if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil {
return nil, processedErr
}
@@ -17,8 +17,8 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Room) {
inputSrc = &inputTemp.CreateDto
}
data.Infra_Id = inputSrc.Infra_Id
data.Unit_Id = inputSrc.Unit_Id
data.Specialist_Id = inputSrc.Specialist_Id
data.Subspecialist_Id = inputSrc.Subspecialist_Id
data.Infra_Code = inputSrc.Infra_Code
data.Unit_Code = inputSrc.Unit_Code
data.Specialist_Code = inputSrc.Specialist_Code
data.Subspecialist_Code = inputSrc.Subspecialist_Code
}