Purchase Invoice Line Discount not posting to AP account

My setup is not posting purchase invoices to AP properly, and I cannot find a suitable setting that affects this. I hope that someone will be able to suggest settings that I am overlooking. Here is the scenario, and why I think it is a setting.

Version: Current US Business Central (13.3) in US East 2 region (as of March 13, 2019)

  1. Create a purchase invoice for any vendor and add a product to the purchase lines.
  2. Select any quantity, then select a line discount amount (I am using 50% for my testing, but the error was found in production when using 100% discount).
  3. Confirm that the line totals and invoice total are as they should be “IRL” - that is, if I have qty 1 of $100 item, I expect the Direct Cost to be $100, Line Amt. Excl. Tax to be $50, and the Total Incl. Tax to be $50 (non-taxable item, wholesale trade). Good so far…
  4. Select Preview Posting and review entries. Expect that the AP account would show -$50 due. However, it shows the full amount due, -$100. Note that the Purchase Discounts account shows -$50, as I would expect.
  5. Thinking that perhaps the reconcilation on payment-due calculations would sort this out, go ahead and post the purchase invoice. Nope, it shows the full amount due - which is not consistent with the information presented on the un-posted purchase invoice just prior to posting.

I tested this setup in stock Cronus company on the same tenant, and it works as expected, not as above (except Cronus includes tax calculations).

I have cross checked my implementation vs. Cronus in the following areas and see consistency between them:

  • General Posting Setup: Inventory, Purchase, and Purchase Discount GL accounts are same function, but different numbers.
  • Inventory, Purchase Discounts, and AP GL accounts are configured the same
  • Vendor Posting Setup is the same
  • Purchasing & Payables Setup → Discount Posting is “All Discounts” and other settings are the same, except “Check Prepayments” (which I anticipate no effect)
  • None of these setups have vendor- or item-specific discounts applied

Is there a setting I have missed somewhere?

Thank you in advance!

What kind of taxes do you talk about? Sales tax or VAT?

In regards to purchase invoices they are the same, if taxes are included on the purchase invoice and shows a full amount of USD100, then that is the amount you owe that vendor and the amount you should register in AP. USD 100 is credited the vendor account and 50 is debited to purchase and 50 to tax.

So it behaves correctly.

Or have you misunderstood what discount is? It has (generally) nothing to do with tax.

Thank you Erik. As far as I can tell, it has nothing to do with tax, evidenced by running it again without the tax, with the same effect. I understand what a discount is and hoped to have explained that in my example through the “expected result”, but here is a clarification without bringing NAV/BC into the description:

If I buy something at a discount (say, list price is $100 and the vendor offers 50% off), I expect to pay the net amount, or the remaining $50. If I record the transaction in my accounting system, I expect that the AP account will show only the net amount.

Bringing this back to BC, I am recording the transaction in my system as I received it from the vendor - with a line-level discount applied. So I enter the transaction with the Direct Unit Cost equal to the list price, and enter a discount in the Line Discount Column. When I look at the screen, I am happy because I see the following Purchase Line:

Type No. Description/Comment Location Code Quantity Unit of Measure Code Direct Unit Cost Excl. Tax Tax Group Code Line Discount % Line Amount Excl. Tax Qty. to Assign Qty. Assigned
Item 1000 Test Item MAIN 1 PCS 100.00 NONTAXABLE 50 50.00 0

And I see Total Incl. Tax (USD) = 50.00. As a user, I proceed to post the Purchase Invoice because it looks like it reflects the reality of the transaction. At this point, I expect the AP account to increase in magnitude by $50.

When I look at my AP account, I see that its magnitude increased by $100! When I go to pay the vendor So I dig a little further…

I repeat the transaction and before I post, I examine “Preview Posting → G/L Entry” and find:

New Company, set up using “Production - Setup Data Only”
Posting Date Document Type Doc No G/L Account No Description Gen Posting Type Gen Bus Posting Group Gen Prod Posting Group Amount Bal Account Type Bal Acct No
3/13/2019 *** 10700 Direct Cost V00010 on 03/13/19 100 G/L Account
3/13/2019 *** 10700 Direct Cost V00010 on 03/13/19 -100 G/L Account
3/13/2019 Invoice *** 20200 Invoice 107002 Purchase DOMESTIC NO TAX -50 G/L Account
3/13/2019 Invoice *** 10700 Invoice 107002 Purchase DOMESTIC NO TAX 150 G/L Account
3/13/2019 Invoice *** 20100 Invoice 107002 -100 G/L Account

At this point, I suspected something in the configuration, so I tested the Cronus company in the same tenant:

