from odoo import fields, models, api from odoo.tools.misc import format_date, OrderedSet from odoo.exceptions import UserError class StockMove(models.Model): _inherit = 'stock.move' def _prepare_account_move_line_from_mr(self, po_line, qty, move=False): po_line.ensure_one() aml_currency = move and move.currency_id or po_line.currency_id date = move and move.date or fields.Date.today() res = { 'display_type': po_line.display_type, 'sequence': po_line.sequence, 'name': '%s: %s' % (po_line.order_id.name, po_line.name), 'product_id': po_line.product_id.id, 'product_uom_id': po_line.product_uom.id, 'quantity': qty, 'price_unit': po_line.currency_id._convert(po_line.price_unit, aml_currency, po_line.company_id, date, round=False), 'tax_ids': [(6, 0, po_line.taxes_id.ids)], 'analytic_account_id': po_line.account_analytic_id.id, 'analytic_tag_ids': [(6, 0, po_line.analytic_tag_ids.ids)], 'purchase_line_id': po_line.id, } if not move: return res if self.currency_id == move.company_id.currency_id: currency = False else: currency = move.currency_id res.update({ 'move_id': move.id, 'currency_id': currency and currency.id or False, 'date_maturity': move.invoice_date_due, 'partner_id': move.partner_id.id, }) return res