Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FW][FIX] account: compute tax ordering #156024

Commits on Mar 1, 2024

  1. [FIX] account: compute tax ordering

    **Issue Description**:
    Currently, the order in which taxes are applied can vary based on the sequence they are entered in the invoice's Taxes field. This inconsistency arises when the tax list is not manually adjusted, leading to each tax having an identical sequence value. As a result, their hierarchy within the `flatten_taxes_hierarchy` function is determined by their input order rather than a defined sequence, causing unpredictable tax calculations.
    https://github.com/odoo/odoo/blob/56666f8f7858fcbcce466d2240135b35509d2d96/addons/account/models/account_tax.py#L611-L632
    
    A tax sequence should be explicitly defined, and in cases where sequences are identical, organization by tax ID should be enforced.
    
    **Steps to Reproduce**:
    1. Navigate to the `Account` or `Invoice` application.
    2. Go to `Configuration > Taxes`.
    3. Create a new tax with the advanced option `Affect Base of Subsequent Taxes` and specify an amount.
    4. Generate a new invoice and add a line item priced at 100.
    5. Apply taxes in the `Taxes` column in the following order: 15% followed by the newly created tax, and note the total amount.
    6. Repeat step 5, but reverse the order of the taxes.
    7. Observe that the total amounts differ between the two sequences.
    
    **Proposed Solution**:
    To ensure that taxes are applied consistently regardless of input order, we will modify the `flatten_taxes_hierarchy` function to add sorting by id. If the sequences are identical, the sorting will depend only on the id, otherwise it will be based on the sequence. This setting ensures a predictable and logical process for applying taxes.
    
    opw-3691765
    
    X-original-commit: 516c471
    ilru-odoo authored and smetl committed Mar 1, 2024
    Configuration menu
    Copy the full SHA
    265ea2c View commit details
    Browse the repository at this point in the history