Fix Forecast Seasonality: Process weights using global data even when filtered

This commit is contained in:
christian.vidal
2026-01-29 20:56:19 +01:00
parent 2060f82348
commit 9200c554e1
2 changed files with 7 additions and 4 deletions
+1 -1
View File
@@ -246,7 +246,7 @@ const App: React.FC = () => {
}
});
const viewData = calculateForecastViewData(sales, fcRecords, meta, activeFilters, velocityMap);
const viewData = calculateForecastViewData(sales, fcRecords, meta, activeFilters, velocityMap, globalSales.length > 0 ? globalSales : undefined);
setForecastData(viewData);
console.log('[App] Forecast calculation complete:', viewData.length, 'records');
} catch (error) {
+6 -3
View File
@@ -1638,10 +1638,13 @@ export const calculateForecastViewData = (
forecastData: ForecastRecord[],
asinMetadata: Map<string, { sku: string; title: string; line: string }>,
filters?: FilterState,
velocityMap?: Map<string, number>
velocityMap?: Map<string, number>,
referenceData?: SalesRecord[] // NEW: Full dataset for global seasonality context
): ProductForecastData[] => {
const data2025 = rawData.filter(r => r.year === 2025);
const data2026 = rawData.filter(r => r.year === 2026);
// Use referenceData if provided (for global weights), otherwise fallback to rawData
const seasonalitySource = referenceData || rawData;
const data2025 = seasonalitySource.filter(r => r.year === 2025);
const data2026 = seasonalitySource.filter(r => r.year === 2026);
// Calculate Seasonality weights for 2025
const getWeightsInfo = (records: SalesRecord[]): { weights: number[]; monthsCount: number } | null => {