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 ##############################################################################
22 from osv import fields, osv
24 class ir_sequence_fiscalyear(osv.osv):
25 _name = 'account.sequence.fiscalyear'
26 _rec_name = "sequence_main_id"
28 "sequence_id": fields.many2one("ir.sequence", 'Sequence', required=True,
30 "sequence_main_id": fields.many2one("ir.sequence", 'Main Sequence',
31 required=True, ondelete='cascade'),
32 "fiscalyear_id": fields.many2one('account.fiscalyear', 'Fiscal Year',
33 required=True, ondelete='cascade')
37 ('main_id', 'CHECK (sequence_main_id != sequence_id)',
38 'Main Sequence must be different from current !'),
41 ir_sequence_fiscalyear()
43 class ir_sequence(osv.osv):
44 _inherit = 'ir.sequence'
46 'fiscal_ids': fields.one2many('account.sequence.fiscalyear',
47 'sequence_main_id', 'Sequences')
49 def get_id(self, cr, uid, sequence_id, test='id', context=None):
52 cr.execute('select id from ir_sequence where '
53 + test + '=%s and active=%s', (sequence_id, True,))
54 res = cr.dictfetchone()
56 for line in self.browse(cr, uid, res['id'],
57 context=context).fiscal_ids:
58 if line.fiscalyear_id.id == context.get('fiscalyear_id', False):
59 return super(ir_sequence, self).get_id(cr, uid,
63 return super(ir_sequence, self).get_id(cr, uid, sequence_id, test,
68 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: