While a lot of redesigning was done in NAV7 regarding costing engine,
some issues arise, as we implement NAV7 and manufacturing module.
This time : let's talk about family functionality
For families routing is common and multiple items are produced.
It's really nice feature for chemical, food and process industries !
Scenario:
- we have families (many outputs on one production order). Family consist of two items: Item1 and Item2, ration Item1 vs. Item2 60:40.
- items are on FIFO
- we have capacity ledger entries with some unit cost on WC/MC cards (example WC1 "Direct Unit Cost"=1).
- release Prod.Order for 100. You get two prod. order lines for 60 and 40.
- Click on "Statistics" (F7). Look
Capacity cost. Huh ? Doubled.
- post Production Journal. Post 6hrs on Item1, 4hrs on Item2, also output.
- Click on "Statistics" (F7). Look Capacity cost. Huh ?
Doubled.
- Change status to Finished.
- Cost adjusting. Look for CostAmtActual on Outputs !!! No good.
Where is the trick ? In programmer, who is technically superb, but doesn't know much about functionality, i'm afraid.
CU 5896,
CalcShareOfCapCost (the "new one" :roll: ):
CalcShareOfCapCost(InvtAdjmtEntryOrder : Record "Inventory Adjmt. Entry (Order)") ShareOfCapCost : Decimal
IF InvtAdjmtEntryOrder."Order Type" = InvtAdjmtEntryOrder."Order Type"::Assembly THEN
EXIT(1);
WITH CapLedgEntry DO BEGIN
SETCURRENTKEY("Order Type","Order No.");
SETRANGE("Order Type",InvtAdjmtEntryOrder."Order Type");
SETRANGE("Order No.",InvtAdjmtEntryOrder."Order No.");
SETRANGE("Order Line No.",InvtAdjmtEntryOrder."Order Line No.");
SETRANGE("Routing No.",InvtAdjmtEntryOrder."Routing No.");
SETRANGE("Routing Reference No.",InvtAdjmtEntryOrder."Routing Reference No.");
CALCSUMS("Output Quantity");
ShareOfCapCost := "Output Quantity";
IF InvtAdjmtEntryOrder."Order Type" = InvtAdjmtEntryOrder."Order Type"::Production THEN
SETRANGE("Order Line No.",InvtAdjmtEntryOrder."Order Line No.");
CALCSUMS("Output Quantity");
IF "Output Quantity" <> 0 THEN
ShareOfCapCost := ShareOfCapCost / "Output Quantity";
END;
Shall we rather call this function
IAlwaysReturnOne ??
The catch is in last
SETRANGE("Order Line No.",InvtAdjmtEntryOrder."Order Line No.");
(it just must be cleared). That's it, NAV dev guys.
I'm just afraid, that there are more issues like this due to redesign of inv.costing engine...
Beer.
Answers
Cc: MSSolve Case Email;
Hello,
The following solution has been provided to resolve your issue: wrong production order cost when creating multiline production order with Source Type=Family. A summary of the solution is detailed below.
• Symptom – Actual labor costs are doubled on Family production order statistics
• Cause - bad code
• Resolution – in Update Rollup 2 - Fix ID 346288
• More Information -
ArticleID: 2843305.
Update Rollup 2 for Microsoft Dynamics NAV 2013 (Build 34688)
https://mbs2.microsoft.com/knowledgebas ... US;2843305
Here the specific fix (ID 346288):
Change Log 23. April 2013
Lenny
Henrik Ohm