From 8c849818129911ff4855498ee8dac97243bd8518 Mon Sep 17 00:00:00 2001 From: giovanni Date: Sat, 24 Jan 2026 14:17:50 +0700 Subject: [PATCH] adjust get weight remaining --- .../repositories/hpp_per_kandang.repository.go | 11 ++++++----- .../modules/repports/services/repport.service.go | 12 ++++-------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/internal/modules/repports/repositories/hpp_per_kandang.repository.go b/internal/modules/repports/repositories/hpp_per_kandang.repository.go index 03d56fc6..eeb09e92 100644 --- a/internal/modules/repports/repositories/hpp_per_kandang.repository.go +++ b/internal/modules/repports/repositories/hpp_per_kandang.repository.go @@ -23,6 +23,7 @@ type HppPerKandangRow struct { // RemainingChickenBirds float64 // RemainingChickenWeight float64 EggProductionWeightKgRemaining float64 + // AverageWeightEggPerPiece float64 // EggProductionPiecesRemaining float64 // EggProductionTotalWeightKg float64 // EggProductionTotalPieces float64 @@ -229,8 +230,8 @@ func (r *hppPerKandangRepository) GetWeightRemainingByProjectFlockKandangIDs(ctx ) type eggRow struct { - ProjectFlockKandangID uint - EggProductionWeightKgRemaining float64 + ProjectFlockKandangID uint + AverageWeightEggPerPiece float64 // EggProductionPiecesRemaining float64 // EggProductionTotalWeightKg float64 // EggProductionTotalPieces float64 @@ -241,7 +242,7 @@ func (r *hppPerKandangRepository) GetWeightRemainingByProjectFlockKandangIDs(ctx Table("recordings AS r"). Select(` r.project_flock_kandangs_id AS project_flock_kandang_id, - COALESCE((SUM(re.weight) / NULLIF(SUM(re.total_qty), 0)) * SUM(re.total_qty - re.total_used), 0) AS egg_production_weight_kg_remaining`). + COALESCE(SUM(re.weight) / NULLIF(SUM(re.total_qty), 0), 0) AS average_weight_egg_per_piece`). Joins("LEFT JOIN (?) AS la ON la.approvable_id = r.id", latestApproval). Joins("LEFT JOIN recording_eggs AS re ON re.recording_id = r.id"). Where("r.project_flock_kandangs_id IN ?", projectFlockKandangIDs). @@ -257,8 +258,8 @@ func (r *hppPerKandangRepository) GetWeightRemainingByProjectFlockKandangIDs(ctx result := make(map[uint]HppPerKandangRow, len(eggRows)) for _, row := range eggRows { result[row.ProjectFlockKandangID] = HppPerKandangRow{ - ProjectFlockKandangID: row.ProjectFlockKandangID, - EggProductionWeightKgRemaining: row.EggProductionWeightKgRemaining, + ProjectFlockKandangID: row.ProjectFlockKandangID, + // AverageWeightEggPerPiece: row.AverageWeightEggPerPiece, // EggProductionPiecesRemaining: row.EggProductionPiecesRemaining, // EggProductionTotalWeightKg: row.EggProductionTotalWeightKg, // EggProductionTotalPieces: row.EggProductionTotalPieces, diff --git a/internal/modules/repports/services/repport.service.go b/internal/modules/repports/services/repport.service.go index 98905b66..67bf7339 100644 --- a/internal/modules/repports/services/repport.service.go +++ b/internal/modules/repports/services/repport.service.go @@ -1583,9 +1583,7 @@ func (s *repportService) GetHppPerKandang(ctx *fiber.Ctx) (*dto.HppPerKandangRes // for pfkID, egg := range eggMap { // if rowIdx, ok := pfkIndex[pfkID]; ok { // repoRows[rowIdx].EggProductionWeightKgRemaining = egg.EggProductionWeightKgRemaining - // // repoRows[rowIdx].EggProductionPiecesRemaining = egg.EggProductionPiecesRemaining - // // repoRows[rowIdx].EggProductionTotalWeightKg = egg.EggProductionTotalWeightKg - // // repoRows[rowIdx].EggProductionTotalPieces = egg.EggProductionTotalPieces + // repoRows[rowIdx].AverageWeightEggPerPiece = egg.AverageWeightEggPerPiece // } // } } @@ -1676,6 +1674,7 @@ func (s *repportService) GetHppPerKandang(ctx *fiber.Ctx) (*dto.HppPerKandangRes var eggRemainingWeightFloatRemaining float64 var eggTotalPiecesFloat float64 var eggWeightFloat float64 + var avgWeight float64 eggHpp := 0.0 if s.HppSvc != nil { hppCost, err := s.HppSvc.CalculateHppCost(row.ProjectFlockKandangID, &endOfDay) @@ -1683,11 +1682,12 @@ func (s *repportService) GetHppPerKandang(ctx *fiber.Ctx) (*dto.HppPerKandangRes return nil, nil, err } if hppCost != nil { - eggRemainingWeightFloatRemaining = hppCost.Estimation.Kg - hppCost.Real.Kg eggPiecesFloatRemaining = hppCost.Estimation.Butir - hppCost.Real.Butir eggHpp = hppCost.Estimation.HargaKg eggTotalPiecesFloat = hppCost.Estimation.Butir eggWeightFloat = hppCost.Estimation.Kg + avgWeight = eggWeightFloat / eggTotalPiecesFloat + eggRemainingWeightFloatRemaining = avgWeight * eggPiecesFloatRemaining } } if math.IsNaN(eggPiecesFloatRemaining) || math.IsInf(eggPiecesFloatRemaining, 0) { @@ -1703,10 +1703,6 @@ func (s *repportService) GetHppPerKandang(ctx *fiber.Ctx) (*dto.HppPerKandangRes eggWeightFloat = 0 } - avgWeight := 0.0 - if eggTotalPiecesFloat > 0 { - avgWeight = eggWeightFloat / eggTotalPiecesFloat - } if params.WeightMin != nil && avgWeight < *params.WeightMin { continue }