Planilhas: InventoryInput, detalhes de OpenPO, Parameters, ReorderReview, Exceptions, ApprovalLog e Reconciliation. Mantenha a proposta calculada separada de BuyerDecision, ApprovedQty, PONumber e ApprovedAt.
Para Filter-F9, Available=42−8−2=32. A PO confirmada com entrega em 8 de setembro está dentro do horizonte de duas semanas que termina em 15 de setembro; portanto, InventoryPosition=32+24=56. LeadDemand=15×2=30; ReorderPoint=30+12=42; Target padrão=30+12+15=57. Como 56 não é menor que 42, o status é No reorder, embora esteja uma unidade abaixo do alvo; a política é acionada no ponto de reposição, não no estoque-alvo.
Fórmulas da tabela: Available =[@OnHand]-[@Reserved]-[@Damaged]; EligibleOpenPO deve ser somado a partir dos detalhes das POs com critérios de status e data de entrega, em vez de confiar em um único agregado quando houver várias POs; InventoryPosition=Available+EligibleOpenPO; LeadDemand=AvgWeeklyDemand*LeadTimeWeeks; ReorderPoint=LeadDemand+SafetyStock. Quando acionada, RawNeed é MAX(0,Target-InventoryPosition). A proposta arredondada pode usar =MAX([@MOQ],CEILING.MATH([@RawNeed],[@PackSize])), mas somente depois de validar que PackSize/MOQ são positivos.
Precedência dos alertas: duplicata/campo obrigatório/tipo/dados desatualizados → Data issue; Available<0 → Stockout ou problema de registro; PO atrasada/não confirmada que afete o horizonte → Review supply; posição abaixo do ponto de reposição → Reorder review; caso contrário, No reorder. A formatação condicional segue o texto do status, não uma lógica aninhada baseada apenas em cores. Os testes incluem uma posição de 35 que produz necessidade bruta 22 e proposta 24; necessidade bruta 25 arredondada para 30; demanda 0 que retorna No reorder segundo a política; PO um dia após o horizonte, excluída e sinalizada; fornecedor ausente ou atualização de 8 dias, que bloqueia a proposta; substituição usada somente com alvo, motivo, revisor e data. A cada atualização, concilie o total de OnHand com a contagem/soma da origem e as quantidades elegíveis/excluídas de OpenPO com o registro de POs.