Monday, May 19, 2025
14 changes · saas-18.3
Resolved issues and error corrections
The restaurant preparation display now handles combo orders and cancelled order lines correctly. This prevents orders from getting stuck or showing errors, helping kitchen staff keep preparation workflows moving smoothly.
Original PR description
Issue 1: === Steps to reproduce: ------- - Install `pos_restaurant`. - Open a restaurant session and the preparation display. - Open any table and add two combo items. - Press the order button and go…
Issue 1: === Steps to reproduce: ------- - Install `pos_restaurant`. - Open a restaurant session and the preparation display. - Open any table and add two combo items. - Press the order button and go to the preparation display. Issue: ------- - The combo items do not appear, and the stage cannot be changed. Cause: ------- - The combo parent order line does not have an `id`. - Since there are two combo parents, the `t-foreach` encounters multiple lines with the same `undefined` id. Fix: ------- - Use `orderline_index` instead of `orderline.id`.. Issue 2: === Steps to reproduce: ------- - Install `pos_restaurant`. - Open a restaurant session and the preparation display. - Open any table and add an order line. - Press the order button so the line appears in the preparation display. - Remove the line and press order again to cancel it. - Go to the preparation display. - Click on the cancelled order line. - A traceback appears. Issue: ------- - You are unable to strike out the cancelled order line. Cause: ------- - When all quantities of a prep line are cancelled, there are no corresponding `pos_order_line_id` available. - The code attempts to compute `order_completion_seconds` using `max()` on an empty list, which raises a `ValueError`. Fix: ------- - Added a guard condition to ensure `completion_time` is only computed when there is `pos_order_line_id`. - This prevents calling `max()` on an empty sequence and avoids the traceback when clicking cancelled lines in the preparation display. Task: 4800284
The itsme identity verification dialog now appears correctly again during document signing. This restores an important signing flow that had stopped working after an earlier internal change.
Original PR description
Since https://github.com/odoo/enterprise/pull/81766 the itsme dialog was not working anymore. Some methods have been moved from SignablePDFIframe to the Document component. As a result, some overrides were not called anymore. taskid: 4770756
Bank reconciliation now uses the remaining open amount on invoices instead of the original balance. This helps match later bank statement lines correctly after a partial payment has already been reconciled.
Original PR description
This commit will replace some occurrence of the balance for the amount residual and amount currency for the amount residual currency. In this example: Invoice of 100$ A first statement line of 20 A second statement line of 100 We do the reconciliation between the invoice and the first statement line. The invoice will be partially reconciled. Before this commit since we used the balance we wouldn't take this reconciliation into account when doing the reconciliation between the remaining amount of the invoice and the second statement line. no task id
This update fixes several issues in the manufacturing shop floor experience after the redesign. Operators now see clearer navigation, correct production quantities, better employee status ordering, and more reliable quality check and timer behavior, reducing confusion during daily production work.
Original PR description
Some follow-up items to fix after the shop floor redesign from [1]. Please refer to the individual commits for details about the different fixes. [1] https://github.com/odoo/enterprise/pull/80469 task-4731403
Miscellaneous changes
Like the sugar tax, alcohol is also taxed differently in Colombia such that we need a special case for how to compute it. The Per Unit Amount is the total tax amount divided by the alcohol percentage. To facilitate this change, the field that was previously used for the volume in ml for sugary drinks has been made into a generic "Specific Component Nominal Tax" field which can be used for any extra tax data depending on what type of tax is on the product. Comm PR: https://github.com/odoo/o
Original PR description
Like the sugar tax, alcohol is also taxed differently in Colombia such that we need a special case for how to compute it. The Per Unit Amount is the total tax amount divided by the alcohol percentage. To facilitate this change, the field that was previously used for the volume in ml for sugary drinks has been made into a generic "Specific Component Nominal Tax" field which can be used for any extra tax data depending on what type of tax is on the product. Comm PR: https://github.com/odoo/odoo/pull/208500 task-4634313 Forward-Port-Of: odoo/enterprise#85764 Forward-Port-Of: odoo/enterprise#84717
In the Italian balance sheet, the section for “d-bis. Other enterprises” is not added to the calculation for the section “1. Holdings in:”. As a result, it is not included in the calculation for assets in the balance sheet. This commit adds the section “d-bis. Other enterprises” to the calculation of “1. Holdings in”. This specification is based on Article 2424(1) of the Italian Civil Code: https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:regio.decreto:1942-03-16;262 Steps to Repro
Original PR description
In the Italian balance sheet, the section for “d-bis. Other enterprises” is not added to the calculation for the section “1. Holdings in:”. As a result, it is not included in the calculation for assets in the balance sheet. This commit adds the section “d-bis. Other enterprises” to the calculation of “1. Holdings in”. This specification is based on Article 2424(1) of the Italian Civil Code: https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:regio.decreto:1942-03-16;262 Steps to Reproduce on Runbot: 1. Install l10n_it_reports 2. Create an account starting with 1306 3. Create a journal entry using account 1306 as the debit line and balance it with a credit line 4. Check the Italian balance sheet and notice that “d-bis. Other enterprises” is not included in the calculation for assets in the Italian balance sheet Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4763868) opw-4763868 Forward-Port-Of: odoo/enterprise#84586
The overhaul of html editor into knowledge introduced an issue involving the auto-vaccuum. This commit https://github.com/odoo/enterprise/commit/08d84f8b61450a0ebd0d2aadfe8f227bda283edd passes the res_id value of the currently existing knowledge.cover record. However, when we set a new cover image, we will always create a new cover record and the new cover image attachments are linked to the previous cover record. The auto-vaccuum then deletes unused cover images and any attachments linked,
Original PR description
The overhaul of html editor into knowledge introduced an issue involving the auto-vaccuum. This commit https://github.com/odoo/enterprise/commit/08d84f8b61450a0ebd0d2aadfe8f227bda283edd passes the res_id value of the currently existing knowledge.cover record. However, when we set a new cover image, we will always create a new cover record and the new cover image attachments are linked to the previous cover record. The auto-vaccuum then deletes unused cover images and any attachments linked, which will delete the actual cover image. The web_unsplash/attachment/add does not need to pass in a res_id of the cover image since we always create a new record at the end of the workflow. opw-4629300 Forward-Port-Of: odoo/enterprise#85549
The rental_cart_update_duration tour was failing due to a timeout while selecting for the .o_time_picker_select:eq(0) element. This change add a wait step was to ensure the rental options are fully loaded before proceeding. Avoiding flaky behavior caused by timing issues in the UI. build_error-161173 Forward-Port-Of: odoo/enterprise#85393
Original PR description
The rental_cart_update_duration tour was failing due to a timeout while selecting for the .o_time_picker_select:eq(0) element. This change add a wait step was to ensure the rental options are fully loaded before proceeding. Avoiding flaky behavior caused by timing issues in the UI. build_error-161173 Forward-Port-Of: odoo/enterprise#85393
**Steps** 1. Upload a PDF & Sign > Upload PDF 2. Add a text item 3. Sign Now > Sign Now 4. Enter 123456789123456789 as text 5. Validate & Send Completed Document 6. Go to Documents > All Documents > Open the Document The number displayed is wrong by a small amount (123456789123456780). This happens because the number is bigger than Javascript's MAX_SAFE_INTEGER. Other problematic example: a sign item with "false" as text. **Solution** We can avoid parsing the text of the sign item.
Original PR description
**Steps** 1. Upload a PDF & Sign > Upload PDF 2. Add a text item 3. Sign Now > Sign Now 4. Enter 123456789123456789 as text 5. Validate & Send Completed Document 6. Go to Documents > All Documents > Open the Document The number displayed is wrong by a small amount (123456789123456780). This happens because the number is bigger than Javascript's MAX_SAFE_INTEGER. Other problematic example: a sign item with "false" as text. **Solution** We can avoid parsing the text of the sign item. opw-4479406 Forward-Port-Of: odoo/enterprise#85195 Forward-Port-Of: odoo/enterprise#77422
**Steps to reproduce** - Install website_sale_subscription - On the website page of a product, enter the editor and enable the "Tax Indication" setting for the product page. - The tax indication information doesn't appear for subscription products.  **Cause** Issue since commit 7d160198be779095660e7f6fb68ae231e4621972 which hides default pricing information from `website_sale` for subscription produc
Original PR description
**Steps to reproduce** - Install website_sale_subscription - On the website page of a product, enter the editor and enable the "Tax Indication" setting for the product page. - The tax indication information doesn't appear for subscription products.  **Cause** Issue since commit 7d160198be779095660e7f6fb68ae231e4621972 which hides default pricing information from `website_sale` for subscription products, including the tax indication. opw-4637308 Forward-Port-Of: odoo/enterprise#84669
- 18.0 **Steps to Reproduce:** - Create a subscription with a custom end date (e.g., 2025-04-09). - Manually generate an invoice covering a specific period (e.g., March 10 to April 9). - Wait until after the end date has passed (e.g., run expiration cron on 10 April or later). - The expiration cron triggers and overwrites the manually set end_date with the current date **Issue:** - The expiration cron overrides the existing end_date of the subscription. **Cause:** - The _get_c
Original PR description
- 18.0 **Steps to Reproduce:** - Create a subscription with a custom end date (e.g., 2025-04-09). - Manually generate an invoice covering a specific period (e.g., March 10 to April 9). - Wait until after the end date has passed (e.g., run expiration cron on 10 April or later). - The expiration cron triggers and overwrites the manually set end_date with the current date **Issue:** - The expiration cron overrides the existing end_date of the subscription. **Cause:** - The _get_closing_end_date method sets the end_date unconditionally during closure, even when an end_date is already defined. **Solution:** - Update the _get_closing_end_date logic to return the existing end_date if it is already set and valid, preventing it from being overridden when called by the expiration cron. task-4703577 Forward-Port-Of: odoo/enterprise#85465 Forward-Port-Of: odoo/enterprise#84475
After ELM Certification, monthly summary was not properly adapted for the two available aggregation modes Forward-Port-Of: odoo/enterprise#85754 Forward-Port-Of: odoo/enterprise#85287
Original PR description
After ELM Certification, monthly summary was not properly adapted for the two available aggregation modes Forward-Port-Of: odoo/enterprise#85754 Forward-Port-Of: odoo/enterprise#85287
Before this commit, the #84245 adds an extra_domain to find the customer to assign on the ticket based on the email address received. The problem is the partners could also have no company set and so the method could not find the existing partner with the email given and will create a duplicate partner because of that. This commit adds inside the extra_domain to also search on partner without any company set to be sure to not create duplicate the partner. Forward-Port-Of: odoo/enterprise#856
Original PR description
Before this commit, the #84245 adds an extra_domain to find the customer to assign on the ticket based on the email address received. The problem is the partners could also have no company set and so the method could not find the existing partner with the email given and will create a duplicate partner because of that. This commit adds inside the extra_domain to also search on partner without any company set to be sure to not create duplicate the partner. Forward-Port-Of: odoo/enterprise#85605 Forward-Port-Of: odoo/enterprise#85173
This fixes two issues with the report. The first one is automatically requesting an English report if the customer's preferred language is not Spanish. This way the lang field on the partner is somewhat respected for these externally generated reports too. The second fix requests a dedicated addenda page when appropriate. By default, the addenda (e.g. terms and conditions) is added in a small box at the bottom of the standard PDF report. This can only accomodate roughly 6 lines of 140 charact
Original PR description
This fixes two issues with the report. The first one is automatically requesting an English report if the customer's preferred language is not Spanish. This way the lang field on the partner is somewhat respected for these externally generated reports too. The second fix requests a dedicated addenda page when appropriate. By default, the addenda (e.g. terms and conditions) is added in a small box at the bottom of the standard PDF report. This can only accomodate roughly 6 lines of 140 characters. If the addenda exceeds that, the remainder is silently cut off which is problematic for mandatory disclosures etc. It's possible to request a dedicated addenda page in the PDF that fixes this issue. We considered always requesting it, but it looks strange to have a whole page in the PDF if the addenda is very short. We therefore make a best effort attempt to figure out if the addenda will fit in the standard report or not. task-4750717 Forward-Port-Of: odoo/enterprise#81188