Daily updates from Odoo
Friday, June 5, 2026
3 changes
1 change
Resolved issues and error corrections
This update resolves a critical issue where the Point of Sale partner list would slow down or crash when handling a large number of customers in the browser cache. The fix reduces the number of partner lines rendered, improving performance and stability, especially when searching for customers.
Original PR description
Currently, it's possible to experience very slow loading speed of the partner list and/or browser crashes in the POS when there are thousands of customers stored in the browser cache. This appears to…
Currently, it's possible to experience very slow loading speed of the partner list and/or browser crashes in the POS when there are thousands of customers stored in the browser cache.
This appears to be caused by a few reasons compounding together:
1. While we limit the number of customers in the initial render of the list, there is no limit during the search. Therefore, if there are thousands of customers matching the search pattern loaded in the browser cache, the browser will attempt to render equally as many `PartnerLine` components.
2. A 100 ms debounce time is fast enough to trigger the render after each key stroke. 200~300ms is the industry standard for Software UI debounce.
3. For each customer rendered in the list, we may perform a search for its parent partner amongst all loaded customers with the function `PosStore.getPartnerCredit()`.
This PR aims at reducing the number of partner lines rendered in a short period of time and thus, at improving speed and avoiding crashes.
Steps to reproduce:
1. Create a fresh db + install the point_of_sale with demo data
2. Populate the res.partner model by a factor of 100 to reach 4000+ partners
3. Update the following system parameter to make sure that we load all partners in the browser cache when we open the POS session:
- `point_of_sale.limited_customer_count` -> 5000
4. Open a POS session and and click on the `Customer` button to render the partner list
5. Type `adm` in the search bar at normal typing speed
6. Crash
Ticket: opw-5435973
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#2586672 changes
Resolved issues and error corrections
This update resolves a critical issue where the company's XBRL reports were failing validation by the NBB due to missing data disclosures. The fix adds necessary data points to the report, ensuring compliance and successful submission. This prevents potential delays or rejections of the financial reports.
Original PR description
This commit adds missing explanatory disclosure datapoints to the generated XBRL report. The missing disclosures resulted in failing validation when report is submitted to NBB. The datapoints are only added if the original value was non-zero. For example, the tangible assets disclosures are only added if the tangible assets in balance sheet is non-zero. Additionally, only disclosures that were reported as causing a failing validation were added. task-5977199
This update resolves a critical issue preventing CFDI (Mexican electronic invoice) stamping for payslips with IMSS incapacity leaves. The fix ensures the required 'ImporteMonetario' attribute is correctly included and the 'DiasIncapacidad' value is formatted as an integer, aligning with SAT regulations and preventing validation errors.
Original PR description
The Incapacidad node in the nomina 1.2 complement had two issues preventing CFDI stamping for payslips with IMSS incapacity leaves: 1. The ImporteMonetario attribute was missing entirely. This is a…
The Incapacidad node in the nomina 1.2 complement had two issues
preventing CFDI stamping for payslips with IMSS incapacity leaves:
1. The ImporteMonetario attribute was missing entirely. This is a
conditional attribute defined in the SAT XSD (nomina12.xsd) to
express the monetary amount of the incapacity. Without it, the
SAT rejects the CFDI with validation error NOM95:
'El atributo Deduccion:Importe no es igual a la suma de los
nodos Incapacidad:ImporteMonetario, ya que la clave expresada
en Nomina.Deducciones.Deduccion.TipoDeduccion es 006.'
2. The DiasIncapacidad attribute was rendered as a float (e.g. '11.0')
instead of an integer ('11'). The XSD defines it as xs:int with
minInclusive=1, so the float representation caused error 301
(XML mal formado).
Per the SAT filling guide, the ImporteMonetario value depends on
the context:
- Default: the amount comes from deduction 006 (Descuento por
incapacidad), which is the discount applied to the worker.
- Exception: when perception 014 (Subsidios por incapacidad) exists,
the amount comes from that perception instead, representing the
subsidy paid to the worker.
When neither deduction 006 nor perception 014 exist on the payslip,
the attribute is omitted (None) to comply with its conditional
nature in the XSD.