[IMP]Cron dates

bzr revid: dle@openerp.com-20121024082428-230yvc0prch4d7wf
This commit is contained in:
Denis Ledoux dle@openerp.com 2012-10-24 10:24:28 +02:00
parent 0ddd32f68f
commit c144f3e183
1 changed files with 13 additions and 14 deletions

View File

@ -854,7 +854,7 @@ class fleet_vehicle_log_contract(osv.Model):
def run_scheduler(self,cr,uid,context=None):
d = datetime.datetime.now()
d = datetime.date.today()
#d = datetime.datetime(2012, 12, 01)
contract_ids = self.pool.get('fleet.vehicle.log.contract').search(cr, uid, [('state','=','open')], offset=0, limit=None, order=None,context=None, count=False)
@ -864,38 +864,37 @@ class fleet_vehicle_log_contract(osv.Model):
last_cost_date = self.pool.get('fleet.vehicle.cost').browse(cr,uid,last_cost_id[0],context=None).date
else :
last_cost_date = False
if contract.cost_frequency == 'yearly':
delta = relativedelta(years=+1)
if last_cost_date:
startdate = datetime.datetime(int(last_cost_date[:4]),1,1) + relativedelta(years=+1)
startdate = datetime.date(int(last_cost_date[:4]),1,1) + relativedelta(years=+1)
else:
startdate = datetime.datetime(int(contract.start_date[:4]),1,1)
enddate = datetime.datetime(d.year,1,1)
startdate = datetime.date(int(contract.start_date[:4]),1,1)
enddate = datetime.date(d.year,1,1)
elif contract.cost_frequency == 'monthly':
delta = relativedelta(months=+1)
if last_cost_date:
startdate = datetime.datetime(int(last_cost_date[:4]),int(last_cost_date[5:7]),1) + relativedelta(months=+1)
startdate = datetime.date(int(last_cost_date[:4]),int(last_cost_date[5:7]),1) + relativedelta(months=+1)
else:
startdate = datetime.datetime(int(contract.start_date[:4]),int(contract.start_date[5:7]),1)
enddate = datetime.datetime(d.year,d.month,1)
startdate = datetime.date(int(contract.start_date[:4]),int(contract.start_date[5:7]),1)
enddate = datetime.date(d.year,d.month,1)
elif contract.cost_frequency == 'weekly':
delta = relativedelta(weeks=+1)
if last_cost_date:
startdate = datetime.datetime.strptime(last_cost_date[:4]+'-'+last_cost_date[5:7]+'-'+str(self.str_to_date(last_cost_date).weekday()),'%Y-%m-%w') + relativedelta(weeks=+1)
startdate = datetime.datetime.strptime(last_cost_date[:4]+'-'+self.str_to_date(last_cost_date[5:7]).strftime('%W')+'-'+str(self.str_to_date(last_cost_date).weekday()),'%Y-%W-%w').date() + relativedelta(weeks=+1)
else:
startdate = datetime.datetime.strptime(contract.start_date[:4]+'-'+contract.start_date[5:7]+'-'+str(self.str_to_date(contract.start_date).weekday()),'%Y-%m-%w')
enddate = datetime.datetime.strptime(str(d.year)+'-'+d.strftime('%W')+'-'+d.strftime('%w'),'%Y-%W-%w')
startdate = datetime.date.strptime(contract.start_date[:4]+'-'+self.str_to_date(contract.start_date[5:7]).strftime('%W')+'-'+str(self.str_to_date(contract.start_date).weekday()).date(),'%Y-%W-%w')
enddate = datetime.date.strptime(str(d.year)+'-'+d.strftime('%W')+'-'+d.strftime('%w'),'%Y-%W-%w')
elif contract.cost_frequency == 'daily':
delta = relativedelta(days=+1)
if last_cost_date:
startdate = datetime.datetime.strptime(last_cost_date,'%Y-%m-%d') + relativedelta(days=+1)
startdate = datetime.datetime.strptime(last_cost_date,'%Y-%m-%d').date() + relativedelta(days=+1)
else:
startdate = datetime.datetime.strptime(contract.start_date,'%Y-%m-%d')
startdate = datetime.datetime.strptime(contract.start_date,'%Y-%m-%d').date()
enddate = d
print 'Start : '+str(startdate)+', End : '+str(enddate)
while startdate <= enddate:
data = {'amount' : contract.cost_generated,'date' : startdate,'vehicle_id' : contract.vehicle_id.id,'cost_type' : contract.cost_type.id,'contract_id' : contract.id,'auto_generated' : True}
data = {'amount' : contract.cost_generated,'date' : startdate.strftime('%Y-%m-%d'),'vehicle_id' : contract.vehicle_id.id,'cost_type' : contract.cost_type.id,'contract_id' : contract.id,'auto_generated' : True}
print data
cost_id = self.pool.get('fleet.vehicle.cost').create(cr, uid, data, context=context)
startdate += delta