CRONUS
Posting Date Document Type Doc No G/L Account No Description Gen Posting Type Gen Bus Posting Group Gen Prod Posting Group Amount Bal Account Type Bal Acct No
4/9/2018 *** 10700 Direct Cost 20000 on 04/09/18 50 G/L Account
4/9/2018 *** 10700 Direct Cost 20000 on 04/09/18 -50 G/L Account
4/9/2018 Invoice *** 20200 Invoice 107214 Purchase DOMESTIC NO TAX -50 G/L Account
4/9/2018 Invoice *** 10700 Invoice 107214 Purchase DOMESTIC NO TAX 100 G/L Account
4/9/2018 Invoice *** 20100 Invoice 107214 -50 G/L Account

Notably, the Direct Cost lines are calculating differently: Cronus deducts the discount, New Company does not.

Here is the database line (Table 39, Purchase Line) from New Company:

Document Type Buy-from Vendor No. Document No. Line No. Type No. Location Code Posting Group Expected Receipt Date Description Description 2 Unit of Measure Quantity Outstanding Quantity Qty. to Invoice Qty. to Receive Direct Unit Cost Excl. Tax Unit Cost ($) Tax % Line Discount % Line Discount Amount Amount Amount Including Tax Unit Price ($) Allow Invoice Disc. Gross Weight Net Weight Units per Parcel Unit Volume Appl.-to Item Entry Shortcut Dimension 1 Code Shortcut Dimension 2 Code Job No. Indirect Cost % Recalculate Invoice Disc. Outstanding Amount Qty. Rcd. Not Invoiced Amt. Rcd. Not Invoiced Quantity Received Quantity Invoiced Receipt No. Receipt Line No. Order No. Order Line No. Profit % Vendor No. Inv. Discount Amount Vendor Item No. Sales Order No. Sales Order Line No. Drop Shipment Gen. Bus. Posting Group Gen. Prod. Posting Group VAT Calculation Type Transaction Type Transport Method Attached to Line No. Entry Point Area Transaction Specification Tax Area Code Tax Liable Tax Group Code Use Tax Tax Bus. Posting Group Tax Prod. Posting Group Currency Code Outstanding Amount ($) Amt. Rcd. Not Invoiced ($) Reserved Quantity Blanket Order No. Blanket Order Line No. Tax Base Amount Unit Cost System-Created Entry Line Amount Excl. Tax Tax Difference Inv. Disc. Amount to Invoice Tax Identifier IC Partner Ref. Type IC Partner Reference Prepayment % Prepmt. Line Amount Excl. Tax Prepmt. Amt. Inv. Excl. Tax Prepmt. Amt. Incl. Tax Prepayment Amount Prepmt. Tax Base Amt. Prepayment Tax % Prepmt. Tax Calc. Type Prepayment Tax Identifier Prepayment Tax Area Code Prepayment Tax Liable Prepayment Tax Group Code Prepmt Amt to Deduct Excl. Tax Prepmt Amt Deducted Excl. Tax Prepayment Line Prepmt. Amount Inv. Incl. Tax Prepmt. Amount Inv. ($) IC Partner Code Prepmt. Tax Amount Inv. ($) Prepayment Tax Difference Prepmt Tax Diff. to Deduct Prepmt Tax Diff. Deducted Outstanding Amt. Ex. Tax ($) A. Rcd. Not Inv. Ex. Tax ($) Pmt. Discount Amount Dimension Set ID Job Task No. Job Line Type Job Unit Price Job Total Price Job Line Amount Job Line Discount Amount Job Line Discount % Job Unit Price ($) Job Total Price ($) Job Line Amount ($) Job Line Disc. Amount ($) Job Currency Factor Job Currency Code Job Planning Line No. Job Remaining Qty. Job Remaining Qty. (Base) Deferral Code Returns Deferral Start Date Prod. Order No. Variant Code Bin Code Qty. per Unit of Measure Unit of Measure Code Quantity (Base) Outstanding Qty. (Base) Qty. to Invoice (Base) Qty. to Receive (Base) Qty. Rcd. Not Invoiced (Base) Qty. Received (Base) Qty. Invoiced (Base) Reserved Qty. (Base) FA Posting Date FA Posting Type Depreciation Book Code Salvage Value Depr. until FA Posting Date Depr. Acquisition Cost Maintenance Code Insurance No. Budgeted FA No. Duplicate in Depreciation Book Use Duplication List Responsibility Center Cross-Reference No. Unit of Measure (Cross Ref.) Cross-Reference Type Cross-Reference Type No. Item Category Code Catalog Purchasing Code Product Group Code Special Order Special Order Sales No. Special Order Sales Line No. Whse. Outstanding Qty. (Base) Completely Received Requested Receipt Date Promised Receipt Date Lead Time Calculation Inbound Whse. Handling Time Planned Receipt Date Order Date Allow Item Charge Assignment Qty. to Assign Qty. Assigned Return Qty. to Ship Return Qty. to Ship (Base) Return Qty. Shipped Not Invd. Ret. Qty. Shpd Not Invd.(Base) Return Shpd. Not Invd. Return Shpd. Not Invd. ($) Return Qty. Shipped Return Qty. Shipped (Base) Return Shipment No. Return Shipment Line No. Return Reason Code Subtype Copied From Posted Doc. Attached Doc Count Tax To Be Expensed Provincial Tax Area Code IRS 1099 Liable GST/HST Routing No. Operation No. Work Center No. Finished Prod. Order Line No. Overhead Rate MPS Order Planning Flexibility Safety Lead Time Routing Reference No.
Invoice V00010 107003 10000 Item 1000 MAIN RESALE 3/15/2019 Test Item Piece 1 1 1 1 100.00 50.00 0 50 50.00 50.00 50.00 0.00 Yes 0 0 0 0 0 0 No 50.00 0 0.00 0 0 0 0 0 V00010 0.00 1000 0 No DOMESTIC NO TAX Sales Tax 0 Yes NONTAXABLE No 50.00 0.00 0 0 50.00 50.00 No 50.00 0.00 0.00 0 0.00 0.00 0.00 0.00 0.00 0 Normal VAT Yes 0.00 0.00 No 0.00 0.00 0.00 0.00 0.00 0.00 50.00 0.00 0.00 0 0 0.00 1 PCS 1 1 1 1 0 0 0 0 0.00 No No No ACCESSORIES No No 0 No 12D 2/15/2019 2/3/2019 Yes 0 0 0 0 0 0 0.00 0.00 0 0 0 No 0 0.00 No No 0 0 No Unlimited D15 0

