Devi far girare il batch Rettifica Costo - Mov. Art. (attenzione se avete molti movimenti e non l’avete mai fatto girare potrebbe impiegare diverse ore), con gli ultimi aggiornamenti il nuovo Costo Medio sostituisce il Costo Unitario solo quando quest’ultimo e 0. Questo ti permette di tenere il costo unitario fermo fin quando decidi di far girare il batch, il quale, oltre ad aggiornare la scheda articolo, crea un nuovo Movimento Valorizzazione di tipo Costo Diretto in modo che il costo del venduto e, di conseguenza, il margine siano corretti. Cmq la codeunit incriminata è la 5804, che aggiorna il costo medio solo quando la funzione è richiamata dall’aggiornamento batch. La funzione è UpdateUnitCost: Nuova versione: WITH Item DO BEGIN IF NewStdCost <> 0 THEN “Standard Cost” := NewStdCost; IF “Costing Method” = “Costing Method”::Standard THEN “Unit Cost” := “Standard Cost” ELSE BEGIN IF CalledFromAdjustment THEN BEGIN CostCalcMgt.GetRndgSetup(GLSetup,Currency,RndgSetupRead); IF CalculateAverageInclExpCost(Item,AverageCost,AverageCostACY) THEN IF AverageCost <> 0 THEN “Unit Cost” := ROUND(AverageCost,GLSetup.“Unit-Amount Rounding Precision”); END ELSE BEGIN IF (“Unit Cost” = 0) AND (InvoicedQty > 0) AND (LastDirectCost <> 0) THEN BEGIN CALCFIELDS(“Net Invoiced Qty.”); IF (“Net Invoiced Qty.” > 0) AND (“Net Invoiced Qty.” <= InvoicedQty) THEN “Unit Cost” := LastDirectCost; END; END; END; Vecchia versione: UpdateUnitCost(VAR Item : Record Item;LocationCode : Code[10];VariantCode : Code[10];LastDirectCost : Decimal;NewStdCost : Decimal;Upda WITH Item DO BEGIN IF NewStdCost <> 0 THEN “Standard Cost” := NewStdCost; IF “Costing Method” = “Costing Method”::Standard THEN “Unit Cost” := “Standard Cost” ELSE BEGIN IF LastDirectCost <> 0 THEN “Unit Cost” := LastDirectCost; CostCalcMgt.GetRndgSetup(GLSetup,Currency,RndgSetupRead); IF CalculateAverageCost(Item,AverageCost,AverageCostACY) THEN IF AverageCost <> 0 THEN “Unit Cost” := ROUND(AverageCost,GLSetup.“Unit-Amount Rounding Precision”); END; Non so cosa comporti l’eventuale modifica. In alternativa potreste cambiare l’OnValidate del campo “Calcola Prezzo/Margine” in modo che il calcolo si basi sul Costo Medio (che però va calcolato, v. form scheda articolo) invece che sul Costo Unitario, questo trigger è richiamato dalla funzione incriminata, quindi dovrebbe risolvere il vs problema di calcolo prezzo, anche se il margine della vendita sarà corretto solo dopo aver eseguito il batch di Rettifica Costo - Mov. Art. Elena