From d559d9e46b45b31e6b0850833066e0b3e5b9b1eb Mon Sep 17 00:00:00 2001 From: Harshad Modi Date: Tue, 18 Nov 2008 12:16:13 +0530 Subject: [PATCH] add origin field on account.invoice.line. when make invoice from packing group by partner,origin will be fillup bzr revid: hmo@tinyerp.com-20081118064613-95g26k1w3i8odg15 --- addons/account/account_invoice_view.xml | 1 + addons/account/invoice.py | 1 + addons/sale/sale.py | 1 + addons/stock/stock.py | 14 ++++++++++++-- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 02325bada84..e2b06ce9b78 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -58,6 +58,7 @@ + diff --git a/addons/account/invoice.py b/addons/account/invoice.py index d346a5824fe..747b5d4a629 100644 --- a/addons/account/invoice.py +++ b/addons/account/invoice.py @@ -861,6 +861,7 @@ class account_invoice_line(osv.osv): _description = "Invoice line" _columns = { 'name': fields.char('Description', size=256, required=True), + 'origin': fields.char('Origin', size=256, help="Reference of the document that produced this invoice."), 'invoice_id': fields.many2one('account.invoice', 'Invoice Ref', ondelete='cascade', select=True), 'uos_id': fields.many2one('product.uom', 'Unit of Measure', ondelete='set null'), 'product_id': fields.many2one('product.product', 'Product', ondelete='set null'), diff --git a/addons/sale/sale.py b/addons/sale/sale.py index be573f70422..88e6946ba17 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -735,6 +735,7 @@ class sale_order_line(osv.osv): a = self.pool.get('account.fiscal.position').map_account(cr, uid, line.order_id.partner_id, a) inv_id = self.pool.get('account.invoice.line').create(cr, uid, { 'name': line.name, + 'origin':line.order_id.name, 'account_id': a, 'price_unit': pu, 'quantity': uosqty, diff --git a/addons/stock/stock.py b/addons/stock/stock.py index af90192f326..63ecd5a354d 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -625,10 +625,16 @@ class stock_picking(osv.osv): address_contact_id, address_invoice_id = \ self._get_address_invoice(cursor, user, picking).values() - comment = self._get_comment_invoice(cursor, user, picking) - + comment = self._get_comment_invoice(cursor, user, picking) if group and partner.id in invoices_group: invoice_id = invoices_group[partner.id] + invoice=invoice_obj.browse(cursor, user,invoice_id) + invoice_vals = { + 'name': invoice.name +', '+picking.name, + 'origin': invoice.origin+', '+picking.name+(picking.origin and (':' + picking.origin) or ''), + 'comment':(comment and (invoice.comment and invoice.comment+"\n"+comment or comment)) or (invoice.comment and invoice.comment or ''), + } + invoice_obj.write(cursor, user, [invoice_id],invoice_vals,context=context) else: invoice_vals = { 'name': picking.name, @@ -651,6 +657,9 @@ class stock_picking(osv.osv): invoices_group[partner.id] = invoice_id res[picking.id] = invoice_id for move_line in picking.move_lines: + origin=move_line.picking_id.name + if move_line.picking_id.origin: + origin+=':' + move_line.picking_id.origin if group: name = picking.name + '-' + move_line.name else: @@ -679,6 +688,7 @@ class stock_picking(osv.osv): account_id = self.pool.get('account.fiscal.position').map_account(cursor, user, partner, account_id) invoice_line_id = invoice_line_obj.create(cursor, user, { 'name': name, + 'origin':origin, 'invoice_id': invoice_id, 'uos_id': move_line.product_uos.id, 'product_id': move_line.product_id.id,