# -*- coding: utf-8 -*- ############################################################################## # # OpenERP, Open Source Management Solution # Copyright (C) 2004-2010 Tiny SPRL (). # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # ############################################################################## import wizard import netsvc import pooler invoice_form = """
""" invoice_fields = { 'grouped' : {'string':'Group the invoices', 'type':'boolean', 'default': lambda x,y,z: False}, 'invoice_date': {'string': 'Invoiced date', 'type':'date' } } ack_form = """
""" ack_fields = {} def _makeInvoices(self, cr, uid, data, context): pool_obj = pooler.get_pool(cr.dbname) mod_obj = pool_obj.get('ir.model.data') order_obj = pool_obj.get('sale.order') newinv = [] order_obj.action_invoice_create(cr, uid, data['ids'], data['form']['grouped'], date_inv = data['form']['invoice_date']) for id in data['ids']: wf_service = netsvc.LocalService("workflow") wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr) for o in order_obj.browse(cr, uid, data['ids'], context): for i in o.invoice_ids: newinv.append(i.id) act_obj = pool_obj.get('ir.actions.act_window') xml_id='action_invoice_tree5' result = mod_obj._get_id(cr, uid, 'account', xml_id) id = mod_obj.read(cr, uid, result, ['res_id'])['res_id'] result = act_obj.read(cr, uid, id) result['domain'] ="[('id','in', ["+','.join(map(str,newinv))+"])]" return result #return { # 'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]", # 'name': 'Invoices', # 'view_type': 'form', # 'view_mode': 'tree,form', # 'res_model': 'account.invoice', # 'view_id': False, # 'context': "{'type':'out_refund'}", # 'type': 'ir.actions.act_window' #} #return {} class make_invoice(wizard.interface): states = { 'init' : { 'actions' : [], 'result' : {'type' : 'form', 'arch' : invoice_form, 'fields' : invoice_fields, 'state' : [('end', 'Cancel'),('invoice', 'Create invoices') ]} }, 'invoice' : { 'actions' : [_makeInvoices], 'result' : {'type': 'state', 'state': 'end'} }, } make_invoice("sale.order.make_invoice") # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: