1 # -*- coding: utf-8 -*-
2 ##############################################################################
4 # OpenERP, Open Source Management Solution
5 # Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU Affero General Public License as
9 # published by the Free Software Foundation, either version 3 of the
10 # License, or (at your option) any later version.
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU Affero General Public License for more details.
17 # You should have received a copy of the GNU Affero General Public License
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 ##############################################################################
25 from tools.translate import _
27 _transaction_form = '''<?xml version="1.0"?>
28 <form string=" Close states of Fiscal year and periods">
30 <separator string="Are you sure you want to close the fiscal year ?" colspan="4"/>
34 _transaction_fields = {
35 'fy_id': {'string':'Fiscal Year to close', 'type':'many2one', 'relation': 'account.fiscalyear','required':True, 'domain':[('state','=','draft')]},
36 'sure': {'string':'Check this box', 'type':'boolean'},
39 def _data_save(self, cr, uid, data, context):
40 if not data['form']['sure']:
41 raise wizard.except_wizard(_('UserError'), _('Closing of states cancelled, please check the box !'))
42 pool = pooler.get_pool(cr.dbname)
44 fy_id = data['form']['fy_id']
46 cr.execute('UPDATE account_journal_period ' \
48 'WHERE period_id IN (SELECT id FROM account_period WHERE fiscalyear_id = %s)',
50 cr.execute('UPDATE account_period SET state = %s ' \
51 'WHERE fiscalyear_id = %s', ('done',fy_id))
52 cr.execute('UPDATE account_fiscalyear ' \
53 'SET state = %s WHERE id = %s', ('done', fy_id))
56 class wiz_journal_close_state(wizard.interface):
60 'result': {'type': 'form', 'arch':_transaction_form, 'fields':_transaction_fields, 'state':[('end','Cancel', 'gtk-cancel'),('close','Close states', 'gtk-ok')]}
63 'actions': [_data_save],
64 'result': {'type': 'state', 'state':'end'}
67 wiz_journal_close_state('account.fiscalyear.close.state')
70 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: