diff --git a/internal/modules/repports/dto/repportExpense.dto.go b/internal/modules/repports/dto/repportExpense.dto.go index 1a17dd5b..3e71df2c 100644 --- a/internal/modules/repports/dto/repportExpense.dto.go +++ b/internal/modules/repports/dto/repportExpense.dto.go @@ -32,7 +32,6 @@ type RepportExpensePengajuanDTO struct { Price float64 `json:"price"` Notes string `json:"notes"` Nonstock *nonstockDTO.NonstockRelationDTO `json:"nonstock,omitempty"` - Kandang *kandangDTO.KandangRelationDTO `json:"kandang,omitempty"` CreatedAt time.Time `json:"created_at"` } @@ -48,6 +47,7 @@ type RepportExpenseRealisasiDTO struct { type RepportExpenseListDTO struct { RepportExpenseBaseDTO + Kandang *kandangDTO.KandangRelationDTO `json:"kandang,omitempty"` Pengajuan RepportExpensePengajuanDTO `json:"pengajuan"` Realisasi RepportExpenseRealisasiDTO `json:"realisasi"` TotalPengajuan float64 `json:"total_pengajuan"` @@ -89,12 +89,6 @@ func ToRepportExpensePengajuanDTO(ns *entity.ExpenseNonstock) RepportExpensePeng nonstock = &mapped } - var kandang *kandangDTO.KandangRelationDTO - if ns.Kandang != nil && ns.Kandang.Id != 0 { - mapped := kandangDTO.ToKandangRelationDTO(*ns.Kandang) - kandang = &mapped - } - return RepportExpensePengajuanDTO{ Id: ns.Id, ExpenseId: ns.ExpenseId, @@ -103,7 +97,6 @@ func ToRepportExpensePengajuanDTO(ns *entity.ExpenseNonstock) RepportExpensePeng Price: ns.Price, Notes: ns.Notes, Nonstock: nonstock, - Kandang: kandang, CreatedAt: ns.CreatedAt, } } @@ -138,8 +131,16 @@ func ToRepportExpenseListDTO(baseDTO RepportExpenseBaseDTO, ns *entity.ExpenseNo totalRealisasi = ns.Realization.Qty * ns.Realization.Price } + // Get kandang data at the main level + var kandang *kandangDTO.KandangRelationDTO + if ns.Kandang != nil && ns.Kandang.Id != 0 { + mapped := kandangDTO.ToKandangRelationDTO(*ns.Kandang) + kandang = &mapped + } + return RepportExpenseListDTO{ RepportExpenseBaseDTO: baseDTO, + Kandang: kandang, Pengajuan: ToRepportExpensePengajuanDTO(ns), Realisasi: realisasi, TotalPengajuan: totalPengajuan, @@ -165,6 +166,11 @@ func ToRepportExpenseListDTOs(realizations []entity.ExpenseRealization) []Reppor latestApproval = &mapped } + // Create a temporary realization with the current realization data + if realization.ExpenseNonstock.Realization == nil { + realization.ExpenseNonstock.Realization = &realization + } + dto := ToRepportExpenseListDTO(baseDTO, realization.ExpenseNonstock, latestApproval) result = append(result, dto) }