[
https://issues.apache.org/jira/browse/FINERACT-2744?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Foo Developer updated FINERACT-2744:
------------------------------------
External issue URL: https://github.com/apache/fineract/pull/6237
> Tax (VAT) on savings account charges is not calculated or posted to the
> correct GL account
> ------------------------------------------------------------------------------------------
>
> Key: FINERACT-2744
> URL: https://issues.apache.org/jira/browse/FINERACT-2744
> Project: Apache Fineract
> Issue Type: Bug
> Components: Accounting, Savings
> Reporter: Foo Developer
> Assignee: Foo Developer
> Priority: Major
> Labels: beginner, beginner-friendly
>
> When a **Charge** associated with a **Tax Group** is applied to a **Savings
> Account**, the tax component is not processed correctly. The charge is posted
> using only its base amount, with no tax calculation, tax breakdown, or
> separate journal entry for the tax liability.
> After enabling tax calculation, the calculated tax amount is incorrectly
> posted to the charge's **income GL account** instead of the **Tax/VAT Payable
> GL account** configured on the Tax Component. As a result:
> * The income GL is overstated because it includes the tax amount.
> * The tax liability is never recorded in its designated GL account,
> preventing proper tracking and tax reporting.
> This issue affects both **cash-based** and **accrual-based** accounting for
> **Savings Account** charges, including both **fees** and **penalties**.
> **Steps to Reproduce**
> 1. Create a Tax Component (e.g. VAT 5%) and a Tax Group containing it.
> 2. Create a Charge, assign the Tax Group to it, and associate the Charge with
> a Savings Product.
> 3. Open a Savings Account using that product and apply the charge (e.g. base
> amount = 100).
> 4. Pay the charge / process the transaction.
> 5. Review the Savings Account transaction and the generated Journal Entries
> (Accounting → Journal Entries).
> **Actual Result**
> * The charge is posted using only the base amount (100), with no tax
> calculation or tax breakdown.
> * When tax calculation is available, the entire charge amount (base + tax) is
> credited to the charge's income GL account, and no entry is posted to the
> configured Tax Payable GL account.
> **Expected Result**
> * The charge amount should include all Tax Group components (e.g. base 100 +
> VAT 5 = total 105), with the transaction displaying a per-component tax
> breakdown.
> * Journal entries should be split correctly:
> * The base charge amount (100) should be credited to the charge's income GL
> account.
> * The tax amount (5) should be credited to the Tax Component's configured
> Tax/VAT Payable GL account.
> * The same accounting behavior should apply to both cash-based and
> accrual-based accounting, including transaction reversals.
> **Additional Notes**
> The implementation also addresses several related Tax Group/Component issues:
> * Fixed the **TaxComponent ↔ TaxComponentHistory** mapping by replacing the
> incorrect unidirectional relationship with a proper bidirectional mapping.
> * Added the missing **id** and **endDate** fields to the
> **TaxGroupComponent** request DTO to support updating existing tax group
> mappings.
> * Improved validation by returning a clear, user-friendly error message when
> a Tax Group is submitted with an empty **tax-components** array.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)