diff --git a/addons/purchase/stock.py b/addons/purchase/stock.py index b5b708119cc..b7c298b5a9c 100644 --- a/addons/purchase/stock.py +++ b/addons/purchase/stock.py @@ -20,6 +20,7 @@ ############################################################################## from osv import osv, fields +from tools.translate import _ class stock_move(osv.osv): _inherit = 'stock.move' @@ -136,4 +137,35 @@ class stock_picking_in(osv.osv): ondelete='set null', select=True), 'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse'), } + def create_draft_invoice(self, cr, uid, ids, context=None): + mod_obj = self.pool.get('ir.model.data') + pur_obj = self.pool.get('purchase.order') + wizard_obj = self.pool.get('purchase.order.line_invoice') + #compute the number of invoices to display + inv_ids = [] + pur_id = self.browse(cr, uid, ids[0], context=context).purchase_id.id + pur_ids = [pur_id] + for po in pur_obj.browse(cr, uid, pur_ids, context=context): + if po.invoice_method == 'picking': + if not po.invoice_ids: + context.update({'active_ids' : [line.id for line in po.order_line]}) + wizard_obj.makeInvoices(cr, uid, [], context=context) + + for po in pur_obj.browse(cr, uid, pur_ids, context=context): + inv_ids+= [invoice.id for invoice in po.invoice_ids] + res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form') + res_id = res and res[1] or False + + return { + 'name': _('Supplier Invoices'), + 'view_type': 'form', + 'view_mode': 'form', + 'view_id': [res_id], + 'res_model': 'account.invoice', + 'context': "{'type':'in_invoice', 'journal_type': 'purchase'}", + 'type': 'ir.actions.act_window', + 'nodestroy': True, + 'target': 'current', + 'res_id': inv_ids and inv_ids[0] or False, + } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml index e2f51bdd986..0651cf5db90 100644 --- a/addons/purchase/stock_view.xml +++ b/addons/purchase/stock_view.xml @@ -37,6 +37,17 @@ + + stock.picking.in.form.inherit + stock.picking.in + + + +