Monday, February 3, 2025
6 changes · saas-18.1
Resolved issues and error corrections
Users can now correct a product’s main unit of measure when existing records can be safely updated without recalculating quantities. This helps new users fix setup mistakes while still blocking changes that could corrupt sales, purchase, inventory, manufacturing, or repair data.
Original PR description
The constraint to change the main UoM of a product has been removed. Globally on advanced case, it will result in a data corruption. There is two different use case when modifying the UoM of product. First, the user wants to manage the product flow to handle a different packaging by default (e.g. unit to pack of 6). In this case, the previous documents (SO/PO/...) can be trust and we need to update the current inventory in consequence (30 units -> 5 pack of 6). Second, he made a mistake or install the UoM setting and wants to update the everything at once. In this case we set the new UoM everywhere and we don't do any re-computation. Both flows are valid use cases but we choose to handle the second for a better on boarding of new users. In order to do it, we check if all the documents are in the base UoM and if it's possible to modify them everywhere without any computation. If not, we block as before. If yes, we update all the stored many2one for UoM accordingly.
Email recipients now see an extra confirmation step before being unsubscribed, preventing security scans by email clients from triggering unwanted opt-outs. The unsubscribe confirmation page is also clearer, helping users understand their status and where to manage preferences.
Original PR description
add intercalate unsubscription page Email clients have begun implementing security measures to protect users from phishing by analyzing email links, and interacting with them (see task-3972953). This…
add intercalate unsubscription page 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. -- 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, the unsubscription confirmation page will clarify that the user is unsubscribed and offer the option to manage unsubscriptions by reaching the destination page. task-4364446 X-original-commit: 52b3f53485e3977dea86e7514f2cc1952840af25 Forward-Port-Of: #195913
The point of sale now checks whether the current session information is still valid before loading data. If the session is outdated, it reloads the correct session first, helping prevent stale or incorrect sales data from appearing.
Original PR description
If the session id is outdated in the frontend, we need to ensure the reloading of data. Now we check if the session id is up to date before loading data and if not we load the new session.
This update fixes several issues from recent unit-of-measure changes, improving how units are displayed, tracked, and created in day-to-day workflows. Users get clearer conversion information in sales and manufacturing, better vendor unit handling in stock operations, and fewer incorrect options in reorder and packaging screens.
Original PR description
This PR is a follow-up for odoo/odoo#184131 and fixes some of the issues introduced by that change. Enterprise PR: odoo/enterprise#78169 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mass mailing unsubscribe links now open a confirmation step before removing a recipient, preventing email security scanners from accidentally unsubscribing people. The unsubscribe confirmation page is also clearer about the recipient’s status and offers a path to manage subscription settings.
Original PR description
add intercalate unsubscription page Email clients have begun implementing security measures to protect users from phishing by analyzing email links, and interacting with them (see task-3972953). This…
add intercalate unsubscription page 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. -- 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, the unsubscription confirmation page will clarify that the user is unsubscribed and offer the option to manage unsubscriptions by reaching the destination page. task-4364446 X-original-commit: 52b3f53485e3977dea86e7514f2cc1952840af25 Forward-Port-Of: #195913
The Kenyan eTIMS integration now handles newly created taxes that do not yet have complete tax details. This prevents vendor bill submissions from failing when users click “Send to eTIMS,” reducing disruption in invoice processing.
Original PR description
This error occurs when clicking ``Send to eTIMS``, as the system cannot retrieve tax details for the invoice lines. The issue is caused by the newly created tax lacking proper details, leaving the…
This error occurs when clicking ``Send to eTIMS``, as the system cannot retrieve tax details for the invoice lines. The issue is caused by the newly created tax lacking proper details, leaving the tax information empty.
Steps to reproduce:
---
- Install ``l10n_ke_edi_oscu`` module
- Switch to ``KE Company``
- Invoicing > Configuration > Accounting > Taxes
- Create a NEW Tax -> (Tax Computation= Group of Taxes, Tax Type = Purchase, KRA Tax Code = Select any one)
- Create a NEW Vendors Bill > Add a Product and set a new tax for it
- Click ``Send to eTIMS``
Traceback:
---
```
StopIteration: null
File "odoo/http.py", line 2406, in __call__
response = request._serve_db()
File "odoo/http.py", line 1934, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1997, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1964, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2214, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 334, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 733, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 36, in call_button
action = call_kw(request.env[model], method, args, kwargs)
File "odoo/service/model.py", line 62, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-18.1/l10n_ke_edi_oscu/models/account_move.py", line 497, in action_l10n_ke_oscu_confirm_vendor_bill
content = move._l10n_ke_oscu_json_from_move()
File "home/odoo/src/enterprise/saas-18.1/l10n_ke_edi_oscu/models/account_move.py", line 192, in _l10n_ke_oscu_json_from_move
line_items = self._l10n_ke_oscu_get_json_from_lines(tax_details)
File "home/odoo/src/enterprise/saas-18.1/l10n_ke_edi_oscu/models/account_move.py", line 243, in _l10n_ke_oscu_get_json_from_lines
tax, line_tax_details = next(
```
At [1], we are encountering ``tax_details['tax_details_per_record'][line] ['tax_details'] = {}`` because there are no tax details available for the newly created tax.
This commit now ensures that both tax lines and tax repartition lines are present in the tax.
[1] - https://github.com/odoo/enterprise/blob/d7d816efdff81c9c6eab1f11b04445f08c73e519/l10n_ke_edi_oscu/models/account_move.py#L243-L247
sentry-6236536577