Daily updates from Odoo
Friday, January 31, 2025
9 changes · 18.0
New functionality added to Odoo
Brazilian NF-e invoices can now include package and transport information from related stock operations. This helps teams prepare EDI invoices before delivery by recording packaging during an earlier picking step and linking those packages directly to the invoice.
Original PR description
NF-e invoices can optionally include sent packages. This integrates with the stock module to provide a way for users to specify packages on invoices. Typically EDI is done before products are sent…
NF-e invoices can optionally include sent packages. This integrates with the stock module to provide a way for users to specify packages on invoices.
Typically EDI is done before products are sent out ("ordered quantity" invoicing policy). To handle this the user can enable 2-step picking. In the first step they can record how they will package the products. After that, the packages can be included on the invoice for EDI. At a later time products can be delivered to the customer in the last step. We provide a picking smart button in the invoice form view to easily navigate to the related pickings to sort out the packaging. This is typically done by a dedicated person who handles everything related to EDI.
Note that for products to be included in packages they must be storable (is_storable). The stock module allows to package
non-storable products as well, but in those cases the resulting stock.quant.package's are empty (no quant_ids).
task-4298921
## TODO
- [ ] translationsResolved issues and error corrections
Point of Sale now keeps its order tracking sequence from resetting when the browser is refreshed during the same device session. This reduces the risk of duplicate tracking numbers and helps staff avoid confusion when managing new orders.
Original PR description
Before this commit, refreshing the browser and creating a new order could yield a duplicate tracking number, causing confusion. This commit addresses the issue by preventing the sequence from resetting within the same session on a single device. opw-4501048 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Settling an unconfirmed sales quotation through Point of Sale now correctly updates the delivered quantity on the quotation. This keeps sales records accurate even when the quotation was not confirmed before payment in the POS.
Original PR description
When settling a quotation (unconfirmed sale order) from the POS, the delivered quantity was not updated in the quotation. Steps to reproduce: ------------------- * Make a sale order but don't confirm it * Go to the POS and settle the quotation > Observation: The delivered quantity is not updated in the quotation Why the fix: ------------ If the quotation was not confirmed no move lines were created, so the `has_valued_moves` was False and no move lines were created for the PoS order. And because the pos order has no move lines the quotation was not updated with the delivered quantity. opw-4479862
This fix prevents Point of Sale sessions from crashing when orders are created and receipts are printed while offline, then synchronized after reconnecting. It also shows a clear connection-lost message for kitchen order sending while offline, helping staff understand what went wrong instead of encountering a traceback.
Original PR description
Steps to Reproduce: =================== - Open a POS session and go offline. - Create orders and print receipts at the receipt screen. - Restore the internet connection and bring the POS online. - A…
Steps to Reproduce: =================== - Open a POS session and go offline. - Create orders and print receipts at the receipt screen. - Restore the internet connection and bring the POS online. - A traceback occurs during synchronization. Before this commit: ===================== A traceback occurred when making a POS order, printing a receipt in offline mode, and later going online. The issue arose because the nb_print field was updated via a backend write call to restrict payment method edits. However, during offline mode, the order_id was a string, causing the traceback. After this commit: =================== - The backend write call for nb_print is bypassed in offline mode. Instead, the `nb_print` count is updated on the frontend. When the order syncs after going online, the increased `nb_print` value prevents payment method edits as expected. - Removed the nb_print validation constrains from payment lines. Validation is already handled in the write method of pos.order. This change avoids validation errors when syncing orders from offline to online, where nb_print = 1 and payment lines exist. The write method ensures proper handling during order creation. - A `Connection Lost` error message is displayed when attempting to send orders to the kitchen while in offline mode. Task-4504625
The spreadsheet tool was updated to a newer version with fixes that make formulas faster and improve everyday editing behavior. It also corrects number parsing for certain locales and improves pivot table calculations, reducing errors for users working with spreadsheets in Odoo.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f505971d4 [REL] 18.0.13 Task: 0 https://github.com/odoo/o-spreadsheet/commit/9d5251d0d [PERF] formulas: add a cache on…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/f505971d4 [REL] 18.0.13 Task: 0 https://github.com/odoo/o-spreadsheet/commit/9d5251d0d [PERF] formulas: add a cache on linear search functions Task: 4080146 https://github.com/odoo/o-spreadsheet/commit/4ef9f2da1 [FIX] auto-complete: hide auto-complete when selecting a cell Task: 4022927 https://github.com/odoo/o-spreadsheet/commit/d131f1585 [FIX] locale: wrong parsing with "." thousand separator Task: 4525746 https://github.com/odoo/o-spreadsheet/commit/7793d0931 [FIX] ui_sheet: batch resize commands in `AUTORESIZE_ROWS` Task: 4504918 https://github.com/odoo/o-spreadsheet/commit/07ee8ab47 [FIX] pivot: use displayed value in computed measure Task: 4517312 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
This fix lets the recruitment app create separate candidate records for the same email address when applications are for jobs at different companies. It prevents erroneous duplicate-candidate errors and supports multi-company hiring workflows.
Original PR description
In version 18.0, due to this PR: https://github.com/odoo/odoo/pull/190334/commits/b28dbc7faeac1095fe01d75e1783d7395, applying to jobs in different companies using the same email will not create separate candidates. This behavior raises the following error: https://github.com/odoo/odoo/blob/75571a661c5fa1dd80299bb110d9297219b7f465/addons/hr_recruitment/models/hr_applicant.py#L351. This PR aims to fix the issue by ensuring that candidates are unique per company. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents businesses from enabling lot-based valuation on products that still have valued stock without a lot number. It avoids unusable stock records and accounting discrepancies, and also clarifies an error message related to negative lot quantities.
Original PR description
When Lot valuation is enabled on a product, it is not longer possible to create a move without lot. Hence, if you had a valued quantity without lot before enabling lot valuation, it was impossible to…
When Lot valuation is enabled on a product, it is not longer possible to create a move without lot. Hence, if you had a valued quantity without lot before enabling lot valuation, it was impossible to update or empty this quantity in any way. Leaving you with an unusable StockQuant. Furthermore, when enabling the lot valuation, no layer was created for the quants without lot, creating a permanent discrepancy between the stock and valuation. This discrepancy was still present even after disabling the lot valuation. To fix this issue, we do not allow the lot valuation if there is a quant without lot in a valued location.  + Fix negative lot error message PREV:  NOW:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Email unsubscribe links now require an extra confirmation step, preventing automated security scans by email clients from unsubscribing recipients by mistake. The unsubscribe confirmation experience is also clearer, so users can easily see when they have been unsubscribed and still manage their subscription settings if needed.
Original PR description
## Do not merge; commit will be cherry-picked into fw-port PRs 16.0 PR: https://github.com/odoo/odoo/pull/189561 Email clients have begun implementing security measures to protect users from phishing…
## Do not merge; commit will be cherry-picked into fw-port PRs 16.0 PR: https://github.com/odoo/odoo/pull/189561 Email clients have begun implementing security measures to protect users from phishing by analyzing email links, and interacting with them (see task-3972953). This has the side effect of automatically unsubscribing email recipients from mailing lists by clicking the link in the footer of the emails. This commit adds an intermediate step to the process, by requiring users to click on a button before they are unsubscribed. task-4364446 -- The current unsubscription destination page for emails makes it unclear for the user whether they've been unsubscribed or not. This is because the "unsubscription confirmed" box is placed below the "manage subscription settings" box on the confirmation page. To avoid confusion, while ensuring current Studio customizations to stable instances are not impacted, a new intercalate page is added to clarify that the user is unsubscribed, and offer the option to manage unsubscriptions by reaching the previous page. task-4364446
This update corrects inconsistent Profit and Loss report data that could cause the report to fail when loading lines. Users can now open the report more reliably without encountering an unexpected error.
Original PR description
The aim of this commit is to avoid having inconsistent data leading to a Traceback while loading the lines of the Profit and Loss report. Context: cbe74884b937f630cf1d2ccf475a04e70b6f4669 changed the structure hierachy. It wasn't a big issue until e96e8d4aa663a4a5305214f2124243070fa797bb resequenced the lines and changed the order of computation in `<account.report>._get_line`. This method assumes the parent lines are going to be computed first and then cached in a dict. Leaving `parent_id` made this assumption wrong leading to a KeyError exception throwing a traceback. Before the commit: The data kept the previous `parent_id` which could lead to a traceback due to inconsistent data. After the commit: `parent_id` not being set, the code doesn't try to get it from the cached lines and computes it correctly. task-id: None