diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index c133fbd9382..25130e8b6f5 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -138,6 +138,22 @@ class PurchaseRequisitionLine(models.Model): if not self.schedule_date: self.schedule_date = self.requisition_id.schedule_date + @api.multi + def _prepare_purchase_order_line(self, name, product_qty=0.0, price_unit=0.0, taxes_ids=False): + self.ensure_one() + requisition = self.requisition_id + return { + 'name': name, + 'product_id': self.product_id.id, + 'product_uom': self.product_id.uom_po_id.id, + 'product_qty': product_qty, + 'price_unit': price_unit, + 'taxes_id': [(6, 0, taxes_ids)], + 'date_planned': requisition.schedule_date or fields.Date.today(), + 'procurement_ids': [(6, 0, [requisition.procurement_id.id])] if requisition.procurement_id else False, + 'account_analytic_id': self.account_analytic_id.id, + } + class PurchaseOrder(models.Model): _inherit = "purchase.order" @@ -209,17 +225,10 @@ class PurchaseOrder(models.Model): price_unit = requisition.company_id.currency_id.compute(price_unit, currency) # Create PO line - order_lines.append((0, 0, { - 'name': name, - 'product_id': line.product_id.id, - 'product_uom': line.product_id.uom_po_id.id, - 'product_qty': product_qty, - 'price_unit': price_unit, - 'taxes_id': [(6, 0, taxes_ids)], - 'date_planned': requisition.schedule_date or fields.Date.today(), - 'procurement_ids': [(6, 0, [requisition.procurement_id.id])] if requisition.procurement_id else False, - 'account_analytic_id': line.account_analytic_id.id, - })) + order_line_values = line._prepare_purchase_order_line( + name=name, product_qty=product_qty, price_unit=price_unit, + taxes_ids=taxes_ids) + order_lines.append((0, 0, order_line_values)) self.order_line = order_lines @api.multi