Korting op de artikeltoeslag die zijn toegewezen aan de verkoopverzendingen zijn niet verdeeld overeenkomstig de keuze naar de respectieve waarden in Microsoft Dynamics NAV 2009. Volg de stappen in de sectie codewijzigingen oplossen van dit probleem. Dit probleem treedt op in de volgende producten:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 servicepack 1 (SP1)
Oplossing
Informatie over de hotfix
Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende servicepack voor Microsoft Dynamics NAV 2009 of de volgende Microsoft Dynamics NAV versie waarin deze hotfix is opgenomen.
Opmerking In speciale gevallen kunnen kosten die verbonden zijn aan ondersteuningsoproepen ondersteuning worden geannuleerd als een medewerker van Technical Support voor Microsoft Dynamics en verwante producten bepaalt dat een specifieke update de oplossing van uw probleem. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.
Informatie over de installatie
Microsoft verstrekt programmeervoorbeelden uitsluitend ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal die wordt aangetoond en met de hulpprogramma's die worden gebruikt bent voor het maken van en naar procedures voor foutopsporing. Ondersteuningstechnici van Microsoft kunnen voor uitleg over de functionaliteit van een bepaalde procedure. Zij zal deze voorbeelden bieden extra functionaliteit of desgewenst uw specifieke vereisten echter niet wijzigen.
Opmerking Voordat u deze hotfix hebt geïnstalleerd, controleert u of dat alle gebruikers van Microsoft Dynamics NAV-clients zijn afgemeld bij het systeem. Dit omvat services voor Microsoft Dynamics NAV Application Server (NAS). U moet de alleen clientgebruiker die is aangemeld wanneer u deze hotfix gaat implementeren.
Als u deze hotfix gaat implementeren, hebt u een ontwikkelaarslicentie voor.
Is raadzaam dat de gebruikersaccount in het venster Windows-aanmeldingen of Databaseaanmeldingen de rol-id 'SUPER'. Als de gebruikersaccount kan worden toegewezen als de ID 'SUPER' rol, moet u controleren of de gebruikersaccount de volgende machtigingen heeft:
-
De machtiging wijzigen voor het object dat u wijzigt.
-
De machtiging uitvoeren voor het object System Object ID 5210 en voor de System Object ID 9015
-object.
Opmerking Er geen rechten voor de opgeslagen gegevens hebben, tenzij u gegevens herstellen.
Codewijzigingen
Opmerking Altijd test code worden opgelost in een testomgeving voordat u de correcties in de productieomgeving.
U kunt dit probleem oplossen door de volgende stappen uit te voeren:
-
De code in het dialoogvenster Eigenschappen in de codeunit verkoop-boeken (80) als volgt wijzigen:
Bestaande code 1...PostJobContractLine(JobTaskSalesLine,TempJnlLineDim2);
END;
SalesLine.Type::"Charge (Item)":
IF Invoice OR ItemChargeAssgntOnly THEN BEGIN
// Delete the following line.
ItemJnlRollRndg := FALSE;
// End of the deleted line.
ClearItemChargeAssgntFilter;
TempItemChargeAssgntSales.SETCURRENTKEY("Applies-to Doc. Type");
TempItemChargeAssgntSales.SETRANGE("Document Line No.",SalesLine."Line No.");
IF TempItemChargeAssgntSales.FINDSET THEN
...Nieuwe code 1
...PostJobContractLine(JobTaskSalesLine,TempJnlLineDim2);
END;
SalesLine.Type::"Charge (Item)":
IF Invoice OR ItemChargeAssgntOnly THEN BEGIN
// Add the following line.
ItemJnlRollRndg := TRUE;
// End of the added line.
ClearItemChargeAssgntFilter;
TempItemChargeAssgntSales.SETCURRENTKEY("Applies-to Doc. Type");
TempItemChargeAssgntSales.SETRANGE("Document Line No.",SalesLine."Line No.");
IF TempItemChargeAssgntSales.FINDSET THEN
...Bestaande code 2
...GenJnlLineDocNo := TempItemChargeAssgntSales."Applies-to Doc. No.";
CASE TempItemChargeAssgntSales."Applies-to Doc. Type" OF
TempItemChargeAssgntSales."Applies-to Doc. Type"::Shipment:
BEGIN
// Delete the following line.
PostItemChargePerShpt(SalesLine);
TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":
BEGIN
...Vervangende code 2
...GenJnlLineDocNo := TempItemChargeAssgntSales."Applies-to Doc. No.";
CASE TempItemChargeAssgntSales."Applies-to Doc. Type" OF
TempItemChargeAssgntSales."Applies-to Doc. Type"::Shipment:
BEGIN
// Add the following lines.
PostItemChargePerShpt(SalesLine,SalesLine."Inv. Discount Amount",
SalesLine.Quantity,SalesLine."Line Discount Amount",SalesLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":
BEGIN
...Bestaande code 3
...TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":
BEGIN
// Delete the following line.
PostItemChargePerRetRcpt(SalesLine);
TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::Order,
TempItemChargeAssgntSales."Applies-to Doc. Type"::Invoice:
...Vervangende code 3
...TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":
BEGIN
// Add the following lines.
PostItemChargePerRetRcpt(SalesLine,SalesLine."Inv. Discount Amount",
SalesLine.Quantity,SalesLine."Line Discount Amount",SalesLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntSales.MARK(TRUE);
END;
TempItemChargeAssgntSales."Applies-to Doc. Type"::Order,
TempItemChargeAssgntSales."Applies-to Doc. Type"::Invoice:
... -
De code in de functie PostItemChargePerShpt in de codeunit verkoop-boeken (80) als volgt wijzigen:
Bestaande code 1...END;
END;
END;
// Delete the following line.
LOCAL PROCEDURE PostItemChargePerShpt@5807(SalesLine@1000 : Record 37);
VAR
SalesShptLine@1003 : Record 111;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Nieuwe code 1
...END;
END;
END;
// Add the following line.
LOCAL PROCEDURE PostItemChargePerShpt@5807(SalesLine@1000 : Record 37;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
VAR
SalesShptLine@1003 : Record 111;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Bestaande code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Delete the following line.
AmountToAssign,QtyToAssign);
NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Vervangende code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Add the following lines.
AmountToAssign,QtyToAssign,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Delete the following line.
NonDistrAmountToAssign,NonDistrQtyToAssign);
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
PostItemCharge(SalesLine,
SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
...Vervangende code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Add the following lines.
NonDistrAmountToAssign,NonDistrQtyToAssign,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
PostItemCharge(SalesLine,
SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
...Bestaande code 4
...END ELSE
PostItemCharge(SalesLine,
SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
TempItemChargeAssgntSales."Amount to Assign",
// Delete the following lines.
TempItemChargeAssgntSales."Qty. to Assign");
END;
LOCAL PROCEDURE PostItemChargePerRetRcpt@5810(SalesLine@1000 : Record 37);
// End of the deleted lines.
VAR
ReturnRcptLine@1002 : Record 6661;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Vervangende code 4
...END ELSE
PostItemCharge(SalesLine,
SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
TempItemChargeAssgntSales."Amount to Assign",
// Add the following lines.
TempItemChargeAssgntSales."Qty. to Assign",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
END;
LOCAL PROCEDURE PostItemChargePerRetRcpt@5810(SalesLine@1000 : Record 37;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
// End of the added lines.
VAR
ReturnRcptLine@1002 : Record 6661;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
... -
De code in de functie PostItemChargePerRetRcpt in de codeunit verkoop-boeken (80) als volgt wijzigen:
Bestaande code 1...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Delete the following line.
AmountToAssign,QtyToAssign);
NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Nieuwe code 1
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Add the following lines.
AmountToAssign,QtyToAssign,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Delete the following line.
NonDistrAmountToAssign,NonDistrQtyToAssign);
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
PostItemCharge(SalesLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
...Vervangende code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(SalesLine,
TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),
// Add the following lines.
NonDistrAmountToAssign,NonDistrQtyToAssign,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
PostItemCharge(SalesLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
...Bestaande code 3
...END ELSE
PostItemCharge(SalesLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
TempItemChargeAssgntSales."Amount to Assign",
// Delete the following line.
TempItemChargeAssgntSales."Qty. to Assign")
END;
LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;
VAR
...Vervangende code 3
...END ELSE
PostItemCharge(SalesLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
TempItemChargeAssgntSales."Amount to Assign",
// Add the following lines.
TempItemChargeAssgntSales."Qty. to Assign",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
// End of the added lines.
END;
LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;
VAR
... -
De code in de functie PostItemCharge in de codeunit verkoop-boeken (80) als volgt wijzigen:
Bestaande code 1...TempValueEntryRelation.DELETEALL;
END;
END;
// Delete the following line.
PROCEDURE PostItemCharge@42(SalesLine@1005 : Record 37;ItemEntryNo@1004 : Integer;QuantityBase@1003 : Decimal;AmountToAssign@1002 : Decimal;QtyToAssign@1001 : Decimal);
VAR
DummyTrackingSpecification@1000 : Record 336;
BEGIN
WITH TempItemChargeAssgntSales DO BEGIN
...Nieuwe code 1
...TempValueEntryRelation.DELETEALL;
END;
END;
// Add the following line.
PROCEDURE PostItemCharge@42(SalesLine@1005 : Record 37;ItemEntryNo@1004 : Integer;QuantityBase@1003 : Decimal;AmountToAssign@1002 : Decimal;QtyToAssign@1001 : Decimal;VAR TotalInvDiscAmtRemaining@1006 : Decimal;VAR TotalQtyRemaining@1007 : Decimal;VAR TotalLineDiscAmtRemaining@1008 : Decimal;VAR TotalLineAmtRemaining@1009 : Decimal);
VAR
DummyTrackingSpecification@1000 : Record 336;
BEGIN
WITH TempItemChargeAssgntSales DO BEGIN
...Bestaande code 2
...SalesLine.Amount :=
CurrExchRate.ExchangeAmtFCYToLCY(
UseDate,SalesHeader."Currency Code",TotalChargeAmt,SalesHeader."Currency Factor");
SalesLine."Inv. Discount Amount" := ROUND(
// Delete the following lines.
SalesLine."Inv. Discount Amount" / SalesLine.Quantity * QtyToAssign,
GLSetup."Amount Rounding Precision");
// End of the deleted lines.
SalesLine.Amount := ROUND(SalesLine.Amount,GLSetup."Amount Rounding Precision") - TotalChargeAmtLCY;
IF SalesHeader."Currency Code" <> '' THEN
TotalChargeAmtLCY := TotalChargeAmtLCY + SalesLine.Amount;
SalesLine."Unit Cost (LCY)" := ROUND(
...Vervangende code 2
...SalesLine.Amount :=
CurrExchRate.ExchangeAmtFCYToLCY(
UseDate,SalesHeader."Currency Code",TotalChargeAmt,SalesHeader."Currency Factor");
SalesLine."Inv. Discount Amount" := ROUND(
// Add the following lines.
TotalInvDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
SalesLine."Line Discount Amount" := ROUND(
TotalLineDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
SalesLine."Line Amount" := ROUND(
TotalLineAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
TotalInvDiscAmtRemaining := TotalInvDiscAmtRemaining - SalesLine."Inv. Discount Amount";
TotalLineDiscAmtRemaining := TotalLineDiscAmtRemaining - SalesLine."Line Discount Amount";
TotalLineAmtRemaining := TotalLineAmtRemaining - SalesLine."Line Amount";
TotalQtyRemaining := TotalQtyRemaining - QtyToAssign;
// End of the added lines.
SalesLine.Amount := ROUND(SalesLine.Amount,GLSetup."Amount Rounding Precision") - TotalChargeAmtLCY;
IF SalesHeader."Currency Code" <> '' THEN
TotalChargeAmtLCY := TotalChargeAmtLCY + SalesLine.Amount;
SalesLine."Unit Cost (LCY)" := ROUND(
... -
Wijzig de code in het dialoogvenster Eigenschappen in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...3:
ERROR(Text015);
PurchLine.Type::"Charge (Item)":
IF Invoice OR ItemChargeAssgntOnly THEN BEGIN
// Delete the following line.
ItemJnlRollRndg := FALSE;
ClearItemChargeAssgntFilter;
TempItemChargeAssgntPurch.SETCURRENTKEY("Applies-to Doc. Type");
TempItemChargeAssgntPurch.SETRANGE("Document Line No.",PurchLine."Line No.");
IF TempItemChargeAssgntPurch.FINDSET THEN
...Nieuwe code 1
...3:
ERROR(Text015);
PurchLine.Type::"Charge (Item)":
IF Invoice OR ItemChargeAssgntOnly THEN BEGIN
// Add the following line.
ItemJnlRollRndg := TRUE;
ClearItemChargeAssgntFilter;
TempItemChargeAssgntPurch.SETCURRENTKEY("Applies-to Doc. Type");
TempItemChargeAssgntPurch.SETRANGE("Document Line No.",PurchLine."Line No.");
IF TempItemChargeAssgntPurch.FINDSET THEN
...Bestaande code 2
...GenJnlLineDocNo := TempItemChargeAssgntPurch."Applies-to Doc. No.";
CASE TempItemChargeAssgntPurch."Applies-to Doc. Type" OF
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Receipt:
BEGIN
// Delete the following line.
PostItemChargePerRcpt(PurchLine);
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":
BEGIN
...Vervangende code 2
...GenJnlLineDocNo := TempItemChargeAssgntPurch."Applies-to Doc. No.";
CASE TempItemChargeAssgntPurch."Applies-to Doc. Type" OF
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Receipt:
BEGIN
// Add the following lines.
PostItemChargePerRcpt(PurchLine,PurchLine."Inv. Discount Amount",
PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":
BEGIN
...Bestaande code 3
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":
BEGIN
// Delete the following line.
PostItemChargePerTransfer(PurchLine);
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":
BEGIN
...Vervangende code 3
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":
BEGIN
// Add the following lines.
PostItemChargePerTransfer(PurchLine,PurchLine."Inv. Discount Amount",
PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":
BEGIN
...Bestaande code 4
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":
BEGIN
// Delete the following line.
PostItemChargePerRetShpt(PurchLine);
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":
BEGIN
...Vervangende code 4
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":
BEGIN
// Add the following lines.
PostItemChargePerRetShpt(PurchLine,PurchLine."Inv. Discount Amount",
PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":
BEGIN
...Bestaande code 5
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":
BEGIN
// Delete the following line.
PostItemChargePerSalesShpt(PurchLine);
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":
BEGIN
...Vervangende code 5
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":
BEGIN
// Add the following lines.
PostItemChargePerSalesShpt(PurchLine,PurchLine."Inv. Discount Amount",
PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":
BEGIN
...Bestaande code 6
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":
BEGIN
// Delete the following line.
PostItemChargePerRetRcpt(PurchLine);
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Order,
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Invoice:
...Vervangende code 6
...TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":
BEGIN
// Add the following lines.
PostItemChargePerRetRcpt(PurchLine,PurchLine."Inv. Discount Amount",
PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
// End of the added lines.
TempItemChargeAssgntPurch.MARK(TRUE);
END;
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Order,
TempItemChargeAssgntPurch."Applies-to Doc. Type"::Invoice:
... -
Wijzig de code in de functie PostItemChargePerRcpt in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...END;
END;
END;
// Delete the following line.
LOCAL PROCEDURE PostItemChargePerRcpt@5807(PurchLine@1000 : Record 39);
VAR
PurchRcptLine@1002 : Record 121;
TempItemLedgEntry@1003 : TEMPORARY Record 32;
ItemTrackingMgt@1005 : Codeunit 6500;
...Nieuwe code 1
...END;
END;
END;
// Add the following line.
LOCAL PROCEDURE PostItemChargePerRcpt@5807(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
VAR
PurchRcptLine@1002 : Record 121;
TempItemLedgEntry@1003 : TEMPORARY Record 32;
ItemTrackingMgt@1005 : Codeunit 6500;
...Bestaande code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
AmountToAssign * Sign,QtyToAssign,PurchRcptLine."Indirect Cost %");
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Vervangende code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
AmountToAssign * Sign,QtyToAssign,PurchRcptLine."Indirect Cost %",
TotalInvDiscAmtRemaining,TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,PurchRcptLine."Indirect Cost %");
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Vervangende code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,PurchRcptLine."Indirect Cost %",
TotalInvDiscAmtRemaining,TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Bestaande code 4
...PostItemCharge(PurchLine,
PurchRcptLine."Item Rcpt. Entry No.",PurchRcptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
TempItemChargeAssgntPurch."Qty. to Assign",
// Delete the following lines.
PurchRcptLine."Indirect Cost %");
END;
LOCAL PROCEDURE PostItemChargePerRetShpt@5811(PurchLine@1000 : Record 39);
// End of the deleted lines.
VAR
ReturnShptLine@1002 : Record 6651;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Vervangende code 4
...PostItemCharge(PurchLine,
PurchRcptLine."Item Rcpt. Entry No.",PurchRcptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
TempItemChargeAssgntPurch."Qty. to Assign",
// Add the following lines.
PurchRcptLine."Indirect Cost %",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
END;
LOCAL PROCEDURE PostItemChargePerRetShpt@5811(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
// End of the added lines.
VAR
ReturnShptLine@1002 : Record 6651;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
... -
Wijzig de code in de functie PostItemChargePerRetShpt in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
AmountToAssign * Sign,QtyToAssign,ReturnShptLine."Indirect Cost %");
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Nieuwe code 1
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
AmountToAssign * Sign,QtyToAssign,ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,ReturnShptLine."Indirect Cost %");
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Vervangende code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Bestaande code 3
...PostItemCharge(PurchLine,
ReturnShptLine."Item Shpt. Entry No.",-ReturnShptLine."Quantity (Base)",
ABS(TempItemChargeAssgntPurch."Amount to Assign") * Sign,
TempItemChargeAssgntPurch."Qty. to Assign",
// Delete the following lines.
ReturnShptLine."Indirect Cost %");
END;
LOCAL PROCEDURE PostItemChargePerTransfer@23(PurchLine@1000 : Record 39);
// End of the deleted lines.
VAR
TransRcptLine@1002 : Record 5747;
ItemApplnEntry@1003 : Record 339;
DummyTrackingSpecification@1001 : Record 336;
...Vervangende code 3
...PostItemCharge(PurchLine,
ReturnShptLine."Item Shpt. Entry No.",-ReturnShptLine."Quantity (Base)",
ABS(TempItemChargeAssgntPurch."Amount to Assign") * Sign,
TempItemChargeAssgntPurch."Qty. to Assign",
// Add the following lines.
ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
END;
LOCAL PROCEDURE PostItemChargePerTransfer@23(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1016 : Decimal;VAR TotalQtyRemaining@1017 : Decimal;VAR TotalLineDiscAmtRemaining@1018 : Decimal;VAR TotalLineAmtRemaining@1019 : Decimal);
// End of the added lines.
VAR
TransRcptLine@1002 : Record 5747;
ItemApplnEntry@1003 : Record 339;
DummyTrackingSpecification@1001 : Record 336;
... -
Wijzig de code in de functie PostItemChargePerTransfer in thePurch.-codeunit (90) als volgt boeken
Bestaande code...PurchLine."Bin Code" := '';
PurchLine."Line No." := "Document Line No.";
IF TransRcptLine."Item Rcpt. Entry No." = 0 THEN
// Delete the following line.
PostItemChargePerITTransfer(PurchLine,TransRcptLine)
ELSE BEGIN
TotalAmountToPostFCY := "Amount to Assign";
IF PurchHeader."Currency Code" <> '' THEN
TotalAmountToPostLCY :=
...Nieuwe code
...PurchLine."Bin Code" := '';
PurchLine."Line No." := "Document Line No.";
IF TransRcptLine."Item Rcpt. Entry No." = 0 THEN
// Add the following lines.
PostItemChargePerITTransfer(PurchLine,TransRcptLine,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
// End of the added lines.
ELSE BEGIN
TotalAmountToPostFCY := "Amount to Assign";
IF PurchHeader."Currency Code" <> '' THEN
TotalAmountToPostLCY :=
... -
Wijzig de code in de functie PostItemChargePerITTransfer in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...END;
END;
END;
// Delete the following line.
LOCAL PROCEDURE PostItemChargePerITTransfer@43(PurchLine@1000 : Record 39;TransRcptLine@1017 : Record 5747);
VAR
TempItemLedgEntry@1016 : TEMPORARY Record 32;
ItemTrackingMgt@1001 : Codeunit 6500;
Factor@1023 : Decimal;
...Nieuwe code 1
...END;
END;
END;
// Add the following line.
LOCAL PROCEDURE PostItemChargePerITTransfer@43(PurchLine@1000 : Record 39;TransRcptLine@1017 : Record 5747;VAR TotalInvDiscAmtRemaining@1026 : Decimal;VAR TotalQtyRemaining@1024 : Decimal;VAR TotalLineDiscAmtRemaining@1025 : Decimal;VAR TotalLineAmtRemaining@1030 : Decimal);
VAR
TempItemLedgEntry@1016 : TEMPORARY Record 32;
ItemTrackingMgt@1001 : Codeunit 6500;
Factor@1023 : Decimal;
...Bestaande code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
AmountToAssign,QtyToAssign,0);
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Vervangende code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
AmountToAssign,QtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
NonDistrAmountToAssign,NonDistrQtyToAssign,0);
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042);
END;
...Vervangende code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
NonDistrAmountToAssign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042);
END;
... -
Wijzig de code in de functie PostItemChargePerSalesShpt in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...ERROR(Text042);
END;
END;
// Delete the following line.
LOCAL PROCEDURE PostItemChargePerSalesShpt@41(PurchLine@1000 : Record 39);
VAR
SalesShptLine@1002 : Record 111;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Nieuwe code 1
...ERROR(Text042);
END;
END;
// Add the following line.
LOCAL PROCEDURE PostItemChargePerSalesShpt@41(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
VAR
SalesShptLine@1002 : Record 111;
TempItemLedgEntry@1010 : TEMPORARY Record 32;
ItemTrackingMgt@1009 : Codeunit 6500;
...Bestaande code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
AmountToAssign * Sign,QtyToAssign,0);
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Vervangende code 2
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
AmountToAssign * Sign,QtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0);
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Vervangende code 3
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Bestaande code 4
...ELSE
PostItemCharge(PurchLine,
SalesShptLine."Item Shpt. Entry No.",-SalesShptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
// Delete the following lines.
TempItemChargeAssgntPurch."Qty. to Assign",0)
END;
PROCEDURE PostItemChargePerRetRcpt@37(PurchLine@1001 : Record 39);
// End of the deleted lines.
VAR
ReturnRcptLine@1000 : Record 6661;
TempItemLedgEntry@1011 : TEMPORARY Record 32;
ItemTrackingMgt@1010 : Codeunit 6500;
...Vervangende code 4
...ELSE
PostItemCharge(PurchLine,
SalesShptLine."Item Shpt. Entry No.",-SalesShptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
// Add the following lines.
TempItemChargeAssgntPurch."Qty. to Assign",0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
END;
PROCEDURE PostItemChargePerRetRcpt@37(PurchLine@1001 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
// End of the added lines.
VAR
ReturnRcptLine@1000 : Record 6661;
TempItemLedgEntry@1011 : TEMPORARY Record 32;
ItemTrackingMgt@1010 : Codeunit 6500;
... -
Wijzig de code in de functie PostItemChargePerRetRcpt in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
AmountToAssign * Sign,QtyToAssign,0);
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Nieuwe code 1
...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");
IF Factor < 1 THEN BEGIN
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
AmountToAssign * Sign,QtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;
NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;
NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
...Bestaande code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Delete the following line.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0);
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Vervangende code 2
...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;
END ELSE // the last time
PostItemCharge(PurchLine,
TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,
// Add the following lines.
NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
// End of the added lines.
UNTIL TempItemLedgEntry.NEXT = 0;
END ELSE
ERROR(Text042)
ELSE
...Bestaande code 3
...ELSE
PostItemCharge(PurchLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
// Delete the following line.
TempItemChargeAssgntPurch."Qty. to Assign",0)
END;
LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;
VAR
...Vervangende code 3
...ELSE
PostItemCharge(PurchLine,
ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
TempItemChargeAssgntPurch."Amount to Assign" * Sign,
// Add the following lines.
TempItemChargeAssgntPurch."Qty. to Assign",0,TotalInvDiscAmtRemaining,
TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
// End of the added lines.
END;
LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;
VAR
... -
Wijzig de code in de functie PostItemCharge in thePurch.-codeunit (90) als volgt boeken:
Bestaande code 1...TempValueEntryRelation.DELETEALL;
END;
END;
// Delete the following line.
LOCAL PROCEDURE PostItemCharge@42(PurchLine@1000 : Record 39;ItemEntryNo@1004 : Integer;QuantityBase@1005 : Decimal;AmountToAssign@1006 : Decimal;QtyToAssign@1007 : Decimal;IndirectCostPct@1008 : Decimal);
VAR
DummyTrackingSpecification@1001 : Record 336;
BEGIN
WITH TempItemChargeAssgntPurch DO BEGIN
...Nieuwe code 1
...TempValueEntryRelation.DELETEALL;
END;
END;
// Add the following line.
LOCAL PROCEDURE PostItemCharge@42(PurchLine@1000 : Record 39;ItemEntryNo@1004 : Integer;QuantityBase@1005 : Decimal;AmountToAssign@1006 : Decimal;QtyToAssign@1007 : Decimal;IndirectCostPct@1008 : Decimal;VAR TotalInvDiscAmtRemaining@1009 : Decimal;VAR TotalQtyRemaining@1010 : Decimal;VAR TotalLineDiscAmtRemaining@1011 : Decimal;VAR TotalLineAmtRemaining@1012 : Decimal);
VAR
DummyTrackingSpecification@1001 : Record 336;
BEGIN
WITH TempItemChargeAssgntPurch DO BEGIN
...Bestaande code 2
...ROUND(
PurchLine.Amount / QuantityBase,GLSetup."Unit-Amount Rounding Precision");
PurchLine."Inv. Discount Amount" := ROUND(
// Delete the following lines.
PurchLine."Inv. Discount Amount" / PurchLine.Quantity * QtyToAssign,
GLSetup."Amount Rounding Precision");
PurchLine."Line Discount Amount" := ROUND(
PurchLine."Line Discount Amount" / PurchLine.Quantity * QtyToAssign,
GLSetup."Amount Rounding Precision");
// End of the deleted lines.
PostItemJnlLine(
PurchLine,
0,0,
QuantityBase,QuantityBase,
...Vervangende code 2
...ROUND(
PurchLine.Amount / QuantityBase,GLSetup."Unit-Amount Rounding Precision");
PurchLine."Inv. Discount Amount" := ROUND(
// Add the following lines.
TotalInvDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
PurchLine."Line Discount Amount" := ROUND(
TotalLineDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
PurchLine."Line Amount" := ROUND(
TotalLineAmtRemaining / TotalQtyRemaining * QtyToAssign,
GLSetup."Amount Rounding Precision");
TotalInvDiscAmtRemaining := TotalInvDiscAmtRemaining - PurchLine."Inv. Discount Amount";
TotalLineDiscAmtRemaining := TotalLineDiscAmtRemaining - PurchLine."Line Discount Amount";
TotalLineAmtRemaining := TotalLineAmtRemaining - PurchLine."Line Amount";
TotalQtyRemaining := TotalQtyRemaining - QtyToAssign;
// End of the added lines.
PostItemJnlLine(
PurchLine,
0,0,
QuantityBase,QuantityBase,
...
Vereisten
Hebt u een van de volgende producten geïnstalleerd om deze hotfix:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
Informatie over verwijderen
U kunt deze hotfix niet verwijderen.
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Opmerking Dit is een 'Snel publiceren' artikel dat rechtstreeks door het ondersteuningsteam van Microsoft is gemaakt. De informatie wordt geleverd zoals het is in reactie op de opkomende problemen. Omdat het artikel snel beschikbaar moest zijn, kunnen de materialen typografische fouten bevatten en op elk gewenst moment zonder voorafgaande kennisgeving worden gewijzigd. Zie de Gebruiksvoorwaardenvoor andere overwegingen.