4

- Core issue: When posting a grouped sales invoice (multiple SOs) with header discount and “Tax included in price” = Yes, TradeTotals produces an invoice-level discount (endDisc) that differs from the sum of per-line discounts by a small rounding residue (example: 0.01). That residue prevents the voucher balancing check (accounting vs reporting currency totals) from passing and blocks posting.


- Contributing factors: per-line rounding semantics in tax-included computations, large amounts (amplifying rounding residues), multi-order aggregation, and currency conversions (accounting vs reporting) which can propagate small differences into balancing failures.


- Impact: High operational impact for the customer (significant percentage of invoices blocked) but the code change affects financial posting math and has regulatory/compliance risk .


- Root cause: There is no penny-adjustment routine for invoice-level discounts in the “tax included in price” code path. The system computes line discounts and an aggregated endDisc using slightly different rounding/aggregation steps for tax-included pricing; because adjustEndDiscBalance() is explicitly disabled when isTaxIncluded = true, the tiny residual created by per-line rounding is not corrected. That uncorrected residual (e.g., 0.01) causes the voucher balancing verification to fail after currency conversions, preventing the post.


- Request: Allow posting when a SO invoice is posted, that groups two sales orders that include taxes and a discount in the header and the currency and reporting currency are configured differently.





STATUS DETAILS
New