So after looking at this, it appears that the posting routine is taking the amount from the Direct Unit Cost field, not the Amount field or the Outstanding Amount field (which even shows $50!).

That indeed looks very strange.

How does the vendor (+detailed) ledger entries look? And what does the posted purchase invoice say?

Great question, and reveals something, but I don’t know what. Here is each ledger, showing the full, non-discounted amount for each one (I expected the discounted amount). Here is Vendor Ledger Entry (Preview Posting) from the bad configuration:

Posting Date Document Type Document No. External Document No. Vendor No. Message to Recipient Description Currency Code Payment Method Code Payment Reference Creditor No. Original Amount Amount Remaining Amount Due Date Pmt. Discount Date Pmt. Disc. Tolerance Date Original Pmt. Disc. Possible Remaining Pmt. Disc. Possible Max. Payment Tolerance Open On Hold Exported to Payment File
3/14/2019 Invoice *** ASDFERTSDFG V00010 Invoice 107003 BANK -100.00 -100.00 -100.00 4/14/2019 3/22/2019 3/22/2019 -2.00 -2.00 -0.10 Yes No

And the Detailed Vendor Ledger Entry:

POSTING DATE ENTRY TYPE DOCUMENT TYPE DOCUMENT NO. VENDOR NO. CURRENCY CODE AMOUNT AMOUNT ($) INITIAL ENTRY DUE DATE
3/14/2019 Initial Entry Invoice *** V00010 -100.00 -100.00 4/14/2019

And the Vendor Ledger Entry for the base Cronus configuration:

Posting Date Document Type Document No. External Document No. Vendor No. Message to Recipient Description Currency Code Payment Method Code Payment Reference Creditor No. Original Amount Amount Remaining Amount Due Date Pmt. Discount Date Pmt. Disc. Tolerance Date Original Pmt. Disc. Possible Remaining Pmt. Disc. Possible Max. Payment Tolerance Open On Hold Exported to Payment File
4/9/2018 Invoice *** ADFGRTAE A 20000 Invoice 107212 BANK -50.00 -50.00 -50.00 4/30/2018 4/9/2018 4/9/2018 0.00 0.00 -0.05 Yes No

And the Detailed Vendor Ledger Entry:

Posting Date Entry Type Document Type Document No. Vendor No. Currency Code Amount Amount ($) Initial Entry Due Date
4/9/2018 Initial Entry Invoice *** 20000 -50.00 -50.00 4/30/2018

Running an actual posting of each document mirrors the Preview Posting above. The amounts flow through the various registers and result in the following suggested payment in Payment Jourals → Suggest Vendor Payments:

Posting Date Document Date Document Type Document No. External Document No. Account Type Account No. Recipient Bank Account Description Currency Code Payment Method Code Payment Reference Amount Bal. Account Type Bal. Account No. Applied (Yes/No) Applies-to Doc. Type Applies-to Doc. No. Applies-to Doc. Due Date Bank Payment Type Transaction Type Code Check Printed
3/29/2019 3/29/2019 Payment G04002 Vendor V00010 Test Vendor BANK 100.00 G/L Account 10100 Yes Invoice 108004 4/14/2019 BUS No

I am really at a loss here and hoping that someone has seen this effect. Again, this is happening in the US implementation after selecting the “Production Data - Setup Data Only” option during company setup. The Cronus is the standard Evaluation setup on the same tenant.

Update for anyone who is watching or experiencing this issue: This is a platform bug; track the issue at ID# 306145.