diff --git a/addons/purchase_requisition/models/purchase.py b/addons/purchase_requisition/models/purchase.py index 6ba14e2f65b..7c7e2e6f1dd 100644 --- a/addons/purchase_requisition/models/purchase.py +++ b/addons/purchase_requisition/models/purchase.py @@ -15,6 +15,7 @@ class PurchaseOrder(models.Model): if not self.requisition_id: return + self = self.with_company(self.company_id) requisition = self.requisition_id if self.partner_id: partner = self.partner_id diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index 92b789c090f..431180d737f 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -75,6 +75,7 @@ class PurchaseRequisition(models.Model): @api.onchange('vendor_id') def _onchange_vendor(self): + self = self.with_company(self.company_id) if not self.vendor_id: self.currency_id = self.env.company.currency_id.id else: @@ -84,6 +85,7 @@ class PurchaseRequisition(models.Model): ('vendor_id', '=', self.vendor_id.id), ('state', '=', 'ongoing'), ('type_id.quantity_copy', '=', 'none'), + ('company_id', '=', self.company_id), ]) if any(requisitions): title = _("Warning for %s") % self.vendor_id.name diff --git a/addons/purchase_stock/models/account_invoice.py b/addons/purchase_stock/models/account_invoice.py index 1d9d9c72788..18eb4d96935 100644 --- a/addons/purchase_stock/models/account_invoice.py +++ b/addons/purchase_stock/models/account_invoice.py @@ -40,6 +40,7 @@ class AccountMove(models.Model): if move.move_type not in ('in_invoice', 'in_refund', 'in_receipt') or not move.company_id.anglo_saxon_accounting: continue + move = move.with_company(move.company_id) for line in move.invoice_line_ids.filtered(lambda line: line.product_id.type == 'product' and line.product_id.valuation == 'real_time'): # Filter out lines being not eligible for price difference. diff --git a/addons/purchase_stock/models/purchase.py b/addons/purchase_stock/models/purchase.py index 6608b629f24..a3db07965a6 100644 --- a/addons/purchase_stock/models/purchase.py +++ b/addons/purchase_stock/models/purchase.py @@ -187,7 +187,6 @@ class PurchaseOrder(models.Model): picking_type = self.env['stock.picking.type'].search([('code', '=', 'incoming'), ('warehouse_id', '=', False)]) return picking_type[:1] - @api.model def _prepare_picking(self): if not self.group_id: self.group_id = self.group_id.create({ @@ -210,6 +209,7 @@ class PurchaseOrder(models.Model): def _create_picking(self): StockPicking = self.env['stock.picking'] for order in self: + order = order.with_company(order.company_id) if any([ptype in ['product', 'consu'] for ptype in order.order_line.mapped('product_id.type')]): pickings = order.picking_ids.filtered(lambda x: x.state not in ('done', 'cancel')) if not pickings: