added from extra-addons
[odoo/odoo.git] / addons / stock_invoice_directly / wizard / stock_invoice.py
1 # -*- encoding: utf-8 -*-
2 '''Make case wizard'''
3 ##############################################################################
4 #
5 # Copyright (c) 2007 TINY SPRL. (http://tiny.be) All Rights Reserved.
6 #
7 # WARNING: This program as such is intended to be used by professional
8 # programmers who take the whole responsability of assessing all potential
9 # consequences resulting from its eventual inadequacies and bugs
10 # End users who are looking for a ready-to-use solution with commercial
11 # garantees and support are strongly adviced to contract a Free Software
12 # Service Company
13 #
14 # This program is Free Software; you can redistribute it and/or
15 # modify it under the terms of the GNU General Public License
16 # as published by the Free Software Foundation; either version 2
17 # of the License, or (at your option) any later version.
18 #
19 # This program is distributed in the hope that it will be useful,
20 # but WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22 # GNU General Public License for more details.
23 #
24 # You should have received a copy of the GNU General Public License
25 # along with this program; if not, write to the Free Software
26 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27 #
28 ##############################################################################
29
30 import wizard
31 import pooler
32 import netsvc
33
34 class invoice_directly(wizard.interface):
35     def _test_action(obj, cr, uid, data, context):
36         pool = pooler.get_pool(cr.dbname)
37         pick = pool.get('stock.picking').browse(cr, uid, data['id'], context=context)
38         if not pick.invoice_state == '2binvoiced':
39             return 'end_final'
40         return 'invoice'
41
42     def _open_action(obj, cr, uid, data, context):
43         res = {
44             'name': 'stock.invoice_onshipping',
45             'type': 'ir.actions.wizard',
46             'wiz_name': 'stock.invoice_onshipping'
47         }
48         if data['form'].get('new_picking', False):
49             res['context'] = "{'new_picking':%d}" % (data['form']['new_picking'],)
50         return res
51
52     end_final = {
53         'actions':[],
54         'result': {
55             'type': 'state',
56             'state': 'end',
57         }
58     }
59
60     choice = {
61         'actions':[],
62         'result': {
63             'type': 'choice',
64             'next_state': _test_action,
65         }
66     }
67
68     call_invoice = {
69         'actions':[],
70         'result': {
71             'type': 'action',
72             'action': _open_action,
73             'state': 'end'
74         }
75     }
76     def __init__(self, *args):
77         service = netsvc.LocalService("wizard.stock.partial_picking")
78         service._service.states['split']['result']['state'] = 'test_choice'
79         service._service.states['invoice'] = self.call_invoice
80         service._service.states['test_choice'] = self.choice
81         service._service.states['end_final'] = self.end_final
82 invoice_directly('stock.picking.invoice.directly')
83 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
84