LOCAL PROCEDURE PostFlushedConsump@32(ProdOrder@1000 : Record 5405;ProdOrderLine@1001 : Record 5406;ProdOrderComp@1002 : Record 5407;ActOutputQtyBase@1008 : Decimal;PostingDate@1006 : Date;DocumentNo@1003 : Code[20]);
VAR
CompItem@1004 : Record 27;
OldTempTrackingSpecification@1009 : TEMPORARY Record 336;
QtyToPost@1007 : Decimal;
CalcBasedOn@1005 : 'Actual Output,Expected Output';
PostItemJnlLine2@1013 : Boolean;
DimsAreTaken@1010 : Boolean;
...
LOCAL PROCEDURE PostFlushedConsump@32(ProdOrder@1000 : Record 5405;ProdOrderLine@1001 : Record 5406;ProdOrderComp@1002 : Record 5407;ActOutputQtyBase@1008 : Decimal;PostingDate@1006 : Date;DocumentNo@1003 : Code[20]);
VAR
CompItem@1004 : Record 27;
OldTempTrackingSpecification@1009 : TEMPORARY Record 336;
// Add the following line.
ProdOrderRtngLine@1011 : Record 5409;
QtyToPost@1007 : Decimal;
CalcBasedOn@1005 : 'Actual Output,Expected Output';
PostItemJnlLine2@1013 : Boolean;
DimsAreTaken@1010 : Boolean;
...
...
CompItem.TESTFIELD("Rounding Precision");
IF ProdOrderComp."Flushing Method" IN
[ProdOrderComp."Flushing Method"::Backward,ProdOrderComp."Flushing Method"::"Pick + Backward"]
// Delete the following lines.
THEN
QtyToPost :=
CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,ProdOrderComp,ActOutputQtyBase)/ProdOrderComp."Qty. per Unit of Measure"
ELSE
QtyToPost := ProdOrderComp.GetNeededQty(CalcBasedOn::"Expected Output",TRUE);
QtyToPost := ROUND(QtyToPost,CompItem."Rounding Precision",'>');
// End of the lines.
IF QtyToPost = 0 THEN
EXIT;
...
...
CompItem.TESTFIELD("Rounding Precision");
IF ProdOrderComp."Flushing Method" IN
[ProdOrderComp."Flushing Method"::Backward,ProdOrderComp."Flushing Method"::"Pick + Backward"]
// Add the following lines.
THEN BEGIN
QtyToPost :=
ROUND(CostCalcMgt.CalcActNeededQtyBase(ProdOrderLine,ProdOrderComp,ActOutputQtyBase) /
ProdOrderComp."Qty. per Unit of Measure",CompItem."Rounding Precision",'>');
ProdOrderRtngLine.SETRANGE(Status,ProdOrderComp.Status);
ProdOrderRtngLine.SETRANGE("Prod. Order No.",ProdOrderComp."Prod. Order No.");
ProdOrderRtngLine.SETRANGE("Routing Reference No.",ProdOrderLine."Routing Reference No.");
ProdOrderRtngLine.SETRANGE("Routing Link Code",ProdOrderComp."Routing Link Code");
IF ProdOrderRtngLine.FINDFIRST THEN
IF ProdOrderRtngLine."Flushing Method" <> ProdOrderRtngLine."Flushing Method"::Manual THEN
QtyToPost :=
ROUND(QtyToPost * (1 + ProdOrderRtngLine."Scrap Factor % (Accumulated)") +
ProdOrderRtngLine."Fixed Scrap Qty. (Accum.)",CompItem."Rounding Precision",'>')
END ELSE
QtyToPost := ROUND(ProdOrderComp.GetNeededQty(CalcBasedOn::"Expected Output",TRUE),CompItem."Rounding Precision",'>');
// End of the lines.
IF QtyToPost = 0 THEN
EXIT;
...