Update Forecast Period to YTD logic

This commit is contained in:
Christian Vidal Wolf
2026-01-28 12:49:41 +01:00
parent d5a76d5b97
commit bbf32259a8
+20 -7
View File
@@ -49,7 +49,13 @@ const ForecastRow: React.FC<{
} }
// Calculations for new columns // Calculations for new columns
const forecastPeriod = item.forecastUnits || 0; // Forecast Period: Sum of forecast units for active months (YTD)
const forecastPeriod = useMemo(() => {
return activeMonths.reduce((sum, month) => {
return sum + (item.monthlyData?.[month]?.forecastUnits || 0);
}, 0);
}, [item, activeMonths]);
const actualUnits = item.actualUnits || 0; const actualUnits = item.actualUnits || 0;
const annualForecast = item.annualForecast || 0; const annualForecast = item.annualForecast || 0;
@@ -180,12 +186,19 @@ const ForecastView: React.FC<ForecastViewProps> = ({
}, [data, filters.line, filters.asin, filters.sku]); }, [data, filters.line, filters.asin, filters.sku]);
const globalSummary = useMemo(() => { const globalSummary = useMemo(() => {
return baseFilteredData.reduce((acc, curr) => ({ return baseFilteredData.reduce((acc, curr) => {
actualUnits: acc.actualUnits + (curr.actualUnits || 0), // Calculate Forecast Period (YTD) for this item
forecastUnits: acc.forecastUnits + (curr.forecastUnits || 0), const itemPeriodForecast = activeMonths.reduce((sum, month) => {
annualForecast: acc.annualForecast + (curr.annualForecast || 0), return sum + (curr.monthlyData?.[month]?.forecastUnits || 0);
}), { actualUnits: 0, forecastUnits: 0, annualForecast: 0 }); }, 0);
}, [baseFilteredData]);
return {
actualUnits: acc.actualUnits + (curr.actualUnits || 0),
forecastUnits: acc.forecastUnits + itemPeriodForecast,
annualForecast: acc.annualForecast + (curr.annualForecast || 0),
};
}, { actualUnits: 0, forecastUnits: 0, annualForecast: 0 });
}, [baseFilteredData, activeMonths]);
const chartData = useMemo(() => { const chartData = useMemo(() => {
const dataMap = new Map<string, { name: string; actual: number; forecast: number }>(); const dataMap = new Map<string, { name: string; actual: number; forecast: number }>();