Monday, September 23, 2024
28 changes · saas-17.4
Resolved issues and error corrections
This update completes a prior renaming of an internal translation marker used by the website editor. It helps ensure translated website content continues to be tracked and edited correctly after the naming change.
Original PR description
Commit [06346b04] replaced `oe-translation-initial-sha` with `oe-translation-source-sha`. A few occurrences in the code were missed. [06346b04]: https://github.com/odoo/odoo/commit/06346b049a3a13a9a8b63a4f60151ec24fabb59e (No related task)
This fix prevents the Point of Sale from failing when a product does not have an Indian HSN code set. Staff can add these products to orders normally, reducing checkout interruptions for affected stores.
Original PR description
Before this commit, adding a product without the l10n_in_hsn_code field to an order would cause an error, as the system expected this field to be a string. opw-4183959 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures barcode labels in generated reports use a valid fallback font when the usual Courier font is unavailable. It prevents misaligned human-readable barcode text, improving reliability of printed documents across server environments.
Original PR description
With new Type 1 font constraints and the fonts-urw-base35 package, the 'Courier' font may not be available and we have to use the substitution font. However, the delivered afm files lack the required Ascender/Descender for reportlab to correctly position the human readable part of barcodes. task: 4179663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sales documents using the German DIN 5008 layout now display dates and other fields according to the recipient’s language and locale settings. This prevents confusing, one-size-fits-all formatting and helps business documents look correct for each customer.
Original PR description
Change field calling convention to support dynamic localization and language formatting. Currently, all fields are called with `t-out` instead of `t-field`, making them non-language and non-locale-sensitive, which results in a uniform format regardless of user preferences. owp-4189869 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The cart summary now avoids showing the delivery price where it should be hidden. This prevents customers from seeing misleading shipping cost information during checkout.
Original PR description
Backport of https://github.com/odoo/odoo/pull/180735 opw-4184298
This fixes an error that occurred when moderators tried to validate a flagged forum post. Restoring the approval action keeps forum moderation working smoothly and prevents interruptions in reviewing reported content.
Original PR description
Purpose ======= Fix the traceback appearing when trying to validate a flagged post. Specification ============= In this commit odoo/odoo@876ebbee6b769c18172e6a61bd7248ee4c034ca7 the validate method has been changed to be private as it didn't look like it was called from the JS. However when validating a flagged post, the name of the orm method to call through JS is actually hidden being the current target data-action. Changing back the '_validate' method to be public so that it can be called from the JS again. Task-4163955 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Field Service task forms on mobile now hide the project field when there is only one Field Service project, reducing unnecessary choices for users. The phone field also shows a helpful placeholder when empty, making task creation and editing clearer on mobile devices.
Original PR description
Before this commit, the project in the form view is no longer hidden in mobile in My Tasks of Field Services due to some changes in the form view of tasks. This commit updates the form view to make sure to project field is correctly hidden in mobile when there is only one fsm project. This commit also adds a placeholder on partner_phone field to make sure the user knows which field it is when it is empty since no label is displayed for that field when he is in mobile. task-4189791
The Journal Report audit view now respects the selected journal when reviewing the Global Tax Summary. This helps users see only the relevant accounting entries and reduces confusion during tax review.
Original PR description
To reproduce: 1) Create a customer invoice, with a tax and post it 2) Open the Journal Report 3) In the journals filter, select the journal used in 1) 4) In the Global Tax Summary, at the bottom of the report, click on "Audit" ==> The tree view that opens does not filter the move lines on the select journal. When there is only one journal selected, it should. In the meantime, we make the selection of the journal to use in that filter a little more robust, in the same spirit as on this fix: https://github.com/odoo/enterprise/pull/69876
Miscellaneous changes
Open POS Session Add a product with tax Checkout and Pay order Close POS Session Check generated move Now create an invoice, with same product and tax Confirm Open Tax Reports Two entries will be present, with correct amounts Activate 'Group by: Account>Tax' option Issue: Base line amount is not correct This occurs because in the tax details query we group by display_type of the lines. When POS creates closing session move, lines will not have the proper display_type assigned, s
Original PR description
Open POS Session Add a product with tax Checkout and Pay order Close POS Session Check generated move Now create an invoice, with same product and tax Confirm Open Tax Reports Two entries will be present, with correct amounts Activate 'Group by: Account>Tax' option Issue: Base line amount is not correct This occurs because in the tax details query we group by display_type of the lines. When POS creates closing session move, lines will not have the proper display_type assigned, so for example, tax lines will have display_type 'product'. opw-4125791 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180864
The issue was recently fixed with a sudo, but it allowed standard salesman/users to create discount products and update the company, which ideally shouldn't happen. Since a single use of the wizard by the admin will properly create the discount product, we prefer to encourage the user to request the admin to do it first instead of bypassing the standard access rights. opw-4048403 Forward-Port-Of: odoo/odoo#180298 Forward-Port-Of: odoo/odoo#180221
Original PR description
The issue was recently fixed with a sudo, but it allowed standard salesman/users to create discount products and update the company, which ideally shouldn't happen. Since a single use of the wizard by the admin will properly create the discount product, we prefer to encourage the user to request the admin to do it first instead of bypassing the standard access rights. opw-4048403 Forward-Port-Of: odoo/odoo#180298 Forward-Port-Of: odoo/odoo#180221
Steps to reproduce: 1. Create a new course 2. Go to front-end. 3. Click on the 'Add tag' button. 4. Throws a traceback Technical Reason: When creating a website slide for the first time, channelTagIds are undefined, causing JSON.parse to throw an error. After this Commit: No traceback will occur. Task-4154899 Forward-Port-Of: odoo/odoo#179307
Original PR description
Steps to reproduce: 1. Create a new course 2. Go to front-end. 3. Click on the 'Add tag' button. 4. Throws a traceback Technical Reason: When creating a website slide for the first time, channelTagIds are undefined, causing JSON.parse to throw an error. After this Commit: No traceback will occur. Task-4154899 Forward-Port-Of: odoo/odoo#179307
Purpose ======= Fix the validation button of a flagged post that wasn't doing anything when clicking on it. Specification ============= Adding a missing css class named 'o_wforum_flag_alert' that was forgotten during the front-end redesign odoo/odoo@21531bd9b9ac24bec57665432d9c18c807c31b44. The alert banner is now correctly hidden at validation. Task-4163955 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179263
Original PR description
Purpose ======= Fix the validation button of a flagged post that wasn't doing anything when clicking on it. Specification ============= Adding a missing css class named 'o_wforum_flag_alert' that was forgotten during the front-end redesign odoo/odoo@21531bd9b9ac24bec57665432d9c18c807c31b44. The alert banner is now correctly hidden at validation. Task-4163955 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179263
The employees created in the demo data (see https://github.com/odoo/odoo/pull/108795) of sale_timesheet were linked to the wrong partners, we then create new partners dedicated to those new employees. version-17.2 task-3874828 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179624
Original PR description
The employees created in the demo data (see https://github.com/odoo/odoo/pull/108795) of sale_timesheet were linked to the wrong partners, we then create new partners dedicated to those new employees. version-17.2 task-3874828 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179624
Steps to reproduce: - install only `timesheet_grid` - run `test_analytic_account_branches` Issue: An access error is raised Cause: https://github.com/odoo/odoo/blob/8029b467dacaf9e34b21db52b148a2963efb29e4/addons/hr_timesheet/security/hr_timesheet_security.xml#L33-L44 So the analytic line should have a project_id set. Solution: Unlkink the groupe if existing runbot-97783 Forward-Port-Of: odoo/odoo#180001
Original PR description
Steps to reproduce: - install only `timesheet_grid` - run `test_analytic_account_branches` Issue: An access error is raised Cause: https://github.com/odoo/odoo/blob/8029b467dacaf9e34b21db52b148a2963efb29e4/addons/hr_timesheet/security/hr_timesheet_security.xml#L33-L44 So the analytic line should have a project_id set. Solution: Unlkink the groupe if existing runbot-97783 Forward-Port-Of: odoo/odoo#180001
Steps to reproduce: - Time off > Configuration > Time off types > New - Set 'Requires Allocation' to 'No Limit' - Takes leaves of this type - Set 'Requires Allocation' to 'Yes' - Approvals > Allocations > New > Select your time off type - Edit validity period to start after the leaves you took - Confirm > Click on the newly created allocation - Displays -X remaining out of Y The allocations try to cover leaves taken before the requirement was changed, when we'd expect leaves taken und
Original PR description
Steps to reproduce: - Time off > Configuration > Time off types > New - Set 'Requires Allocation' to 'No Limit' - Takes leaves of this type - Set 'Requires Allocation' to 'Yes' - Approvals >…
Steps to reproduce: - Time off > Configuration > Time off types > New - Set 'Requires Allocation' to 'No Limit' - Takes leaves of this type - Set 'Requires Allocation' to 'Yes' - Approvals > Allocations > New > Select your time off type - Edit validity period to start after the leaves you took - Confirm > Click on the newly created allocation - Displays -X remaining out of Y The allocations try to cover leaves taken before the requirement was changed, when we'd expect leaves taken under No Limit mode not to require any. This is problematic because it can happen with past leaves as well, which we cannot get rid of on production databases. Since Odoo does not track which allocation requirement mode leave are taken under nor the date and content of edits to that parameter, we cannot tell apart leaves of the same type when distributing allocated days. Tracking either would certainly require edits to the model which rules out stable versions, so instead the edits to allocation requirement should be restricted in favor of creating new time off types when we want to switch that parameter. opw-3919886 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180773 Forward-Port-Of: odoo/odoo#180566
[FIX] base: Manage list operators for name search Description of the issue/feature this PR addresses: - Searching contact with country state not working if we check in a list. - Not possible to define a domain with "in" for state_id field of res.partner Steps: - Setup a record rule for res.partner - With domain "[('state_id', 'in', ['A', 'B', 'C'])]" - Save Actual result: - Invalid domain: expected string or bytes-like object Expected result: - Domain is saved - List values h
Original PR description
[FIX] base: Manage list operators for name search
Description of the issue/feature this PR addresses:
- Searching contact with country state not working if we check in a list.
- Not possible to define a domain with "in" for state_id field of res.partner
Steps:
- Setup a record rule for res.partner
- With domain "[('state_id', 'in', ['A', 'B', 'C'])]"
- Save
Actual result:
- Invalid domain: expected string or bytes-like object
Expected result:
- Domain is saved
- List values handle "display_name" searching too
opw-3830039
odoo/odoo@aacd64a1
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#167798
Forward-Port-Of: odoo/odoo#159424In some occasions, Authorize would decline a payment and provide the reason for it, but not mark the payment as in error. The customer would see that their payment is cancelled but not know what to do. That is because error messages were not processed in the case of declined payments. This commit makes eventual error messages (decline reasons) logged on the linked document's chatter and displayed on the /payment/status page. opw-4125895 Forward-Port-Of: odoo/odoo#179805 Forward-Port-Of: o
Original PR description
In some occasions, Authorize would decline a payment and provide the reason for it, but not mark the payment as in error. The customer would see that their payment is cancelled but not know what to do. That is because error messages were not processed in the case of declined payments. This commit makes eventual error messages (decline reasons) logged on the linked document's chatter and displayed on the /payment/status page. opw-4125895 Forward-Port-Of: odoo/odoo#179805 Forward-Port-Of: odoo/odoo#178401
Avoid sending more emails than necessary at events We want to make sure that in all mails sent from the calendar event, the recipients are only the ones we want and avoid sending them to 'indirect' followers. Examples use case: - Subtype Notes with Default checked. - Several Attendees set (including several users). - Each invitation email must be sent only to the corresponding attendee, no one else. - Each event reminder email must reach only the corresponding attendee, no one else.
Original PR description
Avoid sending more emails than necessary at events We want to make sure that in all mails sent from the calendar event, the recipients are only the ones we want and avoid sending them to 'indirect'…
Avoid sending more emails than necessary at events We want to make sure that in all mails sent from the calendar event, the recipients are only the ones we want and avoid sending them to 'indirect' followers. Examples use case: - Subtype Notes with Default checked. - Several Attendees set (including several users). - Each invitation email must be sent only to the corresponding attendee, no one else. - Each event reminder email must reach only the corresponding attendee, no one else. Example use case in runbot v16 **before** this change.  Example use case **after** this change.  @Tecnativa TT50302 Ping @pedrobaeza and @carlosdauden --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180164 Forward-Port-Of: odoo/odoo#174494
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* > *Configuration* > *Stock/Input* form) * create an SO for 5 units of a storable product (say P) * (put at least 5 of P available in stock) * confirm it > go to the delivery > validate * *Return* > from the wizard set *Stock/Input* as the return location * validate the `Customers -> Input`
Original PR description
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* >…
Steps --- * install `stock`, `sale_management` * configure reception in 2 steps (*Setting > Multi-step routes* + *Configure Warehouse Routes*) * make *Stock/Input* a return location (*Inventory* > *Configuration* > *Stock/Input* form) * create an SO for 5 units of a storable product (say P) * (put at least 5 of P available in stock) * confirm it > go to the delivery > validate * *Return* > from the wizard set *Stock/Input* as the return location * validate the `Customers -> Input` receipt * validate the `Input -> Stock` internal transfer * => on the orignal SO the delivered quantity is now -5 instead of 0 Cause --- When generating moves in a push rules, we copy the fields of the generating move, including `to_refund`, so both moves affect the delivered quantity. But when we check if a return move should affect the delivered/received qty on SO/POs, we only check the `usage` of the destination location; so in the case of multi-step routes, moves further down the chain will affect the qty twice or more, and we will have a negative delivered quantity Fix --- Use a stricter check to determined which moves should affect SO quantities opw-4129497 Forward-Port-Of: odoo/odoo#180048 Forward-Port-Of: odoo/odoo#178392
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts to each line's analytic_distribution 4. Add a payment term with applicable early discount 5. Confirm and Register Payment 6. Go to the Journal Entry related to the Invoice 7. Check the Invert Tags (developer mode), one of them is set to True, which should not be the case ### Explanation:
Original PR description
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts…
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts to each line's analytic_distribution 4. Add a payment term with applicable early discount 5. Confirm and Register Payment 6. Go to the Journal Entry related to the Invoice 7. Check the Invert Tags (developer mode), one of them is set to True, which should not be the case ### Explanation: In the current situation, `_compute_is_refund` and `_compute_tax_tag_invert` will assign a value to `tax_tag_invert` depending on the `account.move.line.balance`. Because of the distinct analytic accounts, the negative line is separated from the others and because of the logic behind the computes, `tax_tag_invert` is set to the opposite value. ### Fix reasoning: While `account.payment` are restricted to `account.move` with the same direction, `account.bank.statement.line` are not. In the current case, the affected lines all have `tax_ids` values. Thanks to this, we can use `account.tax.type_tax_use` independently of the line's balance to differentiate in and out transactions and assign `tax_tag_invert` consistently. We must also consider the case where `account.bank.statement.line`. To target the Early Payment Discount lines, we will separate them from the other values using `display_type`. opw-3989174 Forward-Port-Of: odoo/odoo#180797 Forward-Port-Of: odoo/odoo#170499
A patch was backported in python 3.12.3-1ubuntu0.2 on ubuntu noble breaking the address parsing. Odoo relies on the non strict behavior but the strict was introduced as the default one. This commit conditionally checks if the patch is present and reverts it to the previous behavior. test_email_split unittest was used for testing in both version ( 3.12.3-1ubuntu0.1 and 3.12.3-1ubuntu0.2)3.10.3-ubuntu0.1 References: https://launchpad.net/ubuntu/+source/python3.12/3.12.3-1ubuntu0.2 Ba
Original PR description
A patch was backported in python 3.12.3-1ubuntu0.2 on ubuntu noble breaking the address parsing. Odoo relies on the non strict behavior but the strict was introduced as the default one. This commit conditionally checks if the patch is present and reverts it to the previous behavior. test_email_split unittest was used for testing in both version ( 3.12.3-1ubuntu0.1 and 3.12.3-1ubuntu0.2)3.10.3-ubuntu0.1 References: https://launchpad.net/ubuntu/+source/python3.12/3.12.3-1ubuntu0.2 Backported patch: python/cpython@4a153a1d3b18803a684cd1bcc2cdf3ede3dbae19 Forward-Port-Of: odoo/odoo#180703
Unfolding a report line calls an expand function which is responsible to run an SQL query in order to compute the sub-lines (typically the result of a groupby, but it can be something else on custom report). Not flushing was a mistake and could lead to inconsitencies. Forward-Port-Of: odoo/enterprise#70394 Forward-Port-Of: odoo/enterprise#70187
Original PR description
Unfolding a report line calls an expand function which is responsible to run an SQL query in order to compute the sub-lines (typically the result of a groupby, but it can be something else on custom report). Not flushing was a mistake and could lead to inconsitencies. Forward-Port-Of: odoo/enterprise#70394 Forward-Port-Of: odoo/enterprise#70187
The titles in calendar sync and ICS files were irrelevant for resource appointment events because of the custom titles created for appointments. This PR fixes the issue of incorrect titles in calendar sync and ICS files. Task-3919395 Forward-Port-Of: odoo/enterprise#69041
Original PR description
The titles in calendar sync and ICS files were irrelevant for resource appointment events because of the custom titles created for appointments. This PR fixes the issue of incorrect titles in calendar sync and ICS files. Task-3919395 Forward-Port-Of: odoo/enterprise#69041
Issue ---- When clicking an account report cell with the cash basis filter on, `account_reports_cash_basis.account_report.action_audit_cell` adds a domain to filter out `account.move.line`s that don't belong to the cash basis criteria. However, the model is not always an `account.move.line`. If an analytic account column is added with the "Analytic Group By" option, the model is `account.analytic.line`, which results in a field not found error. Steps ---- - Go to Accounting -> Report
Original PR description
Issue ---- When clicking an account report cell with the cash basis filter on, `account_reports_cash_basis.account_report.action_audit_cell` adds a domain to filter out `account.move.line`s that don't belong to the cash basis criteria. However, the model is not always an `account.move.line`. If an analytic account column is added with the "Analytic Group By" option, the model is `account.analytic.line`, which results in a field not found error. Steps ---- - Go to Accounting -> Reporting -> Profit and Loss. - From the Options button above, select "Cash Basis Method". - From the Analytic Group By button, add an analytic account in the "Accounts" filter. - Click on a cell under the analytic account's column. - An error is thrown. Cause ---- Domain is applied on the wrong model. opw-4034786 Forward-Port-Of: odoo/enterprise#68094 Forward-Port-Of: odoo/enterprise#66890
This **PR** introduces support for country specific VAT labels to be displayed on their reports and replaces 'VAT' with 'Tax ID'. **task**-4163352 Forward-Port-Of: odoo/enterprise#69506
Original PR description
This **PR** introduces support for country specific VAT labels to be displayed on their reports and replaces 'VAT' with 'Tax ID'. **task**-4163352 Forward-Port-Of: odoo/enterprise#69506
### Steps to reproduce the issue: 1. Activate Colombian localization 2. Create an Invoice and Confirm 3. Go to _Accounting > Configuration > Journals_ 4. Select Customer Invoices, set Nota de Débito to True and Save 5. Go back to your Invoice, its Electronic Invoice Type is now "Nota Débito" 6. Set Nota de Débito to False in the Customer Invoices Journal 7. Return once again to you Invoice, its Electronic Invoice Type did not change ### Explanation: When the user changes `l10n_co_
Original PR description
### Steps to reproduce the issue: 1. Activate Colombian localization 2. Create an Invoice and Confirm 3. Go to _Accounting > Configuration > Journals_ 4. Select Customer Invoices, set Nota de Débito…
### Steps to reproduce the issue: 1. Activate Colombian localization 2. Create an Invoice and Confirm 3. Go to _Accounting > Configuration > Journals_ 4. Select Customer Invoices, set Nota de Débito to True and Save 5. Go back to your Invoice, its Electronic Invoice Type is now "Nota Débito" 6. Set Nota de Débito to False in the Customer Invoices Journal 7. Return once again to you Invoice, its Electronic Invoice Type did not change ### Explanation: When the user changes `l10n_co_edi_debit_note` in an `account.journal`, it changes this value for all entries in said `account.journal`, not only the ones in draft state. https://github.com/odoo/enterprise/blob/9137e5d9f2690bfe375436c83356ebaa4bd7e8c6/l10n_co_edi/models/account_invoice.py#L65 `_compute_l10n_co_edi_type` depending on `l10n_co_edi_debit_note`, it is called and, if the change is from False to True, `l10n_co_edi_type` is changed to a specific value. https://github.com/odoo/enterprise/blob/9137e5d9f2690bfe375436c83356ebaa4bd7e8c6/l10n_co_edi/models/account_invoice.py#L72-L81 If `l10n_co_edi_debit_note` is set back to False, `l10n_co_edi_type` is not reverted to its previous value and the user can not manually change this field for posted or cancelled entries. ### Fix reasoning: To avoid such situation from happening, the field will be restricted for journals with entries in a non draft state. opw-4174980 Forward-Port-Of: odoo/enterprise#70330 Forward-Port-Of: odoo/enterprise#70133
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts to each line's analytic_distribution 4. Add a payment term with applicable early discount 5. Confirm and Register Payment 6. Go to the Journal Entry related to the Invoice 7. Check the Invert Tags (developer mode), one of them is set to True, which should not be the case ### Explanation:
Original PR description
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts…
### Steps to reproduce the issue: 1. Create a Customer Invoice with two product lines 2. Give a negative price to one of those lines, the total must remain positive 3. Add distinct analytic accounts to each line's analytic_distribution 4. Add a payment term with applicable early discount 5. Confirm and Register Payment 6. Go to the Journal Entry related to the Invoice 7. Check the Invert Tags (developer mode), one of them is set to True, which should not be the case ### Explanation: In the current situation, `_compute_is_refund` and `_compute_tax_tag_invert` will assign a value to `tax_tag_invert` depending on the `account.move.line.balance`. Because of the distinct analytic accounts, the negative line is separated from the others and because of the logic behind the computes, `tax_tag_invert` is set to the opposite value. ### Fix reasoning: While `account.payment` are restricted to `account.move` with the same direction, `account.bank.statement.line` are not. In the current case, the affected lines all have `tax_ids` values. Thanks to this, we can use `account.tax.type_tax_use` independently of the line's balance to differentiate in and out transactions and assign `tax_tag_invert` consistently. We must also consider the case where `account.bank.statement.line`. To target the Early Payment Discount lines, we will separate them from the other values using `display_type`. opw-3989174 Forward-Port-Of: odoo/enterprise#70328 Forward-Port-Of: odoo/enterprise#69835
### Issue Invoices using consumable intra-community taxes are currently counted twice in the EC Sales Report. ### Steps to Reproduce 1. Install `l10n_at_reports`. 2. Switch to an Austrian company. 3. Create and post an invoice using a consumable intra-community tax (e.g., 'UST_017 IGL 0% (ohne Art. 6 Abs. 1)'). 4. Open the EC Sales Report. You will observe that the invoice amount is counted twice. ### Cause The system groups values in the EC Sales Report by tax tags. A previ
Original PR description
### Issue Invoices using consumable intra-community taxes are currently counted twice in the EC Sales Report. ### Steps to Reproduce 1. Install `l10n_at_reports`. 2. Switch to an Austrian company. 3.…
### Issue Invoices using consumable intra-community taxes are currently counted twice in the EC Sales Report. ### Steps to Reproduce 1. Install `l10n_at_reports`. 2. Switch to an Austrian company. 3. Create and post an invoice using a consumable intra-community tax (e.g., 'UST_017 IGL 0% (ohne Art. 6 Abs. 1)'). 4. Open the EC Sales Report. You will observe that the invoice amount is counted twice. ### Cause The system groups values in the EC Sales Report by tax tags. A previous commit (odoo/odoo@f937e915dfd64a9b66dd9f7d7e3d19607d088f28) introduced changes to certain taxes (e.g., 'UST_017 IGL 0% (ohne Art. 6 Abs. 1)'), which caused multiple tax tags counted in the EC Sales report to be applied to the same line. This grouping behavior leads to double counting. ### Fix Repartition lines with the `tax_report_line_l10n_at_tva_line_4_8_tag` also contain the `tax_report_line_l10n_at_tva_line_3_zm_igl_tag`. To avoid double counting, the EC Sales Report now only checks for the latter tag. opw-4174429 Forward-Port-Of: odoo/enterprise#69941