Moisés López 72e7976d1e [FIX] account: Faster read_group for account_abstract_payment._compute_payment_amount
Go to Menu / Accounting / Vendors / Bills
Search a partner with too many opened invoices
 - E.g. 713 opened invoices (709 local currency, 4 foreign currency)
Choose all them
Press Open Action -> Register Payment
Wait to open the view.

Before this patch line_profile result

Total time: 1141 s
Line #   Hits  Time            Per Hit    % Time   Line Contents
================================================================
   243   2922   1,139,417,018.0  389944.2     99.9    amount_total = sum([MAP_INVOICE_TYPE_PAYMENT_SIGN[i.type] * i.residual_signed for i in payment_invoices])

After this patch line_profile result
Total time: 12 s
Line #   Hits  Time            Per Hit    % Time   Line Contents
================================================================
   243  2862   11,733,108.0        4099.6     98.1    invoice_datas = invoices.read_group([('id', 'in', invoices.ids)], ['currency_id', 'type', 'residual_signed'], ['currency_id', 'type'], lazy=False)

It means 95x faster

closes odoo/odoo#31313

Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-03-08 06:53:18 +00:00
…
…
…
…
…
…
…

Build Status Tech Doc Help Nightly Builds

Odoo

Odoo is a suite of web based open source business apps.

The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, ...

Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.

Getting started with Odoo

For a standard installation please follow the Setup instructions from the documentation.

Then follow the developer tutorials

S
Description
No description provided
Readme LGPL-3.0
3.4 GiB
Languages
Python 49.6%
JavaScript 47.8%
SCSS 2%
CSS 0.3%
HTML 0.2%