diff --git a/src/components/pages/report/sale/export/HppPerkandangExport.tsx b/src/components/pages/report/sale/export/HppPerkandangExport.tsx index dc0c95f0..6fb0f914 100644 --- a/src/components/pages/report/sale/export/HppPerkandangExport.tsx +++ b/src/components/pages/report/sale/export/HppPerkandangExport.tsx @@ -165,7 +165,8 @@ interface WeightRangeGroup { } const groupDataByWeightRange = ( - data: HppPerKandangReport['rows'] + data: HppPerKandangReport['rows'], + summary: HppPerKandangReport['summary'] ): WeightRangeGroup[] => { const groups: { [key: string]: WeightRangeGroup; @@ -220,8 +221,12 @@ const groupDataByWeightRange = ( group.totals.total_remaining_chicken_weight_kg / group.totals.total_remaining_chicken_birds; group.totals.average_doc_price_rp = - group.items.reduce((sum, item) => sum + item.average_doc_price_rp, 0) / - group.items.length; + group.items.length > 0 + ? group.items.reduce( + (sum, item) => sum + item.average_doc_price_rp, + 0 + ) / group.items.length + : 0; }); return Object.values(groups).sort((a, b) => a.weight_min - b.weight_min); @@ -241,11 +246,27 @@ const getParameterText = (params: HppPerKandangExportParams['params']) => { return paramsText; }; +const getTotalsForExport = (data: HppPerKandangReport['rows']) => { + const totalHppRp = data.reduce((sum, item) => sum + (item.hpp_rp || 0), 0); + const avgDocPrice = + data.length > 0 + ? data.reduce((sum, item) => sum + (item.average_doc_price_rp || 0), 0) / + data.length + : 0; + + return { + total_hpp_rp: totalHppRp, + total_average_doc_price_rp: avgDocPrice, + }; +}; + const createPDFDocument = ( data: HppPerKandangExportParams['data'], params: HppPerKandangExportParams['params'] ) => { - const groupedByWeightRange = groupDataByWeightRange(data.rows); + const summary = data.summary; + const exportTotals = getTotalsForExport(data.rows); + const groupedByWeightRange = groupDataByWeightRange(data.rows, summary); return ( @@ -283,6 +304,12 @@ const createPDFDocument = ( Rata-Rata Bobot (Kg) + + Produksi Telur (Butir) + + + Produksi Telur (Kg) + Feed (Supplier) @@ -292,8 +319,14 @@ const createPDFDocument = ( Rata-Rata Harga DOC + + Nilai Nominal Telur + - HPP + HPP Ayam + + + HPP Telur (RP/KG) Nominal Sisa @@ -332,6 +365,26 @@ const createPDFDocument = ( {formatNumber(group.totals.average_weight_kg)} + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_production_pieces || 0), + 0 + ) + )} + + + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_production_kg || 0), + 0 + ) + )} + + {group.totals.all_feed_suppliers.join(' | ')} @@ -341,15 +394,34 @@ const createPDFDocument = ( {formatNumber(group.totals.average_doc_price_rp)} + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_value_rp || 0), + 0 + ) + )} + + - { - (group.totals.total_remaining_chicken_birds > 0 + {formatNumber( + group.totals.total_remaining_chicken_birds > 0 ? group.totals.total_hpp_rp / - group.totals.total_remaining_chicken_birds - : 0, - 2) - } + group.totals.total_remaining_chicken_birds + : 0 + )} + + + + + {formatNumber( + group.items.reduce( + (sum, item) => sum + (item.egg_hpp_rp_per_kg || 0), + 0 + ) / group.items.length || 0 + )} @@ -378,14 +450,20 @@ const createPDFDocument = ( Rentang BW + + Rata-Rata Bobot (Kg) + Sisa Ekor Sisa Kg - - Rata-Rata Bobot (Kg) + + Produksi Telur (Butir) + + + Produksi Telur (Kg) Feed (Supplier) @@ -396,8 +474,14 @@ const createPDFDocument = ( Rata-Rata Harga DOC + + Nilai Nominal Telur + - HPP + HPP Ayam + + + HPP Telur (RP/KG) Nominal Sisa @@ -427,14 +511,20 @@ const createPDFDocument = ( {item.weight_range.weight_max.toFixed(2)} + + {formatNumber(item.avg_weight_kg)} + {formatNumber(item.remaining_chicken_birds)} {formatNumber(item.remaining_chicken_weight_kg)} - - {formatNumber(item.avg_weight_kg)} + + {formatNumber(item.egg_production_pieces)} + + + {formatNumber(item.egg_production_kg)} @@ -453,9 +543,15 @@ const createPDFDocument = ( {formatNumber(item.average_doc_price_rp)} + + {formatNumber(item.egg_value_rp)} + {formatNumber(item.hpp_rp)} + + {formatNumber(item.egg_hpp_rp_per_kg)} + {formatNumber(item.remaining_value_rp)}