The VAT Amount value in a General Ledger entry may be incorrect when you run the Unapply Entries function for an invoice and a payment in Microsoft Dynamics NAV 5.0
View products that this article applies to.
Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Technical Support Professional for Microsoft Dynamics and related products determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
Installation og download
Note Before you install this hotfix, verify that all Microsoft Navision client users are logged off the system. This includes Microsoft Navision Application Services (NAS) client users. You should be the only client user who is logged on when you implement this hotfix.
To implement this hotfix, you must have a developer license.
• The Modify permission for the object that you will be changing.
• The Execute permission for the System Object ID 5210 object and for the System Object ID 9015 object.
Note You do not have to have rights to the data stores unless you have to perform data repair.
Replacement code
...
IF DtldCustLedgEntry2."Entry Type" IN [
DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETCURRENTKEY("Transaction No.");
VATEntry.SETRANGE("Transaction No.",DtldCustLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldCustLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldCustLedgEntry2."VAT Prod. Posting Group");
// The following line is modified.
IF VATEntry.FINDSET THEN
// Add the following line.
REPEAT
// The following line is modified.
DtldCVLedgEntryBuf."VAT Amount (LCY)" := DtldCVLedgEntryBuf."VAT Amount (LCY)" + VATEntry.Amount;
// Add the following line.
UNTIL VATEntry.NEXT = 0;
CLEAR(VATEntry);
END;
...
2. Change the code in the UnapplyVendLedgEntry function in the Gen. Jnl.-Post Line codeunit (12) as follows.
Existing code
...
IF DtldVendLedgEntry2."Entry Type" IN [
DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETRANGE("Transaction No.",DtldVendLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldVendLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldVendLedgEntry2."VAT Prod. Posting Group");
IF VATEntry.FINDFIRST THEN
DtldCVLedgEntryBuf."VAT Amount (LCY)" := VATEntry.Amount;
CLEAR(VATEntry);
END;
...
Replacement code
...
IF DtldVendLedgEntry2."Entry Type" IN [
DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETCURRENTKEY("Transaction No.");
VATEntry.SETRANGE("Transaction No.",DtldVendLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldVendLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldVendLedgEntry2."VAT Prod. Posting Group");
// The following line is modified.
IF VATEntry.FINDSET THEN
// Add the following line.
REPEAT
// The following line is modified.
DtldCVLedgEntryBuf."VAT Amount (LCY)" := DtldCVLedgEntryBuf."VAT Amount (LCY)" + VATEntry.Amount;
// Add the following line.
UNTIL VATEntry.NEXT = 0;
Prerequisites
You must have Microsoft Dynamics NAV 5.0 installed to apply this hotfix.
Note Always test code fixes in a controlled environment before you apply the fixes to your production computers.
To apply this hotfix, follow these steps:
1. Change the code in the UnapplyCustLedgEntr function in the Gen. Jnl.-Post Line codeunit (12) as follows.
Existing code
...
IF DtldCustLedgEntry2."Entry Type" IN [
DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETCURRENTKEY("Transaction No.");
VATEntry.SETRANGE("Transaction No.",DtldCustLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldCustLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldCustLedgEntry2."VAT Prod. Posting Group");
IF VATEntry.FINDFIRST THEN
DtldCVLedgEntryBuf."VAT Amount (LCY)" := VATEntry.Amount;
CLEAR(VATEntry);
END;
...Replacement code
...
IF DtldCustLedgEntry2."Entry Type" IN [
DtldCustLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldCustLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETCURRENTKEY("Transaction No.");
VATEntry.SETRANGE("Transaction No.",DtldCustLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldCustLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldCustLedgEntry2."VAT Prod. Posting Group");// The following line is modified.
IF VATEntry.FINDSET THEN// Add the following line.
REPEAT// The following line is modified.
DtldCVLedgEntryBuf."VAT Amount (LCY)" := DtldCVLedgEntryBuf."VAT Amount (LCY)" + VATEntry.Amount;// Add the following line.
UNTIL VATEntry.NEXT = 0;CLEAR(VATEntry);
END;
...
2. Change the code in the UnapplyVendLedgEntry function in the Gen. Jnl.-Post Line codeunit (12) as follows.
Existing code
...
IF DtldVendLedgEntry2."Entry Type" IN [
DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETRANGE("Transaction No.",DtldVendLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldVendLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldVendLedgEntry2."VAT Prod. Posting Group");
IF VATEntry.FINDFIRST THEN
DtldCVLedgEntryBuf."VAT Amount (LCY)" := VATEntry.Amount;
CLEAR(VATEntry);
END;
...Replacement code
...
IF DtldVendLedgEntry2."Entry Type" IN [
DtldVendLedgEntry2."Entry Type"::"Payment Discount (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Tolerance (VAT Excl.)",
DtldVendLedgEntry2."Entry Type"::"Payment Discount Tolerance (VAT Excl.)"]
THEN BEGIN
VATEntry.SETCURRENTKEY("Transaction No.");
VATEntry.SETRANGE("Transaction No.",DtldVendLedgEntry2."Transaction No.");
VATEntry.SETRANGE("VAT Bus. Posting Group",DtldVendLedgEntry2."VAT Bus. Posting Group");
VATEntry.SETRANGE("VAT Prod. Posting Group",DtldVendLedgEntry2."VAT Prod. Posting Group");// The following line is modified.
IF VATEntry.FINDSET THEN// Add the following line.
REPEAT// The following line is modified.
DtldCVLedgEntryBuf."VAT Amount (LCY)" := DtldCVLedgEntryBuf."VAT Amount (LCY)" + VATEntry.Amount;// Add the following line.
UNTIL VATEntry.NEXT = 0;CLEAR(VATEntry);
END;
...