Monday, September 21, 2026
2 changes · saas-18.3
Resolved issues and error corrections
When receiving tracked products, generated serial or lot numbers now automatically receive the product's default expiration date instead of leaving it blank. This helps warehouse teams keep expiry tracking accurate while preserving dates already supplied through imports.
Original PR description
**Issue** The expiration date is left blank when generating serial/lot numbers on a sml in a receipt, instead of being set from the product's default expiration settings. **Steps to reproduce** -…
**Issue** The expiration date is left blank when generating serial/lot numbers on a sml in a receipt, instead of being set from the product's default expiration settings. **Steps to reproduce** - Create a product tracked by SN, with Inventory > Traceability > Expiration Date enabled and an expiration time set. - Create and confirm a PO for that product. - Go to the receipt, open the Detailed Operations popup, and use "Generate Serials/Lots". -> The expiration date is not set on the generated serial/lot. **Cause** While generating the serial number, `action_generate_lot_line_vals` is called: https://github.com/odoo/odoo/blob/5d5f5381c27f67a8655a1c18bf1802c877d4cae2/addons/stock/models/stock_move.py#L1008 But it makes no reference to `expiration_date`. Moreover, it does not call `_compute_expiration_date` yet, before the save is performed: https://github.com/odoo/odoo/blob/5d5f5381c27f67a8655a1c18bf1802c877d4cae2/addons/product_expiry/models/stock_move_line.py#L38-L40 **Solution** Backport the fix from 19.0: https://github.com/odoo/odoo/commit/4f339301179c93a8bd48c55e3c54923c4698861a together with its follow-up, which avoids overwriting an expiration date already provided by a pasted import: https://github.com/odoo/odoo/commit/d0e0785c2fe63b6b7984432f5d0cdd73d4ca72ef opw-6417108 Forward-Port-Of: odoo/odoo#284469
Refreshing a tax report opened from account returns now keeps the needed report information available. This prevents users from being sent back to the returns view or seeing an error, making tax return review more reliable.
Original PR description
Steps to reproduce: 1. Install `account_reports` and set fiscal year beginning date for Tax returns. 2. Open Tax Report from the button on Kanban view of account return. 3. Try to refresh from the…
Steps to reproduce: 1. Install `account_reports` and set fiscal year beginning date for Tax returns. 2. Open Tax Report from the button on Kanban view of account return. 3. Try to refresh from the report page. Without debug mode, it will return to returns kanban view and with debug mode, it will go back and a traceback will appear. Cause: The report from kanban view is opened via a python action method, which returns a `ir.actions.client` of `account_report`. In the controller for report, it tries to fetch the `report_id` from `context` [1] set during the python method call. But when we refresh page, this action context is wiped out, so when it tries to get the report options in controller via orm call [2], the report_id is lost, and it causes traceback. Solution: This commit creates a report action of type `ir.actions.client`. Now, whenever the python method is called, it updates this report action with latest context and returns action of this record. Due to this, the context is preserved even if the page is refreshed. [1]: https://github.com/odoo/enterprise/blob/7100c90462f3ebbd635d7c5aac0b9025b258ec30/account_reports/static/src/components/account_report/controller.js#L23 [2]: https://github.com/odoo/enterprise/blob/7100c90462f3ebbd635d7c5aac0b9025b258ec30/account_reports/static/src/components/account_report/controller.js#L167 task-6240800