From afd12bafd16f6c81d27bbee39a0862e1c70e6cb6 Mon Sep 17 00:00:00 2001 From: sbejaoui Date: Mon, 17 Aug 2020 18:31:01 +0200 Subject: [PATCH] [12.0][FIX] - fiscal position, payment mode and pricelist obtained according to contract company --- contract/models/contract.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/contract/models/contract.py b/contract/models/contract.py index 1445f2f73..2317f5adf 100644 --- a/contract/models/contract.py +++ b/contract/models/contract.py @@ -285,16 +285,21 @@ class ContractContract(models.Model): if self.contract_template_id[field_name]: self[field_name] = self.contract_template_id[field_name] - @api.onchange('partner_id') + @api.onchange('partner_id', 'company_id') def _onchange_partner_id(self): - self.pricelist_id = self.partner_id.property_product_pricelist.id - self.fiscal_position_id = self.partner_id.property_account_position_id + partner = ( + self.partner_id + if not self.company_id + else self.partner_id.with_context(force_company=self.company_id.id) + ) + self.pricelist_id = partner.property_product_pricelist.id + self.fiscal_position_id = partner.env[ + 'account.fiscal.position' + ].get_fiscal_position(partner.id) if self.contract_type == 'purchase': - self.payment_term_id = \ - self.partner_id.property_supplier_payment_term_id + self.payment_term_id = partner.property_supplier_payment_term_id else: - self.payment_term_id = \ - self.partner_id.property_payment_term_id + self.payment_term_id = partner.property_payment_term_id self.invoice_partner_id = self.partner_id.address_get(['invoice'])[ 'invoice' ]