diff --git a/addons/stock_account/stock.py b/addons/stock_account/stock.py index 1e8555b0cc7..e4355a0e7fa 100644 --- a/addons/stock_account/stock.py +++ b/addons/stock_account/stock.py @@ -273,8 +273,12 @@ class stock_picking(osv.osv): else: account_id = partner.property_account_payable_id.id payment_term = partner.property_supplier_payment_term_id.id or False + if not move.origin: + origin = move.picking_id.name + else: + origin = move.picking_id.name + ', ' + move.origin return { - 'origin': move.picking_id.name, + 'origin': origin, 'date_invoice': context.get('date_inv', False), 'user_id': user_id, 'partner_id': partner.id, @@ -304,7 +308,6 @@ class stock_picking(osv.osv): key = (partner, currency_id, company.id, _user_id) invoice_vals = self._get_invoice_vals(cr, uid, key, inv_type, journal_id, move, context=context) - if key not in invoices: # Get account and payment terms invoice_id = self._create_invoice_from_picking(cr, uid, move.picking_id, invoice_vals, context=context) @@ -312,8 +315,9 @@ class stock_picking(osv.osv): else: invoice = invoice_obj.browse(cr, uid, invoices[key], context=context) if not invoice.origin or invoice_vals['origin'] not in invoice.origin.split(', '): - invoice_origin = filter(None, [invoice.origin, invoice_vals['origin']]) - invoice.write({'origin': ', '.join(invoice_origin)}) + elements = (invoice.origin or '').split(',') + (invoice_vals['origin'] or '').split(',') + invoice_origin = ', '.join(set(e.strip() for e in elements)) + invoice.write({'origin': invoice_origin}) invoice_line_vals = move_obj._get_invoice_line_vals(cr, uid, move, partner, inv_type, context=context) invoice_line_vals['invoice_id'] = invoices[key]