bzr revid: fp@tinyerp.com-20090116104911-xlw9rs1a8tiyusak
This commit is contained in:
Fabien Pinckaers 2009-01-16 11:49:11 +01:00
parent dcde363845
commit 923aa8b8d4
2 changed files with 29 additions and 6 deletions

View File

@ -495,6 +495,8 @@ class account_fiscalyear(osv.osv):
_columns = { _columns = {
'name': fields.char('Fiscal Year', size=64, required=True), 'name': fields.char('Fiscal Year', size=64, required=True),
'code': fields.char('Code', size=6, required=True), 'code': fields.char('Code', size=6, required=True),
'company_id': fields.many2one('res.company', 'Company',
help="Keep empty if the fiscal year belongs to several companies."),
'date_start': fields.date('Start date', required=True), 'date_start': fields.date('Start date', required=True),
'date_stop': fields.date('End date', required=True), 'date_stop': fields.date('End date', required=True),
'period_ids': fields.one2many('account.period', 'fiscalyear_id', 'Periods'), 'period_ids': fields.one2many('account.period', 'fiscalyear_id', 'Periods'),
@ -557,6 +559,8 @@ class account_period(osv.osv):
_columns = { _columns = {
'name': fields.char('Period Name', size=64, required=True), 'name': fields.char('Period Name', size=64, required=True),
'code': fields.char('Code', size=12), 'code': fields.char('Code', size=12),
'special': fields.boolean('Special Period', size=12,
help="Special periods are periods that can overlap, like the 13rd period in fiscal years for closing entries."),
'date_start': fields.date('Start of period', required=True, states={'done':[('readonly',True)]}), 'date_start': fields.date('Start of period', required=True, states={'done':[('readonly',True)]}),
'date_stop': fields.date('End of period', required=True, states={'done':[('readonly',True)]}), 'date_stop': fields.date('End of period', required=True, states={'done':[('readonly',True)]}),
'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True), 'fiscalyear_id': fields.many2one('account.fiscalyear', 'Fiscal Year', required=True, states={'done':[('readonly',True)]}, select=True),
@ -567,21 +571,28 @@ class account_period(osv.osv):
} }
_order = "date_start" _order = "date_start"
def _check_duration(self,cr,uid,ids): def _check_duration(self,cr,uid,ids,context={}):
obj_period=self.browse(cr,uid,ids[0]) obj_period=self.browse(cr,uid,ids[0])
if obj_period.date_stop < obj_period.date_start: if obj_period.date_stop < obj_period.date_start:
return False return False
return True return True
def _check_year_limit(self,cr,uid,ids): def _check_year_limit(self,cr,uid,ids,context={}):
obj_period=self.browse(cr,uid,ids[0]) for obj_period in self.browse(cr,uid,ids):
if obj_period.fiscalyear_id.date_stop < obj_period.date_stop or obj_period.fiscalyear_id.date_stop < obj_period.date_start or obj_period.fiscalyear_id.date_start > obj_period.date_start or obj_period.fiscalyear_id.date_start > obj_period.date_stop: if obj_period.special:
return False continue
if obj_period.fiscalyear_id.date_stop < obj_period.date_stop or obj_period.fiscalyear_id.date_stop < obj_period.date_start or obj_period.fiscalyear_id.date_start > obj_period.date_start or obj_period.fiscalyear_id.date_start > obj_period.date_stop:
return False
pids = self.search(cr, uid, [('date_stop','>=',obj_period.date_start),('date_stop','<=',obj_period.date_start),('special','=',False),('id','<>',obj_period.id)])
for period in self.browse(cr, uid, pids):
if period.fiscalyear_id.company_id.id==obj_period.fiscalyear_id.company_id.id:
return False
return True return True
_constraints = [ _constraints = [
(_check_duration, 'Error ! The date duration of the Period(s) is invalid. ', ['date_stop']), (_check_duration, 'Error ! The date duration of the Period(s) is invalid. ', ['date_stop']),
(_check_year_limit, 'Error ! The date duration of the Period(s) should be within the limit of the Fiscal year. ', ['date_stop']) (_check_year_limit, 'Invalid period ! Some periods overlap or the date duration is not in the limit of the fiscal year. ', ['date_stop'])
] ]
def next(self, cr, uid, period, step, context={}): def next(self, cr, uid, period, step, context={}):

View File

@ -19,30 +19,35 @@
<record id="period_1" model="account.period"> <record id="period_1" model="account.period">
<field eval="'Jan.'+time.strftime('%Y')" name="name"/> <field eval="'Jan.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-01-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-01-31'" name="date_stop"/>
</record> </record>
<record id="period_2" model="account.period"> <record id="period_2" model="account.period">
<field eval="'Feb.'+time.strftime('%Y')" name="name"/> <field eval="'Feb.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-02-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-02-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-02-28'" name="date_stop"/> <field eval="time.strftime('%Y')+'-02-28'" name="date_stop"/>
</record> </record>
<record id="period_3" model="account.period"> <record id="period_3" model="account.period">
<field eval="'Mar.'+time.strftime('%Y')" name="name"/> <field eval="'Mar.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-03-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-03-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-03-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-03-31'" name="date_stop"/>
</record> </record>
<record id="period_4" model="account.period"> <record id="period_4" model="account.period">
<field eval="'Apr.'+time.strftime('%Y')" name="name"/> <field eval="'Apr.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-04-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-04-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-04-30'" name="date_stop"/> <field eval="time.strftime('%Y')+'-04-30'" name="date_stop"/>
</record> </record>
<record id="period_5" model="account.period"> <record id="period_5" model="account.period">
<field eval="'May.'+time.strftime('%Y')" name="name"/> <field eval="'May.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-05-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-05-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-05-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-05-31'" name="date_stop"/>
@ -50,41 +55,48 @@
<record id="period_6" model="account.period"> <record id="period_6" model="account.period">
<field eval="'Jun.'+time.strftime('%Y')" name="name"/> <field eval="'Jun.'+time.strftime('%Y')" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="True" name="special"/>
<field eval="time.strftime('%Y')+'-06-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-06-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-06-30'" name="date_stop"/> <field eval="time.strftime('%Y')+'-06-30'" name="date_stop"/>
</record> </record>
<record id="period_7" model="account.period"> <record id="period_7" model="account.period">
<field eval="'Jul.'+time.strftime('%Y')" name="name"/> <field eval="'Jul.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-07-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-07-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-07-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-07-31'" name="date_stop"/>
</record> </record>
<record id="period_8" model="account.period"> <record id="period_8" model="account.period">
<field eval="'Aug.'+time.strftime('%Y')" name="name"/> <field eval="'Aug.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-08-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-08-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-08-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-08-31'" name="date_stop"/>
</record> </record>
<record id="period_9" model="account.period"> <record id="period_9" model="account.period">
<field eval="'Sep.'+time.strftime('%Y')" name="name"/> <field eval="'Sep.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-09-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-09-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-09-30'" name="date_stop"/> <field eval="time.strftime('%Y')+'-09-30'" name="date_stop"/>
</record> </record>
<record id="period_10" model="account.period"> <record id="period_10" model="account.period">
<field eval="'Oct.'+time.strftime('%Y')" name="name"/> <field eval="'Oct.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-10-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-10-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-10-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-10-31'" name="date_stop"/>
</record> </record>
<record id="period_11" model="account.period"> <record id="period_11" model="account.period">
<field eval="'Nov.'+time.strftime('%Y')" name="name"/> <field eval="'Nov.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-11-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-11-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-11-30'" name="date_stop"/> <field eval="time.strftime('%Y')+'-11-30'" name="date_stop"/>
</record> </record>
<record id="period_12" model="account.period"> <record id="period_12" model="account.period">
<field eval="'Dec.'+time.strftime('%Y')" name="name"/> <field eval="'Dec.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/> <field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-12-01'" name="date_start"/> <field eval="time.strftime('%Y')+'-12-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/> <field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/>