abea600b5801a1803c6c3364d710ec26744e0c0c
[odoo/odoo.git] / addons / hr_holidays / wizard / holidays_summary.py
1 # -*- encoding: utf-8 -*-
2 ##############################################################################
3 #
4 # Copyright (c) 2004-2006 TINY SPRL. (http://tiny.be) All Rights Reserved.
5 #
6 # $Id: account.py 1005 2005-07-25 08:41:42Z nicoe $
7 #
8 # WARNING: This program as such is intended to be used by professional
9 # programmers who take the whole responsability of assessing all potential
10 # consequences resulting from its eventual inadequacies and bugs
11 # End users who are looking for a ready-to-use solution with commercial
12 # garantees and support are strongly adviced to contract a Free Software
13 # Service Company
14 #
15 # This program is Free Software; you can redistribute it and/or
16 # modify it under the terms of the GNU General Public License
17 # as published by the Free Software Foundation; either version 2
18 # of the License, or (at your option) any later version.
19 #
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23 # GNU General Public License for more details.
24 #
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write to the Free Software
27 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
28 #
29 ##############################################################################
30
31 import wizard
32 import datetime
33 import time
34 import pooler
35
36 form='''<?xml version="1.0"?>
37 <form string="Report Options">
38     <field name="date_from" colspan="2" />
39     <field name="holiday_type" colspan="2" />
40     <field name="depts" colspan="4" />
41
42 </form>'''
43
44 zero_form='''<?xml version="1.0"?>
45 <form string="Notification">
46 <label string="You have to select atleast 1 Department. Try again." colspan="4"/>
47 </form>'''
48
49 zero_fields={
50 }
51
52 class wizard_report(wizard.interface):
53     def _check(self, cr, uid, data, context):
54         data['form']['date_from']=time.strftime('%Y-%m-%d')
55         data['form']['holiday_type']='Validated'
56
57         return data['form']
58
59     def _checkdepts(self, cr, uid, data, context):
60
61         if len(data['form']['depts'][0][2])==0:
62             return 'notify'
63         else:
64             return 'report'
65
66     fields={
67         'date_from':{
68                 'string':'From',
69                 'type':'date',
70                 'required':True,
71         },
72         'depts': {
73                 'string': 'Department(s)', 
74                 'type': 'many2many', 
75                 'relation': 'hr.department'
76         },
77         'holiday_type':{
78                 'string':"Select Holiday Type",
79                 'required':True,
80                 'type':'selection',
81                 'selection':[('Validated','Validated'),('Confirmed','Confirmed'),('both','Both Validated and Confirmed')]
82         },
83     }
84
85     states={
86         'init':{
87             'actions':[_check],
88             'result':{'type':'form', 'arch':form, 'fields':fields, 'state':[('end', 'Cancel'), ('checkdept', 'Print')]}
89         },
90         'checkdept': {
91             'actions': [],
92             'result': {'type':'choice','next_state':_checkdepts}
93         },
94         'notify': {
95             'actions': [],
96             'result': {'type':'form','arch':zero_form,'fields':zero_fields,'state':[('end','Ok')]}
97         },
98         'report':{
99             'actions':[],
100             'result':{'type':'print', 'report':'holidays.summary', 'state':'end'}
101         }
102     }
103 wizard_report('hr.holidays.summary')
104 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
105