FEAT[BE} : adjust wrong response on get repport Expense

This commit is contained in:
aguhh18
2025-12-15 09:18:26 +07:00
parent cbb3368141
commit a0a143b8ac
@@ -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)
}