Daily updates from Odoo
Thursday, February 20, 2025
19 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
7 changes
Enhancements to existing features
Ecuadorian companies can now record required dividend information when creating purchase withholdings for shareholder profit payments. The update adds the needed fields, tax handling, and reporting output so dividend withholdings are reflected correctly in electronic documents and ATS reports.
Original PR description
Implement dividens in purchase withholdings. When a company pays its shareholders some profits from the closed fiscal period, there is also a Purchase WTH needs to be created. Fields required in…
Implement dividens in purchase withholdings. When a company pays its shareholders some profits from the closed fiscal period, there is also a Purchase WTH needs to be created. Fields required in withholding wizard, XML and ATS report - **Dividend payment date:** it can be different to withhold date. It must be showed in ATS **`<fechaPagoDiv>`** and XML **`<fechaPagoDiv>`** - **Dividend income tax:** value of the Income Tax paid by the company that corresponds to the reported dividend. The computation of this value can be quite varied because of several parameters (exemptions, non-deductible expenses, deferred taxes, shareholder participation,annual withholding table with fixed withholding for the basic fraction, etc...). It must be showed in ATS **`<imRentaSoc>`** and XML **`<imRentaSoc>`** - **Dividend fiscal year:** The fiscal year in which earnings on the reported dividend are generated. The company could pay previous periods. It must be showed in ATS **`<anioUtDiv>`** and XML **`<ejerFisUtDiv>`** - **Show fields dividend:** Computed field to show the dividends fields. task: 865
Financial reports now identify the exact source report when reusing figures from another report, reducing the risk of ambiguous or incorrect totals. This makes statutory and management reporting easier to maintain across countries and improves confidence in reported balances.
The Move to Work Center action now lists only real, valid work centers and excludes the one currently in use. This prevents accidental creation of invalid records and helps shop floor users switch work centers more reliably.
Original PR description
Before Commit: ------------------------------ - The "Move to Work Center" action displayed invalid options like "ALL MO" and "MY WO," leading to the creation of invalid work center records. - Not all available work centers were listed, preventing users from switching to valid work centers not added to the shopfloor. - These issues caused confusion and disrupted workflow. After Commit: ----------------------------- - The list now shows only valid work centers, excluding invalid options like "ALL MO" and "MY WO." - All available work centers, except the current one in use, are displayed, ensuring users can switch to any valid work center. - This update eliminates confusion, prevents invalid records, and enhances workflow accuracy. task-4447003
The document signing experience now shows a redesigned thank-you dialog for people who are not logged in. This makes the completion step clearer and more polished for external signers, improving the overall customer-facing flow.
Original PR description
Redesign of the dialog for non-logged in users when signing a document task-id: 4426891
Purchase order status updates linked to approval requests now process more efficiently. This reduces slowdowns when many purchase orders change status at once, improving day-to-day responsiveness for purchasing teams.
Original PR description
To log the changes in the state of a purchase order to the chatter of the related approval requests, a search was done to find the product lines related to the approval requests. This search was performed inside a loop. This commit performs the search outside of the loop to avoid slowing down the system when the state of multiple purchase orders has changed. Related-PR: https://github.com/odoo/enterprise/pull/71294 task-3561514
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
11 changes
Enhancements to existing features
Point of Sale screens can now use a simplified HTML editor for restaurant appointment fields, making it easier to edit formatted content directly in POS. The update also prevents errors when the editor runs in this lightweight mode without media features enabled.
Original PR description
### Commit 1 In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement…
### Commit 1
In the point of sale environnement we want to be able to edit html field
in a minimal way. So only core plugins are added to the html_editor.
As we have a special assets environnement for the point_of_sale we can
directly patch the main `htmlField` definition without impacting main
assets of Odoo.
So in Order to make it work we need to remove the preventDefault on
backspace key at the initialization of PoS.
Enterprise: 79703
### Commit 2
The html editor should only work with the “CORE_PLUGINS” plugin set.
But when an HTML field is used only with this Set a traceback is raised
because the “MediaPlugin” plugin is missing.
This is due to this piece of code:
```js
async getEditorContent() {
await this.editor.shared.media.savePendingImages();
return this.editor.getElContent();
}
```
Each time an HTML input is unfocused, this method is called and attempts
to save the pending images. The problem is that media.savePendingImages
depends on the “MediaPlugin”.
A quick fix is made in this commit by adding a question mark after media
to avoid traceback if the plugin is missing.Restaurant appointment screens in Point of Sale can now offer simple HTML text editing. This lets staff make light formatting changes where needed while keeping the POS experience streamlined and avoiding changes to the wider Odoo interface.
Original PR description
In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement for the point_of_sale we can directly patch the main `htmlField` definition without impacting main assets of Odoo. Community: 198482
Planning emails now include shifts scheduled on weekends, so recipients get a complete view of their work schedule. This helps avoid missed assignments and improves communication for teams that operate on Saturdays or Sundays.
Original PR description
Issue: Steps To reproduce: Solutions: opw-4378797
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