Wednesday, April 30, 2025
5 changes · 18.0
Enhancements to existing features
The Ecuadorian accounting setup has been updated to better organize expense and cost of revenue accounts. This helps companies using the Ecuador localization classify financial transactions more accurately for reporting and day-to-day accounting.
Original PR description
We improved the distribution of expense and cost of revenue accounts in Ecuadorian localization
Resolved issues and error corrections
This fix stops Odoo from increasing a purchase order again when only part of a make-to-order delivery is completed and the rest is backordered. Businesses using make-to-order purchasing will avoid inflated supplier demand and accidental over-ordering.
Original PR description
### Steps to reproduce: - In the settings enable Multi-Step routes - Unarchive the MTO route - Create a storable product using the MTO and buy route - Create and confirm a sale order for 100 units of…
### Steps to reproduce: - In the settings enable Multi-Step routes - Unarchive the MTO route - Create a storable product using the MTO and buy route - Create and confirm a sale order for 100 units of that product - Validate the delivery for only 30 units and backorder the rest #### > The purchase order demand was updated to 170 units ### Cause of the issue: Since the refactoring a72382063ee662010729d983fbf6fb6305b8adf2 the rule of the MTO route is purely MTO. Furthermore, the moves creating and running a procurement are added depending solely on their `procure_method` during the `_action_confirm`: https://github.com/odoo/odoo/blob/1dd360658222c0afeb268a5c8cf435defddf55d1/addons/stock/models/stock_move.py#L1485-L1496 https://github.com/odoo/odoo/blob/1dd360658222c0afeb268a5c8cf435defddf55d1/addons/stock/models/stock_move.py#L1503-L1513 In our use case, the delivery move is therefore created as `mto` and then creates and run a procurments creating the PO during its confirmation. However, when it is backordered, the backorder move is also created and confirmed as `mto` by the `_create_backorder` call: https://github.com/odoo/odoo/blob/02a370a7a34a42f2bc9f668eee756fb466db8722/addons/stock/models/stock_move.py#L2071-L2075 It will therefore also automatically create and run a procurment that will in turn modify the current PO. opw-4633920 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Attendance kiosk link now opens using the company’s preferred language by default, rather than being affected by the current user’s language after the page route is chosen. This gives employees a more consistent kiosk experience while still allowing approved language changes through the URL when needed.
Original PR description
**Steps to reproduce:** - Enable multiple languages - Set Company contact language to the language you want by default in the kiosk - Set another language for the user - Go to Attendance app then…
**Steps to reproduce:** - Enable multiple languages - Set Company contact language to the language you want by default in the kiosk - Set another language for the user - Go to Attendance app then Kiosk Mode - Kiosk will be displayed using the company language - There is no way to change the language for the user (but the URL still accept `.../LANG_CODE/hr_attendance/...`) **Issue:** Kiosk language is computed after url routing, this means the user has no way to change it manually if needed. Changing the URL directly results in inconsistent behaviour (valid /fr/ URL with arabic content for example). **Fix:** Updated the kiosk URL computation to default to the company's (or user's) language before the URL routing is done. This ensures that the kiosk button directs users to the company's default language page while allowing manual URL modification to switch to other allowed languages. opw-4659403 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an error that could prevent users from opening hierarchy and subtotal details in the Profit and Loss report when a financial budget is selected. This ensures accounting users can review budget-related report breakdowns without interruption.
Original PR description
A traceback occurs when attempting to view the 'Hierarchy and Subtotals' of an
Account Group with a Financial Budget set in the 'Profit and Loss' report.
Steps to reproduce:
-------------------
* Open Accounting in debug mode
* In Configuration > Accounting > Financial Budgets create a new budget
* In Configuration > Accounting > Account Groups create a new group
* Open Reporting > Statement Report > Profit and Loss
* Select the budget and Hierarchy and Subtotals
* Click on Revenues
* Traceback
> Observation:
File '/home/odoo/src/enterprise/18.0/account_reports/models/account_report.py', line 1035, in compute_group_totals
hierarchy_total + (column.get('no_format') or 0.0) if isinstance(hierarchy_total, float) else hierarchy_total
~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Why the fix:
------------
Add float verification to ensure valid operation in the hierarchy.
opw-4628498WhatsApp messages that take longer to process now have more time to complete before timing out. This helps complex messages send successfully instead of failing too quickly when the external service responds slowly.
Original PR description
### Before this PR the timeout is 10 for both connect and read timeout ### After this PR I you send complex messages , the graph endpoint will not answer in 10 seconds. With this PR it is increased the read timeout to 60 seconds