From c8f4d046dbb8f8d38e3aa7a337efbefd05a9db06 Mon Sep 17 00:00:00 2001 From: Richard deMeester Date: Mon, 13 Nov 2017 09:36:49 +1100 Subject: [PATCH 1/2] [10.0 ENH] Purchase line extras Make order line company id computed and dependent so it defaults better for a new purchase order line. Also, ensure domains added to more views for alternate viewing and editing. --- mcfix_purchase/models/purchase.py | 11 +++++++- mcfix_purchase/views/purchase_order_view.xml | 28 ++++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/mcfix_purchase/models/purchase.py b/mcfix_purchase/models/purchase.py index 7abd43d7..fbf7efa0 100644 --- a/mcfix_purchase/models/purchase.py +++ b/mcfix_purchase/models/purchase.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from odoo import api, models, _ +from odoo import api, models, fields, _ from odoo.exceptions import ValidationError @@ -137,6 +137,15 @@ def _check_company_id(self): class PurchaseOrderLine(models.Model): _inherit = 'purchase.order.line' + company_id = fields.Many2one('res.company', related=[], compute='_compute_line_company', string='Company', store=True, readonly=True) + + @api.depends('order_id', 'order_id.company_id') + def _compute_line_company(self): + for line in self: + line.company_id = line.order_id.company_id + if not line.order_id and 'default_company_id' in self.env.context: + line.company_id = self.env.context['default_company_id'] + @api.multi @api.depends('company_id') def name_get(self): diff --git a/mcfix_purchase/views/purchase_order_view.xml b/mcfix_purchase/views/purchase_order_view.xml index 6504ca11..7a151884 100644 --- a/mcfix_purchase/views/purchase_order_view.xml +++ b/mcfix_purchase/views/purchase_order_view.xml @@ -15,10 +15,34 @@ [('company_id', '=', company_id)] - + + + {"default_company_id": company_id} + + + [('company_id', '=', company_id),('type_tax_use','=','purchase')] + + [('company_id', '=', company_id),('type_tax_use','=','purchase')] + + + ['|', ('company_id', '=', company_id),('company_id', '=', False)] + + + ['|', ('company_id', '=', company_id),('company_id', '=', False)] + + + + + + purchase.order.line.form2 + purchase.order.line + + + + [('type_tax_use','=','purchase'), ('company_id', '=', company_id)] - + ['|', ('company_id', '=', company_id),('company_id', '=', False)] From 6d2d40f37019ff3a818be25feb45614e2ab0d662 Mon Sep 17 00:00:00 2001 From: Richard deMeester Date: Mon, 13 Nov 2017 10:11:47 +1100 Subject: [PATCH 2/2] Lint check. --- mcfix_purchase/models/purchase.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mcfix_purchase/models/purchase.py b/mcfix_purchase/models/purchase.py index fbf7efa0..c40dc50f 100644 --- a/mcfix_purchase/models/purchase.py +++ b/mcfix_purchase/models/purchase.py @@ -137,7 +137,9 @@ def _check_company_id(self): class PurchaseOrderLine(models.Model): _inherit = 'purchase.order.line' - company_id = fields.Many2one('res.company', related=[], compute='_compute_line_company', string='Company', store=True, readonly=True) + company_id = fields.Many2one( + 'res.company', related=[], compute='_compute_line_company', + string='Company', store=True, readonly=True) @api.depends('order_id', 'order_id.company_id') def _compute_line_company(self):