Monday, May 26, 2025
24 changes · saas-18.1
Resolved issues and error corrections
This update prevents calendar screens from crashing when background requests finish after a user has already left or closed the view. It improves stability for users working with calendars and reduces intermittent runbot errors.
Original PR description
runbot-error-135292 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
Miscellaneous changes
In this PR: - Changed the account types of some accounts from 'payable' to 'current liabilities' and from 'receivable' to 'current assets' to better reflect their nature task-4813704 Forward-Port-Of: odoo/odoo#211399
Original PR description
In this PR: - Changed the account types of some accounts from 'payable' to 'current liabilities' and from 'receivable' to 'current assets' to better reflect their nature task-4813704 Forward-Port-Of: odoo/odoo#211399
Doing asynchronous things in the onWillStart can be tricky. Methods that come from services are usually protected against those, and hang up if the component was destroyed during the call, but other calls aren't protected. This commit fixes a race condition where a protected call is done after a component is destroyed and crashes. runbot-error-135245 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I
Original PR description
Doing asynchronous things in the onWillStart can be tricky. Methods that come from services are usually protected against those, and hang up if the component was destroyed during the call, but other calls aren't protected. This commit fixes a race condition where a protected call is done after a component is destroyed and crashes. runbot-error-135245 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#211035 Forward-Port-Of: odoo/odoo#210773
Versions -------- - 18.0+ Steps ----- 1. Create a loyalty card program applying on future orders; 2. add 2 rewards: free shipping (100 points) & discount (200 points); 3. create a loyalty card for current user with 500 points; 4. apply both rewards on an eCommerce order & pay to confirm. Issue ----- In the back end, the sale order displays the loyalty points cost as 200 instead of 300. The same applies to the points history on the loyalty card view. Cause ----- The loyalty hi
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Create a loyalty card program applying on future orders; 2. add 2 rewards: free shipping (100 points) & discount (200 points); 3. create a loyalty card for current user with 500 points; 4. apply both rewards on an eCommerce order & pay to confirm. Issue ----- In the back end, the sale order displays the loyalty points cost as 200 instead of 300. The same applies to the points history on the loyalty card view. Cause ----- The loyalty history model introduced by 17ef5c57a5c1 does not sum up the total cost of the points used on an order, instead it only saves the points used of the last reward line per coupon. Solution -------- Sum up the points per coupon. opw-4783518 Forward-Port-Of: odoo/odoo#211188
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of the cost of all variants possible for this product. If we had a product "Drawer" with a color variant "Black" and "White", which cost 10 and 20 euros respectively, the Manufacturing Order overview of a Black Drawer would display the cost of the drawer + **30** euros (10+20), instead of being th
Original PR description
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of…
**Problem:** For products with variants and differents steps for the BoM depending on the variant, the Manufacturing Order overview for a given product with a given variant would display the sum of the cost of all variants possible for this product. If we had a product "Drawer" with a color variant "Black" and "White", which cost 10 and 20 euros respectively, the Manufacturing Order overview of a Black Drawer would display the cost of the drawer + **30** euros (10+20), instead of being the cost of the drawer + **10** euros. The display cost is the sum of the price of every variants for this product, instead of being the price of the current variant of the product. **Steps to reproduce:** - Create a product with variants - Change the BoM and make some components needed only for certain variants and add a price for them - Go to the MO overview - The Cost BoM cost total is the sum of all prices AND variants **Cause of the issue:** https://github.com/odoo/odoo/blob/d3ab7b2c3ceddbb4cb8d8e91fac0d60e28e5673a/addons/mrp/report/mrp_report_mo_overview.py#L85 This treats every remaining lines of the BoM as a missing component, thus adding it's price to the total price. Some lines should only be applied if a specific variant is selected, but with this code, every line that has a condition depending on variants will be taken in. **Fix:** Before adding the product of a BoM line to the missing components, we check that the BoM line should be applied to the current variant. The missing components are still used and can be not empty in the case where the BoM includes a line that was deleted from the MO, making the MO cost and the BoM cost different. In this case, the missing components will not be empty and will still work as intended without taking the unwanted variants into account. opw-4557169 Forward-Port-Of: odoo/odoo#199264
### Steps to reproduce: - Navigate to Recruitment > Job Position > Any job position > Job applications (smart button) - Create an applicant - Set a Recruiter for the applicant - Move the stage to 'Contract Signed' - Click on 'Create Employee' - Notice a validation error that the opertion cannot be completed ### Cause: This is happening as the 'Job applications' smart button has default value for the user_id in context https://github.com/odoo/odoo/blob/889f25f1322f00dff7cacad95
Original PR description
### Steps to reproduce: - Navigate to Recruitment > Job Position > Any job position > Job applications (smart button) - Create an applicant - Set a Recruiter for the applicant - Move the stage to…
### Steps to reproduce: - Navigate to Recruitment > Job Position > Any job position > Job applications (smart button) - Create an applicant - Set a Recruiter for the applicant - Move the stage to 'Contract Signed' - Click on 'Create Employee' - Notice a validation error that the opertion cannot be completed ### Cause: This is happening as the 'Job applications' smart button has default value for the user_id in context https://github.com/odoo/odoo/blob/889f25f1322f00dff7cacad95236d6f045c30d64/addons/hr_recruitment/views/hr_job_views.xml#L207-L211 so when creating an employee it will add the missing fields from defaults and it will get the default value in the context which for an existing user so when creating the employee with this user_id it will trigger the sql constraint https://github.com/odoo/odoo/blob/889f25f1322f00dff7cacad95236d6f045c30d64/addons/hr/models/hr_employee.py#L145-L148 ### Fix: clean the context before creating the partner and the employee corresponding to this applicant opw-4629219 Forward-Port-Of: odoo/odoo#210896 Forward-Port-Of: odoo/odoo#204997
there was a divide by zero in the price unit computation when the originalTotal is 0 which lead to infinity price unit and a crash in the POS order summary result. opw-4650315 Forward-Port-Of: odoo/odoo#202668
Original PR description
there was a divide by zero in the price unit computation when the originalTotal is 0 which lead to infinity price unit and a crash in the POS order summary result. opw-4650315 Forward-Port-Of: odoo/odoo#202668
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable Settings "Allow Ship Later", "Automatic Accounting" - Navigate to Sales/Configuration/Product Categories - Create a new category with Inventory Valuation field as "Automated" and the Costing Method field as "Average Cost (AVCO)" - Open Point of Sale/Product - Create a new storable product
Original PR description
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable…
**Problem:** when doing a refund from pos of an avco (or fifo) product, with the option "ship later" the cost of the product does not appear on the pos order line **Steps to reproduce:** - Enable Settings "Allow Ship Later", "Automatic Accounting" - Navigate to Sales/Configuration/Product Categories - Create a new category with Inventory Valuation field as "Automated" and the Costing Method field as "Average Cost (AVCO)" - Open Point of Sale/Product - Create a new storable product - In the general information tab set a cost and select your new category for the product category field - In the Sales tab, make sure that "Available in POS" is checked and select a category - Set an on Hand quantity - Open a point of sale from the Point of Sale Dashboard - Select your product and click on Payment - On the top right of the screen select a customer with an adress, click on Invoice and on Ship later - Select a payment method and validate - Navigate to Point of Sale/Orders - click on the last order created, and click on the "Pickings" smart button - validate the picking - come back to the store in point of sale - select the three horizontal lines on the top right and click on Orders - filter by paid orders - select the last order created and click on refund and then on payment - check Invoice and Ship Later on the top right, select a payment method and validate - Navigate back to Point of Sale/orders and select the last order created **Current behavior:** The total cost is zero on the pos order line Even if the delivery is validated via the Picking smart button the total cost is still zero **Expected behavior:** It should reflect the cost of the product (depending on the costing method) **Cause of the issue:** When the pos order is created from Point of Sale, the process_saved_order method is called this method calls (1)create_order_picking and then (2)compute_total_cost. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L183-L184 **Scenario A** Inside (1) create_order_picking, if the PosOrder doesn't have a shipping_date the if statement is False https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L1017 and the method _create_picking_from_pos_order_lines is called. This method then calls _action_done. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/stock_picking.py#L70 Inside the stock_account override of _action_done, _create_in_svl is called. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/stock_account/models/stock_move.py#L289 This method sets the value of the stock_valuation_layer_ids attribute of the stock move to a new stock valuation layer. **Scenario B** Inside (1) create_order_picking, if the PosOrder has a shipping_date (in the case where we selected "Ship Later") the method _launch_stock_rule_from_pos_order_lines is called. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/point_of_sale/models/pos_order.py#L1017-L1018 and nowhere inside this method is _action_done called. This makes sense because the stock move hasn't been validated. When (2) compute_total_cost is then called by process_saved_oder, if the product category is avco, _compute_average_price will be called. If we are in Scenario B there is no stock valuation layer for this stock move. Consequently there will be no candidates and the price will not be computed. https://github.com/odoo/odoo/blob/504ef7cdeb1600b86feefbe8668144da9cd5a70b/addons/stock_account/models/product.py#L795-L798 opw-4614503 Forward-Port-Of: odoo/odoo#210868 Forward-Port-Of: odoo/odoo#207482
Previously the `state name` of partner is validating, but as per government API json schema `state tin number` is required. After this commit: - The validation now checks the state tin number instead of the state name, ensuring it is a valid and min 1 and max-2 digit number. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#211470 Forward-Port-Of: odoo/odoo#204495
Original PR description
Previously the `state name` of partner is validating, but as per government API json schema `state tin number` is required. After this commit: - The validation now checks the state tin number instead of the state name, ensuring it is a valid and min 1 and max-2 digit number. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#211470 Forward-Port-Of: odoo/odoo#204495
Steps to reproduce on runbot: 1. Select company "My Belgian Company" (`l10n_be` and `account_peppol`) should be installed 2. Settings -> Accounting -> PEPPOL Electronic Invoicing -> Activate Electronic Invoicing 3. Ensure `+32470123456` is given as the phone number 4. Remove the country prefix from the phone number 5. A validation error is raised complaining about the phone number format The validation should only be performed when we click on the "Activate Peppol" button.. When editing
Original PR description
Steps to reproduce on runbot: 1. Select company "My Belgian Company" (`l10n_be` and `account_peppol`) should be installed 2. Settings -> Accounting -> PEPPOL Electronic Invoicing -> Activate…
Steps to reproduce on runbot: 1. Select company "My Belgian Company" (`l10n_be` and `account_peppol`) should be installed 2. Settings -> Accounting -> PEPPOL Electronic Invoicing -> Activate Electronic Invoicing 3. Ensure `+32470123456` is given as the phone number 4. Remove the country prefix from the phone number 5. A validation error is raised complaining about the phone number format The validation should only be performed when we click on the "Activate Peppol" button.. When editing the phone number the wizard should try to auto-format the given phone number before validating. In case there is no country prefix it should assume the phone number is from the country of the company. Since commit 7cd8c87e3fcacfefa6c789449eec32a3c5577089 the validation is performed before the auto-formating. There a call to the validation logic (`_sanitize_peppol_phone_number`) was added before the auto-formatting logic. (It was mainly just done to ensure that an external dependency is installed.) But there we do not (and should not) assume the country prefix of the phone number. The phone number is used during the registration process. A missing country prefix could lead to a failed registration. After this commit - the validation is only performed when we click on the "Activate Peppol" button. - the auto-formatting is performed after editing the phone number - fix a `self` in a `for ... in self` part of task-4791098 Forward-Port-Of: odoo/odoo#210046
When writing a new formula on a tax_tags expression, but also providing the 'engine' key with 'tax_tags' value, this condition https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_report.py#L539 triggered and the return at the end of it caused the tag to be recreated instead of renamed. This case can happen when changing the name of a tag in a data file, then updating the module. We saw it while working on an cleaned version of a localized report for master. Forward-Port-Of:
Original PR description
When writing a new formula on a tax_tags expression, but also providing the 'engine' key with 'tax_tags' value, this condition https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_report.py#L539 triggered and the return at the end of it caused the tag to be recreated instead of renamed. This case can happen when changing the name of a tag in a data file, then updating the module. We saw it while working on an cleaned version of a localized report for master. Forward-Port-Of: odoo/odoo#210811
Steps are triggered too quick on the runbot. 1- It was trying to render the reward button while computation was still ocurring, thus `coupon_id` wasn't set. > Use of the ? to avoid the traceback 2- It was trying to check for the price while the reward hadn't loaded yet. > Instead we check that the reward is there, we'll check the price at the end. runbot: 163072 Forward-Port-Of: odoo/odoo#211236
Original PR description
Steps are triggered too quick on the runbot. 1- It was trying to render the reward button while computation was still ocurring, thus `coupon_id` wasn't set. > Use of the ? to avoid the traceback 2- It was trying to check for the price while the reward hadn't loaded yet. > Instead we check that the reward is there, we'll check the price at the end. runbot: 163072 Forward-Port-Of: odoo/odoo#211236
We generalize the CertificateAdapter that is needed to make zeep read our own Certificate model for the session. Necessary for: odoo/odoo#196054 Task [link](https://www.odoo.com/odoo/project/967/tasks/4477745) task-4477745 Forward-Port-Of: odoo/odoo#210572
Original PR description
We generalize the CertificateAdapter that is needed to make zeep read our own Certificate model for the session. Necessary for: odoo/odoo#196054 Task [link](https://www.odoo.com/odoo/project/967/tasks/4477745) task-4477745 Forward-Port-Of: odoo/odoo#210572
… are share If all the user type groups have the flag `Share` as true, they will be filtered out by `get_application_groups`. While updating `user_groups_view`, the field `user_type_field_name` will never be assigned, as the condition `app.xml_id == 'base.module_category_user_type'` will never be fulfilled. That means that `user_type_invisible` will be `None`, but that's not a valid value and it will break. Steps to reproduce: - Mark all the user type groups as Share. - Upgrade `bas
Original PR description
… are share If all the user type groups have the flag `Share` as true, they will be filtered out by `get_application_groups`. While updating `user_groups_view`, the field `user_type_field_name` will…
… are share
If all the user type groups have the flag `Share` as true, they will be filtered out by `get_application_groups`. While updating `user_groups_view`, the field `user_type_field_name` will never be assigned, as the condition
`app.xml_id == 'base.module_category_user_type'` will never be fulfilled.
That means that `user_type_invisible` will be `None`, but that's not a valid value and it will break.
Steps to reproduce:
- Mark all the user type groups as Share.
- Upgrade `base`.
```
File "/home/odoo/src/odoo/18.0/odoo/addons/base/models/res_users.py", line 1801, in _update_user_groups_view
E.group(*(xml2), invisible=user_type_invisible),
File "src/lxml/builder.py", line 204, in lxml.builder.ElementMaker.__call__
File "src/lxml/builder.py", line 186, in lxml.builder.ElementMaker.__init__.add_dict
KeyError: <class 'NoneType'>
```
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#209470Creating POS payment methods requires being a POS admin, which the POS user is not, and the test user may not be. Bypass issue by creating payment methods in sudo. https://runbot.odoo.com/odoo/error/222989 Forward-Port-Of: odoo/odoo#211664
Original PR description
Creating POS payment methods requires being a POS admin, which the POS user is not, and the test user may not be. Bypass issue by creating payment methods in sudo. https://runbot.odoo.com/odoo/error/222989 Forward-Port-Of: odoo/odoo#211664
- in the management form view, the leave type display name is diffrent than dash borad one which is not the best for UX. So, remove the restriction on the display name as multiple request is handeled on its own wizard now. Task: 4774751 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208827
Original PR description
- in the management form view, the leave type display name is diffrent than dash borad one which is not the best for UX. So, remove the restriction on the display name as multiple request is handeled on its own wizard now. Task: 4774751 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208827
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
Original PR description
The test relies on the admin partner having full contact in order for the "Confirm Address" step to "just work". If the test is run without demo data, this is rather not the case and the test fails on the next step, as "Confirm Address" causes a form submission failure due to required fields not being filled. https://runbot.odoo.com/odoo/error/161633 Forward-Port-Of: odoo/enterprise#86417
## Version: 17.0+ ## Issue: No payment can be done for subscriptions with no starting day set ## Steps to reproduce: Ensure Stripe is correctly set up and runs in demo version - Create a quotation for a subscription and leave the field "Start Date” blank - Generate a payment link and try to pay it from incognito mode using Stripe ## Cause: Revealed by https://github.com/odoo/enterprise/commit/c7335a8064e584785aeb21383a87cac8e829af5d opw-4807108 Forward-Port-Of: odoo/enterprise
Original PR description
## Version: 17.0+ ## Issue: No payment can be done for subscriptions with no starting day set ## Steps to reproduce: Ensure Stripe is correctly set up and runs in demo version - Create a quotation for a subscription and leave the field "Start Date” blank - Generate a payment link and try to pay it from incognito mode using Stripe ## Cause: Revealed by https://github.com/odoo/enterprise/commit/c7335a8064e584785aeb21383a87cac8e829af5d opw-4807108 Forward-Port-Of: odoo/enterprise#86340 Forward-Port-Of: odoo/enterprise#86205
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to reproduce:** * Install document and sign * Document App> all> click `Employment contract.pdf`. * Select sign>drag and drop Signature>Sign now * Sign the document>validate and send completed document * Documents>certificate of completion or the signed document>actions>trash * The error will be pr
Original PR description
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to…
When a signed document is moved to trash in the documents app, when the cron tries to delete the said document it should raise a foreign key violation error in the terminal not in UI. **Steps to reproduce:** * Install document and sign * Document App> all> click `Employment contract.pdf`. * Select sign>drag and drop Signature>Sign now * Sign the document>validate and send completed document * Documents>certificate of completion or the signed document>actions>trash * The error will be produced when cron deletes the document. * You can delete the document from trash to see what error will be displayed by cron. `ERROR: update or delete on table "ir_attachment" violates foreign key constraint "sign_request_completed_document_rel_ir_attachment_id_fkey" on table "sign_request_completed_document_rel"` **Solution:** * Modifying the domain for `_gc_clear_bin` via a new function called overridden `_gc_documents_domain` in `documents_sign` this will allow for cron to skip over signed required document during unlink process. * This will still throw an `Validation Error` when the user tries to delete it from the GUI letting them know it cannot be deleted. Sentry-6225030131 Forward-Port-Of: odoo/enterprise#83765
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
Original PR description
Sendcloud and ups_rest miss the override to allow sending the actual type of the carrier (in a recognizable way) to Amazon. opw-4771192 Forward-Port-Of: odoo/enterprise#86100 Forward-Port-Of: odoo/enterprise#84772
PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86
Original PR description
PR #64267 implemented a reconnection mechanism, but it is only triggered when the WebSocket close event is fired. In practice, we noticed that the WebSocket would sometimes silently lose connection. When this happens, one should just send data through the WebSocket to refresh it. This commit enables SIP.js keep-alive feature, hopefully reducing the number of disconnections, or at least preventing them to go unnoticed. Forward-Port-Of: odoo/enterprise#86294 Forward-Port-Of: odoo/enterprise#86213
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a different value. 4) Post the journal 5) Go to "Accounting / Reporting / Audit Reports / General Ledger" 6) Download "DATEV DATA (ZIP)" and check "EXTF_accounting_entries.csv" <b>Issue:</b> The line for the created journal entry has a price_total of the previous balance even after updating the
Original PR description
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a…
<b>Steps to produce :</b> 1) Install 10n_de_reports and switch to the German company 2) Create a journal entry from accounting with a credit and debit 3) Now update the credit and debit to a different value. 4) Post the journal 5) Go to "Accounting / Reporting / Audit Reports / General Ledger" 6) Download "DATEV DATA (ZIP)" and check "EXTF_accounting_entries.csv" <b>Issue:</b> The line for the created journal entry has a price_total of the previous balance even after updating the credit and debit values. <b>Cause:</b> When the user updates the 'debit' and 'credit' values for an `aml`, The `price_totals` value remains unchanged as it is not dependent on `balance`. So, it will show the previous value in the report line because we are taking the abs(aml.price_total) from the report data. <b>Solution:</b> We can add an extra check of the move type so that it will fall back to the else block, where the line_amount will take a value by calculating taxes from `aml.tax_ids.compute_all`. opw-4707567 Forward-Port-Of: odoo/enterprise#83777
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
Original PR description
* Previously, the domain only included payments in the "in_process" state, which is incorrect when only the Invoicing app is installed -paid payments should also be allowed-. * Test was failing with single app installed when accountant module was not installed. When only Invoicing, we can validate a batch payment even when payments are in paid state, so the Warning was not raised causing tests to fail. Forward-Port-Of: odoo/enterprise#86217
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward
Original PR description
Fixes were made regarding the fraud prevention headers, but we have still odoo requests that send invalid headers. When checking the odoo requests on the hmrc website, we can group by `Gov-Vendor-Version`, which is currently set to the Installed Version of the base module, twice (for some reasons). This commit send the version of the `l10n_uk_reports` module. So when a new fix is made, we can bump the module version and see if failing requests are up-to-date. task-4627086 Forward-Port-Of: odoo/enterprise#84692