Wednesday, April 10, 2024
31 changes · 17.0
New functionality added to Odoo
This update adds support for Malaysian Peppol PINT electronic invoicing, enabling businesses to generate compliant XML invoice files. It introduces new fields for SST (Sales and Service Tax) and TTx registration numbers, which are optional but required for certain tax operations and must be displayed on invoices when registered.
Original PR description
Add support for the Malaysian Peppol PINT specialization, allowing to generate the related XML file. This also adds a few additional features that are in the specifications: - SST registration number, needed in the xml and on the invoice. - TTx registration number, needed on the invoice. Both numbers are optional, but if the business is registered in any of them they are required to display these on the invoices and they are required to enforce some rules. (cannot send taxes that are not 0% "Out of scope" if not registered with SST, ..) Task id # 3647922 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
The Luxembourg payroll tax brackets have been updated to reflect the official changes effective January 1, 2024. This ensures that employee tax calculations are accurate and compliant with the latest Luxembourg tax regulations.
Original PR description
The tax brackets have been updated since 01-01-2024 https://impotsdirects.public.lu/dam-assets/fr/baremes/baremes-impot-20240101-fr.pdf https://impotsdirects.public.lu/fr/baremes.html#Ex Add new parameter values to reflect the change. task-3748852
Resolved issues and error corrections
This fix allows users to decrease the quantity of service products in the Field Service Management catalog, even when those services have been marked as delivered. Previously, the system prevented quantity reductions for delivered services. This change gives users more flexibility when managing service quantities that were invoiced manually.
Original PR description
The quantity_decreasable_sum of a service product no longer takes into account the delivered quantities This is done so we can decrease service product quantity in the product catalog even tho those product are considered delivered by default https://github.com/odoo/odoo/pull/155157 Task-3689939 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Database indexes have been added to the quality check system to speed up the Shop Floor App when it opens. This optimization reduces loading time and improves the overall user experience when quality management features are enabled in manufacturing operations.
Original PR description
Add missing indexes on quality_check. This speeds up search_read on mrp.production when the quality/quality_mrp modules are installed. It's mostly useful at the opening of the Shop Floor App to turn Seq Scans into Index Scans. COM PR: https://github.com/odoo/odoo/pull/160349
Database indexes have been added to the Manufacturing module to speed up the Shop Floor app when it loads production data. This optimization reduces the time needed to retrieve manufacturing orders and work orders, resulting in a faster user experience when opening the Shop Floor application.
Original PR description
Add missing indexes on stock.move and mrp.workorder to speed up search_read on mrp.production. That's mostly useful at the opening of the Shop Floor app. This turns Seq scans into Index scan, leading to an overall speedup. ENT PR: https://github.com/odoo/enterprise/pull/59998 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Database indexes have been added to improve the speed of analytic line queries, particularly during sales order creation. This optimization reduces database load and improves system responsiveness by making frequently-used searches more efficient.
Original PR description
## Description Add indexes affecting queries related to `account.analytic.line`. Based on heuristics like domains in `search`/`read_group` that are not really selective, or being an inverse of One2many. Some of these searches are on code-paths that are frequent, like creation of an SO. The goal is to reduce the number of Seq.Scan or non-selective Index Scan. ## Reference task-3724844 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves a problem where accounting report PDFs were cutting off columns when partner names or currency symbols were too long. The solution adds width constraints and text wrapping to ensure all report columns display properly in PDF exports, improving the reliability of aged payable and aged receivable reports.
Original PR description
### Steps to reproduce: - Create a vendor bill for a partner with a super long name. - Go to Accounting > Reporting > Partner reports > Aged Payable - Generate the pdf #### > If the partner's name is…
### Steps to reproduce: - Create a vendor bill for a partner with a super long name. - Go to Accounting > Reporting > Partner reports > Aged Payable - Generate the pdf #### > If the partner's name is long enough the last columns will not appear ### Cause of the issue: Pdf are generated in Odoo using wkhtmltopdf. This one takes an html file renders it in Qtweb (shrinking its content to fit a single screen) and making a screenshot to generate a pdf. However, there is a limit to the shrinking applied to the html body. Therefore, if the content is too wide part of it will not appear on the pdf (this can easily been observed using Qtweb (but not with chrome)). Between 16.4 and 17.0 there was a refactoring of the way account reports are handled in Odoo see commit 2d77434 and commit b8209e2. Because of this refactoring, there is currently no width limit for cells of the table used in the body of account reports. As such, if the content of the first column is too wide, every other column will be pushed out of the screen before the pdf is generated. This is exactly what happens here. ### Fix: We added a max width to cells and a wordbreak option on the css file used for the html in the pdf export of every account reports. This ensures that the content of any cell will not push the other cells outside of the screen before the screen shot. ### Second Issue: Even with this issue out of the way, it is still possible for the content of the aged partner balance reports to be too wide after the shrink of the hmtl if you use a currency whose symbol is too long. The reason is the same as before coupled with the fact that these reports contain too many columns displaying the currency symbol of the company. ### Second part of the fix: To fix this second issue, we use a custom css class for the export of the two problematic reports (aged payable and aged receivable) when the currency symbol is too wide. opw-3749625 ---
The Journal Report PDF export now displays the reporting period or date in the document header. Previously, when users printed or exported the Journal Report to PDF, the header was missing this important date/period information, making it unclear what time period the report covered. This fix ensures the date is now visible in the PDF header for better clarity and record-keeping.
Original PR description
Currently, when you print the journal report, the header doesn't contain any information about the date/period. Steps to reproduce * install `account_reports` * open and export the Journal Report to PDF The period/date does not appear in the header (or anywhere in the PDF) opw-3827366
A recent system update changed how subscription invoices are displayed, which removed the Brazil-specific customization that hides certain tax-related amounts. This fix restores the proper invoice display for Brazilian customers by creating a new module that reapplies the customization.
Original PR description
4755b82fa40df50362e72ccc3e08f6ce5383dde3 changed the portal template used for subscriptions by overriding `_get_name_portal_content_view()`. Because of this, the override in `l10n_br_sales` no longer applies and we end up with the standard subscription portal view instead of the customized one for Brazil. Although not very nice, the only way around it I could think of was to create this new module so we can override again with a new portal template that inherits from sale_subscription.subscription_portal_content.
This update improves the commercial invoice data for international shipments in the UPS delivery modules. Missing information required for proper customs documentation is now included, ensuring international orders are processed more smoothly and with complete documentation.
Original PR description
This commit adds some of the missing information in the commercial invoice for international shipments in `delivery_ups` and `delivery_ups_rest` modules. opw-3668875 Forward-Port-Of: odoo/enterprise#58861
This fix improves the French FEC import feature by providing a clear error message when required data is missing from imported files. Previously, users would encounter a confusing technical error; now they receive a user-friendly message explaining what went wrong, making the import process more reliable and easier to troubleshoot.
Original PR description
When users try to import a file into the ``FEC import`` and the file doesn't have the value of ``key``, an error occurs. This happens because the system requires the value of ``JournalCode`` to be…
When users try to import a file into the ``FEC import`` and the file doesn't have the value of ``key``, an error occurs. This happens because the system requires the value of ``JournalCode`` to be present in the imported file for successful processing.
Steps to reproduce:
- Install ``l10n_fr_fec_import`` module
- Change company from YourCompany to FR Company
- Now Accounting -> Configuration -> Accounting -> Journals
- Select all journals -> export all journals -> download file in CSV format.
- Configuration -> Settings -> Accounting Import -> import -> Click on the ``Import FEC button``
- Upload a file that you have downloaded and Import
Traceback:
``` AttributeError: 'NoneType' object has no attribute 'replace'
File "odoo/http.py", line 2252, in __call__
response = request._serve_db()
File "odoo/http.py", line 1828, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1848, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1826, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1833, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2058, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 42, in call_button
action = self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "home/odoo/src/enterprise/saas-17.1/l10n_fr_fec_import/wizard/import_wizard.py", line 683, in action_import
return self._import_files()
File "home/odoo/src/enterprise/saas-17.1/l10n_fr_fec_import/wizard/import_wizard.py", line 729, in _import_files
for xml_id, record in generator(rows, cache):
File "home/odoo/src/enterprise/saas-17.1/l10n_fr_fec_import/wizard/import_wizard.py", line 193, in _generator_fec_account_journal
journal_xml_id = self._make_xml_id('journal', journal_code)
File "home/odoo/src/enterprise/saas-17.1/l10n_fr_fec_import/wizard/import_wizard.py", line 110, in _make_xml_id
key = key.replace(' ', '_')
```
This commit resolves the mentioned issue by verifying if the key is present; otherwise, it will raise a UserError.
sentry - 4929578488Fixed a crash that occurred when users tried to drag and drop documents in the schedule activity dialog box. The issue was caused by the dialog attempting to access folder information that wasn't available in that context. After this fix, users can now interact with documents in the schedule activity dialog without encountering errors.
Original PR description
To reproduce the issue: 1. Switch to the `Activity` view for the Documents module. 2. Click `+ Schedule Activity`. 3. The dialog box opens up with the list of documents. 4. Try to DRAG & DROP any…
To reproduce the issue:
1. Switch to the `Activity` view for the Documents module.
2. Click `+ Schedule Activity`.
3. The dialog box opens up with the list of documents.
4. Try to DRAG & DROP any document list item.
5. We get a TRACEBACK.
Issue:
- The `onRecordClick` and the `onDragStart` events bound on the record rows are
executed when we DRAG & DROP or click the records from the list of documents.
- When the method(`onDragStart`) is called from inside the `Dialog` scope, the
`foldersById` in the line of code below returns a singleton object(`{false: {…}}`)
with `false` being the folder_id of the `All` workspace.
- However, when the same method is called from the list/kanban view
(i.e. outside of the `Dialog` scope) then the `foldersById` would return an
object with all of the folderIds present as keys.
- In our case `foldersById[record.data.folder_id[0]].has_write_access` throws a
traceback because the value of every `record.data.folder_id[0]` is a `Number`
(as no document can be present inside the `All` workspace), but the
`foldersById` object only contains the `false` key.
Fix:
- The schedule activity dialog box renders the JS of the list view of the related module. In our case, it renders the base list view from the documents and renders the JS of it.
- We cannot change this in stable so we fix the issue in JS.
After this commit:
- The records are no longer selected.
- We no longer get the traceback.
Task-3727009
Forward-Port-Of: odoo/enterprise#56356This fix resolves an issue where Chilean electronic invoices (boletas) were incorrectly marked as "Rejected" when the system couldn't determine their actual status from the tax authority. Now, when the status is unclear, the system will show "Ask For Status" instead, allowing users to verify the invoice status again. This prevents users from being stuck with rejected invoices that haven't actually been rejected.
Original PR description
**Steps to reproduce:** (requires a real certificate and a real CAF) - Install Accounting and l10n_cl_edi_boletas - Switch to a Chilean company - Configure the localization settings with a real…
**Steps to reproduce:** (requires a real certificate and a real CAF) - Install Accounting and l10n_cl_edi_boletas - Switch to a Chilean company - Configure the localization settings with a real certificate and a real CAF - Create an invoice: * Customer: [a Chilean customer] (e.g. Blanco Martin & Asociados) * Document Type: (39) Boleta Electrónica * Product: [any] - Confirm the invoice - Click on "Send Now to SII" - "SII DTE status" will be "Ask For Status" and "Send Now to SII" will change to "Verify on SII" - As soon as it changes to "Verify on SII", click on it - Repeat clicking on "Verify on SII" as soon as it becomes clickable **Issue:** At some point, "SII DTE status" will switch from "Ask For Status" to "Rejected", even if the invoice has not been officially rejected. And as "Verify on SII" link will not be available anymore, it will not be possible to correct the SII DTE status. **Cause:** While checking the SII result after clicking on "Verify on SII", we could receive a response with "estado: SOK" and "estadistica: []". This combination doesn't allow to determine a specific status for the SII DTE and therefore falls back on the default status that is "Rejected". **Solution:** If the SII DTE status cannot be determined, we should use "Ask For Status" as a fallback status to allow verifying it again. opw-3781373 Forward-Port-Of: odoo/enterprise#60284 Forward-Port-Of: odoo/enterprise#59523
This update fixes a display problem in the My Timesheets grid view where the start button would not appear correctly when there are more than 26 timesheet entries. The fix ensures that all timesheet rows display properly regardless of how many entries are present, improving the user experience for employees with extensive timesheet records.
Original PR description
In My Timesheets grid view if you have more than 26 lines, the last ones will display a border only Tweaked some conditions in the grid_timer_button_cell.xml Task-3670682 Forward-Port-Of: odoo/enterprise#59800 Forward-Port-Of: odoo/enterprise#53749
This update fixes an issue where certain employee information fields in the Morocco payroll module were not properly restricted to private employee records. The fix adds appropriate access controls to ensure these sensitive fields are only accessible where intended, improving data security and system stability.
Original PR description
Basically, the following fields are only defined in private employee, and not on public employee. Thus we need to put group on them
This update fixes a critical issue where tax identification numbers and email addresses for shippers and recipients were missing from FedEx commercial invoices. The system now properly includes these required fields in all FedEx shipping requests, ensuring compliance with FedEx documentation requirements and improving the accuracy of shipping records.
Original PR description
before this commit: TaxId and email address of shipper and recipient was not showing on commercial invoice. After this commit: Added relevant fields in fedex request. TaxId needs TinType to be passed in request, default value set to 'BUSINESS_NATIONAL'. https://support.shiptheory.com/support/solutions/articles/24000077333-which-tin-type-should-i-use-for-my-fedex-shipments- opw-3748463 Forward-Port-Of: odoo/enterprise#59421
This update fixes how product quantities are validated in the product catalog when users adjust quantities. Previously, the system prevented quantity reductions below delivered amounts, which caused issues with service products that don't have delivery tracking. The fix allows service products to have their quantities adjusted freely in the catalog while maintaining proper controls for physical products.
Original PR description
The sale_stock module patches the ProductCatalogKanbanRecord updateQuantity method to prevent the quantity to go under the delivered quantity of the product The issue is that we are also using the ProductCatalogKanbanRecord in the industry_fsm_stock module we are also doing an override of the updateQuantity method to prevent the quantity of a product to go under the 'minimumQuantityOnProduct' which can be lower that the delivered quantity of a product in the case of a service product Task-3689939 https://github.com/odoo/enterprise/pull/55455 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Brazilian sales order quotations and portal views were missing line item totals, showing only description, quantity, and unit price. This fix restores the total amount column on each line in both the PDF quotation and customer portal, ensuring customers see the complete pricing breakdown for their orders.
Original PR description
This module was introduced in saas-16.4. In that version the sale order report and portal template displayed both price_subtotal and price_total for each sale order line. 655d375af83dd49bbbd5f5818e319c3b0e9778c1 removed price_total. Because this module removes price_subtotal we end up with no line total at all on the default Brazilian quotation PDF and portal view (just 3 columns: description, quantity and unit price). Loosely inspired by l10n_cl [1], this commit changes our approach to turn the two places where we use price_subtotal into price_total. The aforementioned commit also changed the heading of this column from "Subtotal" to a more generic "Amount", so there's no inconsistency there. Although this is a bit of a mess, I can't think of a better solution. [1] https://github.com/odoo/odoo/blob/655d375af83dd49bbbd5f5818e319c3b0e9778c1/addons/l10n_cl/views/report_invoice.xml#L173-L175
Fixed an issue where users couldn't download files from binary fields in the sales settings form. The download button now appears and functions correctly by properly retrieving files from their actual storage location, even though the settings model doesn't have a traditional ID field.
Original PR description
Steps: - Install sales app. - Go to settings of sales. - See header field there is no download button. Issue: - Binary field should have download button and user should be able to download file with out issue. Cause: - Since Settings is abstract model so it does not contains id field in it and download button visibility depends on id field. Fix: - - Extend binary field for setting view to get proper file from related field where actual file is stored. task-3620555
Fixed an issue where sending multiple PDF bills to a vendor bills email alias would create only one record with all bills attached, instead of creating separate records for each bill. The system now correctly processes each bill individually, allowing proper document extraction and organization.
Original PR description
Configure an email alias for the journal 'Vendor Bills' Send to the mail alias two pdf bills Issue: Only 1 record is created with the 2 bills as attachment The system should split the bills into separate records, but this does not occur: - after the first bill is processed the current move extract_state is 'waiting_extraction' - when the system check whether to extract data from the second document the result is negative as it check the state of the first document Enterprise PR: https://github.com/odoo/enterprise/pull/60168 opw-3822262
This fix prevents archived products, taxes, and other records from being added to quotations when creating them from customer opportunities. Previously, the system was incorrectly allowing archived items to appear in new quotations. Now, only active records will be available when users create quotations through the Contact and Opportunity workflow.
Original PR description
Before this commit, when the user created a new quotation from Contact->Opportunity-> ("New Quotation" or "Quotations/orders widget button", archived records could be added to the quotation (e.g. ,product, taxes...) because the context was set to active_test = false. After this commit, the context is configured back to active_test = true when creating a quotation from opportunity.
opw-3802796
Forward-Port-Of: odoo/odoo#160792
Forward-Port-Of: odoo/odoo#159335Users encountered an error when trying to clear start or end dates while editing events on the website. This fix prevents the application from crashing by properly handling empty date fields during the save process. The issue affected the website event editing functionality and has now been resolved.
Original PR description
When user tries to empty start date or end date in website using editor, a traceback will appear. Steps to reproduce the error: - Install "website_event" - Go to Website > Events > Open any Event >…
When user tries to empty start date or end date in website using editor,
a traceback will appear.
Steps to reproduce the error:
- Install "website_event"
- Go to Website > Events > Open any Event > Register > Edit
- Now try to empty start date or end date > Save
Traceback:
```
TypeError: '<' not supported between instances of 'bool' and 'datetime.datetime'
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1826, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1824, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 30, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/website/models/ir_ui_view.py", line 487, in save
super(View, self).save(value, xpath=xpath)
File "addons/web_editor/models/ir_ui_view.py", line 257, in save
self.save_embedded_field(arch_section)
File "addons/web_editor/models/ir_ui_view.py", line 56, in save_embedded_field
record.write({field: value})
File "addons/website_event/models/event_event.py", line 261, in write
res = super(Event, self).write(vals)
File "addons/event/models/event_event.py", line 590, in write
res = super(EventEvent, self).write(vals)
File "addons/mail/models/mail_thread.py", line 319, in write
result = super(MailThread, self).write(values)
File "addons/mail/models/mail_activity_mixin.py", line 248, in write
return super(MailActivityMixin, self).write(vals)
File "addons/website/models/mixins.py", line 217, in write
return super(WebsitePublishedMixin, self).write(values)
File "addons/website/models/mixins.py", line 136, in write
return super().write(vals)
File "odoo/models.py", line 4536, in write
real_recs._validate_fields(vals, inverse_fields)
File "odoo/models.py", line 1483, in _validate_fields
check(self)
File "addons/event/models/event_event.py", line 570, in _check_closing_date
if event.date_end < event.date_begin:
```
https://github.com/odoo/odoo/blob/4759c6d1ee09c32381dc56c59c95949fd0e2807c/addons/event/models/event_event.py#L507 Here, When user tries to empty start date or end date,
start date or end date will become "False",
So it will lead to the above traceback.
solution:
A try-catch is used to catch typeerror at write of qweb fields.
sentry-5038057541
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#160744
Forward-Port-Of: odoo/odoo#156707This fix resolves an error that occurred when viewing POS sales data in the sales reporting dashboard. Previously, the system couldn't properly display completed POS orders because of a mismatch in how order statuses were defined. The fix aligns POS order statuses with the sales reporting system so reports display correctly without errors.
Original PR description
7bbec42 removes the 'pos_done' state without providing a substitute. A discrepancy arises between the states defined in pos.order and sale.report. While pos.order can have a 'done' state, this state…
7bbec42 removes the 'pos_done' state without providing a substitute. A discrepancy arises between the states defined in pos.order and sale.report.
While pos.order can have a 'done' state, this state is not defined in sale.report. Consequently, it is possible to encounter a situation where a state exists in 'sale.report' without being defined in its state field. This inconsistency leads to an error in the web client when attempting to display the state 'done' from 'pos.order', as the system cannot locate a corresponding label for it.
Since we can't add a new state in stable, we'll re-use the sale.order 'sale' state which is the sale.order counterpart of pos.order 'done'.
**steps to reproduce:**
- sales / reporting / sales and go to pivot view
- remove all filters
- on the pivot view, select 'product category'
- click on a cell corresponding to POS (ex: all/saleable/pos)
- click on a line in the list view
**before this commit:**
```
Caused by: TypeError: Cannot read properties of undefined (reading '1')
at get string (https://60795873-17-0-all.runbot129.odoo.com/web/assets/af70128/web.assets_web.min.js:8393:281)
at SelectionField.template (eval at compile (https://60795873-17-0-all.runbot129.odoo.com/web/assets/af70128/web.assets_web.min.js:1500:374), <anonymous>:15:21)
at Fiber._render (https://60795873-17-0-all.runbot129.odoo.com/web/assets/af70128/web.assets_web.min.js:940:96)
at Fiber.render (https://60795873-17-0-all.runbot129.odoo.com/web/assets/af70128/web.assets_web.min.js:939:6)
at ComponentNode.initiateRender (https://60795873-17-0-all.runbot129.odoo.com/web/assets/af70128/web.assets_web.min.js:1007:47)
```
**after this commit:**
the form view is rendered
opw-3816652
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#160432This fix corrects how scheduled jobs (cron tasks) are logged in Odoo. Previously, the system would mark a job as "done" before finalizing all database changes, which could incorrectly show success even when errors occurred during the finalization process. The fix ensures accurate logging and includes the complete execution time, including the finalization period which can sometimes be lengthy.
Original PR description
**Description of the issue/feature this PR addresses:** The logger show "Job done" before the flush. But if during the flush an error appear (sql constraint, validation error during computed field, ...), the log contain "Job done", but is not True. The time to compute the cron is not good because it doesn't contain the flush time (in some case can be very long). @Julien00859 @rco-odoo --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#161079 Forward-Port-Of: odoo/odoo#160895
This update adds a database index to the accounting reconciliation system to significantly speed up common operations. Unlinking account moves and unreconciling transactions now complete 60+ times faster on large databases, improving overall system responsiveness for accounting teams without affecting data integrity.
Original PR description
**Description of the issue/feature this PR addresses:** Before this commit the time to unlink an account.move can take lot of time. The time to unreconcile can take lot of time. With 1 million…
**Description of the issue/feature this PR addresses:** Before this commit the time to unlink an account.move can take lot of time. The time to unreconcile can take lot of time. With 1 million `account.partial.reconcile`: Time to remove 1 `account.full.reconcile` : before 329 ms after 5 ms. Index size of `account.partial.reconcile` : before 59 Mo after 68 Mo (data size : 112 Mo) (+ 9 Mo) Before:   After:   @oco-odoo --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160709 Forward-Port-Of: odoo/odoo#141307