parent
dcde363845
commit
923aa8b8d4
|
@ -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={}):
|
||||||
|
|
|
@ -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"/>
|
||||||
|
|
Loading…
Reference in New Issue