From 0f2989d39b9c52eff0a2dab84d12dde1dda96770 Mon Sep 17 00:00:00 2001 From: Ritika Shekhawat Date: Thu, 7 Sep 2023 12:07:40 +0530 Subject: [PATCH] [FIX] project: fix sol creation from task Steps: - Install project & sales app - Open project app - Open Project - Select any project - Add sale order item Issue: - - the creation of SOLs on the fly , doesn't seem to be working anymore Cause: - There is no option for creating new sale order item Fix: - Appear create and edit the option for creation of Sale order item Task: 3470877 closes odoo/odoo#134566 Signed-off-by: Xavier Bol (xbo) Signed-off-by: Ritika Shekhawat (rish) --- addons/sale_project/models/sale_order_line.py | 19 ++++++------------- .../sale_project/views/project_task_views.xml | 3 +-- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/addons/sale_project/models/sale_order_line.py b/addons/sale_project/models/sale_order_line.py index ff3c661f047..c1accbb7229 100644 --- a/addons/sale_project/models/sale_order_line.py +++ b/addons/sale_project/models/sale_order_line.py @@ -37,10 +37,14 @@ class SaleOrderLine(models.Model): except AccessError: del res['order_id'] - if 'order_id' in fields and 'order_id' not in res: + if 'order_id' in fields and not res.get('order_id'): assert (partner_id := self.env.context.get('default_partner_id')) project_id = self.env.context.get('link_to_project') sale_order = None + so_create_values = { + 'partner_id': partner_id, + 'company_id': self.env.context.get('default_company_id') or self.env.company.id, + } if project_id: try: project_so = self.env['project.project'].browse(project_id).sale_order_id @@ -48,21 +52,10 @@ class SaleOrderLine(models.Model): sale_order = project_so except AccessError: pass - if not sale_order: - so_create_values = { - 'partner_id': partner_id, - 'project_ids': [Command.link(project_id)], - } - else: - so_create_values = { - 'partner_id': partner_id, - } + so_create_values['project_ids'] = [Command.link(project_id)] if not sale_order: - company_id = self.env.context.get('defaut_company_id', False) - if company_id: - so_create_values['company_id'] = company_id sale_order = self.env['sale.order'].create(so_create_values) sale_order.action_confirm() default_values['order_id'] = sale_order.id diff --git a/addons/sale_project/views/project_task_views.xml b/addons/sale_project/views/project_task_views.xml index 1c727a7f5c0..7c879808b15 100644 --- a/addons/sale_project/views/project_task_views.xml +++ b/addons/sale_project/views/project_task_views.xml @@ -117,7 +117,7 @@ invisible="not allow_billable or not partner_id"/>