Improve planning data normalization
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 1m25s

This commit is contained in:
Cauê Faleiros
2026-07-20 11:24:47 -03:00
parent 3066ba06a2
commit 9af5f296a7
9 changed files with 112 additions and 18 deletions

View File

@@ -31,6 +31,7 @@ import { classifyCutFamily } from '../analytics/cutting';
import { adjustSupplyLotInventory, approveSupplyReceipt, consumeSupplyLotForProduction, createSupplyFabricPlan, createSupplyReceipt, deleteSupplyFabricPlan, deleteSupplyReceipt, fetchCuttingSettings, fetchProductAnalytics, fetchSupplySummary } from '../dataService';
import { parseProductName } from '../productParsing';
import { resolveProductType, type ProductTypeKey } from '../productClassification';
import { getPlanningStock } from '../planningStock';
import type { CuttingSettings, DateRange, ProductAnalyticsItem, SupplyFabricPlan, SupplyLot, SupplyMovement, SupplyPurchaseNeed, SupplyReceipt, SupplySummary } from '../types';
type InventoryTab = 'dashboard' | 'balance' | 'receipts' | 'inventory' | 'movements';
@@ -230,9 +231,10 @@ const buildDemandRow = (
const color = override?.color || metadata.color;
const size = (override?.size || metadata.size).toUpperCase();
const dailySales = product.quantitySold / rangeDays;
const daysOfCover = dailySales > 0 ? product.stock / dailySales : null;
const planningStock = getPlanningStock(product.stock);
const daysOfCover = dailySales > 0 ? planningStock / dailySales : null;
const targetDemand = dailySales * targetCoverageDays;
const suggestedUnits = Math.max(0, Math.ceil(targetDemand - product.stock));
const suggestedUnits = Math.max(0, Math.ceil(targetDemand - planningStock));
const missingData: string[] = [];
if (planningReviewTypes.has(productType)) missingData.push('tipo');