From d6dc795e2031d61174093fd643fe6ed287dbd173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20=28avd=29?= Date: Fri, 12 Aug 2022 09:52:48 +0000 Subject: [PATCH] [IMP] pos: add some indexes to speedup Tax Report MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tax Report _compute_from_amls_grids query calls two method overriden in pos_account_reports. The resulting query contains EXISTS subqueries on pos_session.move_id and pos_order.account_move. Because these two fields are not indexed by default, the cost of the query can skyrocket in large databases, leading to slow tax report generation. closes odoo/odoo#99095 X-original-commit: 51e607a70be804b0cd614cccc36ea0145c934676 Signed-off-by: Rémy Voet --- addons/point_of_sale/models/pos_order.py | 2 +- addons/point_of_sale/models/pos_session.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index ea833c9fd6a..d9c1e60844f 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -265,7 +265,7 @@ class PosOrder(models.Model): [('draft', 'New'), ('cancel', 'Cancelled'), ('paid', 'Paid'), ('done', 'Posted'), ('invoiced', 'Invoiced')], 'Status', readonly=True, copy=False, default='draft') - account_move = fields.Many2one('account.move', string='Invoice', readonly=True, copy=False) + account_move = fields.Many2one('account.move', string='Invoice', readonly=True, copy=False, index=True) picking_ids = fields.One2many('stock.picking', 'pos_order_id') picking_count = fields.Integer(compute='_compute_picking_count') failed_pickings = fields.Boolean(compute='_compute_picking_count') diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py index 6cb41e92359..951650a2c3f 100644 --- a/addons/point_of_sale/models/pos_session.py +++ b/addons/point_of_sale/models/pos_session.py @@ -92,7 +92,7 @@ class PosSession(models.Model): help="Auto-generated session for orphan orders, ignored in constraints", readonly=True, copy=False) - move_id = fields.Many2one('account.move', string='Journal Entry') + move_id = fields.Many2one('account.move', string='Journal Entry', index=True) payment_method_ids = fields.Many2many('pos.payment.method', related='config_id.payment_method_ids', string='Payment Methods') total_payments_amount = fields.Float(compute='_compute_total_payments_amount', string='Total Payments Amount') is_in_company_currency = fields.Boolean('Is Using Company Currency', compute='_compute_is_in_company_currency')