Daily updates from Odoo
Thursday, February 20, 2025
11 changes
1 change
Resolved issues and error corrections
This fix ensures that when the destination location of an internal transfer is changed, the related detailed stock lines are updated as well. This prevents mismatches between the transfer overview and its underlying stock movements, improving inventory accuracy.
Original PR description
**Steps to reproduce the bug:** - Create a storable product and update its quantity to 10 units in WH/stock. - Create an internal transfer: - From: WH/stock - To: WH/stock/shelf1 - Mark the picking as "To Do". - Picking is in the "Ready" state. - Update the destination location of the picking. **Problem:** The `dest_location_id` is updated in the move, thanks to the `_compute_location_dest_id` in the `stock.move`: https://github.com/odoo/odoo/blob/11e69870db1c49d9a6af79ffd263e4e162b34b6b/addons/mrp/models/stock_move.py#L147-L148 However, the `_compute_location_dest_id` of `stock.move.line` is not triggered because the `location_dest_id` field is not present in the view: https://github.com/odoo/odoo/blob/0f531b3f68e2401c717879bd484d6125aa83a37d/addons/stock/models/stock_move_line.py#L110-L116 opw-3932717
2 changes
Resolved issues and error corrections
Quantity quality checks no longer automatically mark stock moves as picked. This prevents other items in the same picking from being skipped during validation and keeps the picked status under user control.
Original PR description
Issue Before this Commit: ----------------------- When performing a quantity quality check on a move, the system automatically checked the picked checkbox. This resulted in only moves marked as picked being validated, causing other moves to be skipped during the picking validation. Steps to Reproduce: ---------------------- 1. Create a picking with multiple moves. 2. Perform a quantity quality check on a move. 3. Register a failed quantity. 4. Observe that the picked checkbox is automatically checked. 5. Validate the picking. (Only moves with the picked checkbox checked are validated) With this Commit: -------------------------- - Prevented the automatic marking of the 'Picked' checkbox after a quality check. - This ensures that the picked status is manually updated by the user, allowing for consistent validation behavior and preventing moves from being unintentionally skipped during the validation process. task-4517277
Purchase approval flows now use the correct units when replenishment creates orders, reducing errors in quantities and ordering. Quality checks also receive the product information needed to display unit conversion details consistently.
Original PR description
Some other fixes for UoMs refactoring. Follow-up of https://github.com/odoo/odoo/pull/184131. Task-4471379
8 changes
Resolved issues and error corrections
This fix prevents Odoo from failing when reading document data that is not encoded in UTF-8. It improves reliability for users accessing certain stored documents through document searches or integrations.
Original PR description
Since [this first commit], reading bytes not encoded in UTF-8 raises an error. The problematic code was moved from odoo/tools/date_utils.py to odoo/tools/json.py by [this other commit] after the bug was introduced. Steps to reproduce: - Install the documents app. - Call search_read on documents.document to read the raw field. => A UnicodeDecodeError is raised on some documents. The `ustr()` function is deprecated, so the fix is just about using the same logic. As it is impossible to guess the encoding of the bytes, we try to decode them with common encodings. [this first commit]: https://github.com/odoo/odoo/commit/6a68e93f924cc78ba15bc78d981b1bf115e57a0d [this other commit]: https://github.com/odoo/odoo/commit/5ef4c07ada1b47cd08a0fc7a2dd626f92d79b715 opw-4457853
Portal users can now open invoices that include early payment discounts without seeing an access error. This keeps customer self-service invoice access working when discounted payment terms are used.
Original PR description
Steps to reproduce: ------------------- - Create an invoice and set the partner to a portal user. - Set the payment term to any payment term with an early discount option and confirm the invoice. - Log in as the portal user and view my invoices, you will get an error message that you aren't allowed to access "Partial Reconcile" records Cause: ----- Since #182656, access to the payment_terms was added to the _is_eligible_for_early_payment_discount method, to allow applying the early discount for in_payment invoices. Fix: --- Add sudo qualifier to the payment_terms access to allow this function to be called by portal users. opw-4535621 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Restaurant point of sale users can now split and pay an order from one device even when the same table was updated from another device. The fix prevents the app from crashing when the same order line deletion is received more than once during device synchronization.
Original PR description
Steps to reproduce: =================== - Open the restaurant registry from 2 devices A and B - From device A, open a table, add a product, go back to floor plan - From device B, choose the same…
Steps to reproduce: =================== - Open the restaurant registry from 2 devices A and B - From device A, open a table, add a product, go back to floor plan - From device B, choose the same table, click split, choose the product added from device A, and click on pay. Reason: ======= We are trying to delete the same record 'pos.order.line' twice, i.e. we're calling `processDeletedRecords` twice with the same record id [1], so it succeds the first time, and it removes the record from the frontend cache, but when trying to process the deletion the second time, it fails since the record doesn't exist in the cache anymore [2], and hence, the `record` object is `undefined` in the second call to `delete_` with the same record id, causing the traceback [3]. The reason we're calling `processDeletedRecords` twice with the same record id is because `sync_from_ui` is issuing 2 sync events at the same time [4], since it's been passed 2 orders when splitting [5]. Fix: ==== Since it's an urgent bug, this fix just skips deleting the record if it doesn't exist, without "fixing" the root cause of syncing event being issued twice. [1]: https://github.com/odoo/odoo/blob/2d0ed96675541a88d9132bd01d33730f72c79d1d/addons/point_of_sale/static/src/app/store/devices_synchronisation.js#L116 [2]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/static/src/app/models/related_models.js#L691 [3]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/static/src/app/models/related_models.js#L664-L665 [4]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/models/pos_order.py#L1043-L1046 [5]: https://github.com/odoo/odoo/blob/0faf168bbcbc66daeb58999a6222cd2c6d41134c/addons/pos_restaurant/static/src/app/split_bill_screen/split_bill_screen.js#L167 opw-4562134
Point of Sale order validation now stops if payment processing fails or the order is not fully paid. This helps prevent orders from being incorrectly marked as paid, reducing the risk of financial discrepancies.
Original PR description
Before this commit, _process_saved_order caught errors from action_pos_order_paid and logged them. This meant that even when payment processing failed, the order state could be set to "paid", leading to financial discrepancies. Removing the try-catch block now stops order validation when payment is incomplete, ensuring orders are only marked as paid when fully confirmed. opw-4487123 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents helpdesk teams from using working calendars that cannot produce reliable SLA deadlines, such as flexible calendars or calendars without working hours. It avoids ticket creation errors and helps ensure SLA deadlines are only based on valid schedules.
Original PR description
Steps to reproduce: - Let's consider an helpdesk team HT - Let's consider a working calendar WC with flexible hours and no working hours - Set an SLA policy on HT and set WC as SLA schedule - Create a ticket in HT Bug: A traceback was raised because the function plan_hours was called in _compute_deadline with no deadline Expected behavior: With WC in flexible hours, a deadline is computed according to the SLA policies With WC not in flexible hours and not working hours, no deadline is computed (bad configuration) opw:4563223
Intrastat reporting has been updated to include service transactions alongside goods where required. This helps businesses produce more complete compliance reports, especially for Belgian Intrastat declarations involving services.
Original PR description
Backport of https://github.com/odoo/enterprise/commit/379ddbe4a0a479bd7547877175476230f92b4683 Task: 3926963 Upgrade: https://github.com/odoo/upgrade/pull/7201
This fixes several usability issues in the Documents list view. Users can now edit records without keyboard shortcuts interrupting their work, avoid seeing duplicate Folder information, and update Website and Folder fields when allowed.
Original PR description
This commit fix the following issues: - When editing a record in list view, it wasn't possible to use the space key nor the enter key. The first one was (un)selecting the current line while the second one entered the folder or preview mode when validating the changes. - Folder was present twice in the list view. - Website and Folder are now editable. Task-4558286
This change lets account chart updates avoid creating extra accounts, taxes, or fiscal positions when they are not wanted. It helps keep localization updates, especially for the Netherlands, more predictable and reduces unintended accounting setup changes.
Original PR description
add force_create in _load function