Daily updates from Odoo
Monday, June 9, 2025
4 changes
1 change
Enhancements to existing features
Bank synchronization and reconciliation now handle foreign currencies more reliably, including showing currency symbols that were previously missing. Users also get clearer details on multi-currency statement amounts, exchange differences, and partial reconciliations, reducing confusion and avoiding incorrect suspense or exchange difference amounts.
Original PR description
[FIX] account_online_synchronization: currencies symbol missing Before this commit when doing a bank synchronization with a currency that wasn't enabled, the currency was not reloaded in the session…
[FIX] account_online_synchronization: currencies symbol missing Before this commit when doing a bank synchronization with a currency that wasn't enabled, the currency was not reloaded in the session and so the getCurrency function was not working properly. The symbol was not displayed. task-4749335 This commit will change a bit the display of statement line with multi currency. A popover has been added when clicking on the amount to have extra line info like the exchange difference and when we have a partial reconcile. - Correcting a bug where the amount currency of the suspense was wrong when dealing with currencies (delete or adding lines). For example when dealing with JPY currency (that have a rounding of 1). Making an invoice for 100 yen and a statement line of 50 yen. When adding the line and removing it, we could have rounding issue since we calculate the amount currency by multiplying the balance and the currency rate. In this example we achieve a suspense line of 49 when it should be 50. - Correcting another bug with exchange diff. In the same case, we had an exchange difference value of 0.01 in _lines_get_account_balance_exchange_diff which shouldn't be there. In prior version of 18.3 we checked that the origin_balance minus move_line.balance was zero in the currency of the move line as well as the one from the company and if that was the case no exchange move line were created. And since there were no exchange move line the exchange move was not created. In this commit, I reintroduce the logic of checking the move line currency to return 0.0 but that was not enough since the reconcile_plan function would still create the exchange move since we were not using the context key anymore. So now if the exchange value is 0 then we pass the context key to avoid having an exchange move. - Also doing some formatting because the linter was not correctly applied. - Correcting also a case where the reconciled_lines_ids has multiple line in case of exchange diff, which cased a traceback since is_invoice needs a singleton. - When having a foreign currency, the suspense amount is displayed in the foreign currency but when adding move line with the same currency, due to the computation on the amount_currency we could have situation where the amounts don't add up. We decided that if there is a foreign currency and that all the lines are in the foreign currency we do an addition of the amount currency otherwise we display the suspense in journal currency. For this we had to use the self.amount_currency because the liquidity line is not modified when modifying the amount currency of the statement line itself. (Tried to synchro the move and more in particular the liquidity line but had a constraint failing) - When doing an apply amount of a line that has multiple value in the reconcilied_lines_ids, it gives a traceback because we want to get the current_ids of a dict of multiple values task-4749335
3 changes
Resolved issues and error corrections
This fixes an issue in Point of Sale where using the +/- button on a product quantity or price changed the value to 0 instead of making it negative. Cashiers can now correctly enter negative quantities or prices when needed, reducing checkout errors and manual corrections.
Original PR description
Before this commit =============== Previously, when adding a product and clicking the "+/-" button, the quantity and price would change to "0" instead of becoming negative. After this commit ============= After implementing this commit, pressing the +/- button now results in the quantity and price value changing to negative instead of changing it to 0. task- 3869556
Employees on flexible working calendars can now record time off for the exact number of hours requested. This prevents timesheets linked to time off from incorrectly showing every hourly request as 4 hours, improving payroll and project tracking accuracy.
Original PR description
WIP: This change allows an employee on a flexible working calendar to request time off for any number of hours, and have that time off show up as an equivalent amount of hours on the timesheet. Before this change, any time off that was requested in hours would show up as 4 hours on the associated project timesheet for that time off type. Steps to reproduce: - Using a time off type that is associated with a project timesheet, create a time off request for 2 hours for an employee on a flexible working schedule. - Approve this time off request and see that on this employees timesheet, there is an entry for 4 hours, instead of 2. - You can repeat this test for any amount of hours and see that the timesheet entry is always 4 hours. opw-4745945
BOM cost reports now include subcontracting costs even when the requested quantity does not match a supplier's minimum quantity exactly. This makes manufacturing cost reports more complete and consistent, helping users avoid missing subcontracting expenses in planning and analysis.
Original PR description
Description of the issue/feature this PR addresses: When visualizing the structure of a BOM with subcontracted components, the subcontracting cost is omitted if no supplierinfo record exists with a…
Description of the issue/feature this PR addresses: When visualizing the structure of a BOM with subcontracted components, the subcontracting cost is omitted if no supplierinfo record exists with a `min_qty` less than or equal to the requested quantity. This leads to an inconsistent experience compared to regular components, which still show a price by selecting the closest lower `min_qty`. For subcontracted components, if the requested quantity does not match any valid `supplierinfo`, the cost line silently disappears from the report. Current behavior before PR: The subcontracting cost is not shown in the BOM cost structure if no `supplierinfo` matches the requested quantity (i.e., `min_qty > quantity`). Desired behavior after PR is merged: If no matching supplier is found for the requested quantity, the fallback logic uses any available supplierinfo (as already done in `_format_route_info`), ensuring a price is shown for subcontracted lines. This guarantees the BOM cost structure always includes the subcontracting cost, making the report complete and coherent. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr