[FIX] sale: ensure properties are read with the correct company.

This commit is contained in:
Victor Feyens
2020-02-27 12:19:24 +00:00
parent 8de2b9fc7b
commit 0c1fcfb0e1
+6 -6
View File
@@ -360,6 +360,8 @@ class SaleOrder(models.Model):
})
return
self = self.with_company(self.company_id)
addr = self.partner_id.address_get(['delivery', 'invoice'])
partner_user = self.partner_id.user_id or self.partner_id.commercial_partner_id.user_id
values = {
@@ -452,15 +454,13 @@ class SaleOrder(models.Model):
@api.model
def create(self, vals):
if 'company_id' in vals:
self = self.with_company(vals['company_id'])
if vals.get('name', _('New')) == _('New'):
seq_date = None
if 'date_order' in vals:
seq_date = fields.Datetime.context_timestamp(self, fields.Datetime.to_datetime(vals['date_order']))
if 'company_id' in vals:
vals['name'] = self.env['ir.sequence'].with_company(vals['company_id']).next_by_code(
'sale.order', sequence_date=seq_date) or _('New')
else:
vals['name'] = self.env['ir.sequence'].next_by_code('sale.order', sequence_date=seq_date) or _('New')
vals['name'] = self.env['ir.sequence'].next_by_code('sale.order', sequence_date=seq_date) or _('New')
# Makes sure partner_invoice_id', 'partner_shipping_id' and 'pricelist_id' are defined
if any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id']):
@@ -468,7 +468,7 @@ class SaleOrder(models.Model):
addr = partner.address_get(['delivery', 'invoice'])
vals['partner_invoice_id'] = vals.setdefault('partner_invoice_id', addr['invoice'])
vals['partner_shipping_id'] = vals.setdefault('partner_shipping_id', addr['delivery'])
vals['pricelist_id'] = vals.setdefault('pricelist_id', partner.property_product_pricelist and partner.property_product_pricelist.id)
vals['pricelist_id'] = vals.setdefault('pricelist_id', partner.property_product_pricelist.id)
result = super(SaleOrder, self).create(vals)
return result