From c02c3d5dc187ce70822b8ce76ab737f2ddfac741 Mon Sep 17 00:00:00 2001 From: hiroh-odoo Date: Wed, 19 Oct 2022 05:57:26 +0000 Subject: [PATCH] [FIX] sale_project: fix the display of non-service product Before this commit, non-service SOl was not displayed on project update right-side panel view but non-SOLs products contribute to the project's profitability, e.g. you install a new kitchen -> you sell the installation service and the furniture for the kitchen. So in this commit include the non-service SOLs to the project update panel. task-2992368 X-original-commit: 49558c2f15d38bee870766421d237e5228f02718 Part-of: odoo/odoo#109111 --- addons/sale_project/models/project.py | 4 ++-- addons/sale_project/tests/test_sale_project.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/sale_project/models/project.py b/addons/sale_project/models/project.py index 90dc93cc8e0..0db2c13e71c 100755 --- a/addons/sale_project/models/project.py +++ b/addons/sale_project/models/project.py @@ -283,8 +283,8 @@ class Project(models.Model): } for sol_read in sols.with_context(with_price_unit=True).read(['display_name', 'product_uom_qty', 'qty_delivered', 'qty_invoiced', 'product_uom'])] def _get_sale_items_domain(self, additional_domain=None): - sale_line_ids = self._fetch_sale_order_item_ids() - domain = [('id', 'in', sale_line_ids), ('is_downpayment', '=', False), ('state', 'in', ['sale', 'done']), ('display_type', '=', False)] + sale_orders = self._get_sale_orders() + domain = [('order_id', 'in', sale_orders.ids), ('is_downpayment', '=', False), ('state', 'in', ['sale', 'done']), ('display_type', '=', False)] if additional_domain: domain = expression.AND([domain, additional_domain]) return domain diff --git a/addons/sale_project/tests/test_sale_project.py b/addons/sale_project/tests/test_sale_project.py index e9061898ec0..1d27654e77a 100644 --- a/addons/sale_project/tests/test_sale_project.py +++ b/addons/sale_project/tests/test_sale_project.py @@ -171,7 +171,7 @@ class TestSaleProject(TransactionCase): self.assertIn(task.sale_line_id, self.project_global._get_sale_order_items()) self.assertEqual(self.project_global._get_sale_orders(), sale_order | sale_order_2) - sale_order_lines = so_line_order_task_in_global + sale_line_1_order_2 # exclude the Section and Note Sales Order Items, only choose the ones related to project_global + sale_order_lines = sale_order.order_line + sale_line_1_order_2 # exclude the Section and Note Sales Order Items sale_items_data = self.project_global._get_sale_items(with_action=False) self.assertEqual(sale_items_data['total'], len(sale_order_lines)) expected_sale_line_dict = {