[IMP]Cron improvement, deltas in dict and no more if elif structure

bzr revid: dle@openerp.com-20121025090650-q60ujsn4mfuueezy
This commit is contained in:
Denis Ledoux dle@openerp.com 2012-10-25 11:06:50 +02:00
parent 9c54472534
commit 557f027938
1 changed files with 5 additions and 14 deletions

View File

@ -876,8 +876,9 @@ class fleet_vehicle_log_contract(osv.Model):
#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)
deltas = {'yearly' : relativedelta(years=+1),'monthly' : relativedelta(months=+1),'weekly' : relativedelta(weeks=+1),'daily' : relativedelta(days=+1)}
for contract in self.pool.get('fleet.vehicle.log.contract').browse(cr,uid,contract_ids,context=context):
if not contract.start_date:
if not contract.start_date or contract.cost_frequency == 'no':
break;
if contract.generated_cost_ids != []:
last_cost_id = self.pool.get('fleet.vehicle.cost').search(cr, uid, ['&',('contract_id','=',contract.id),('auto_generated','=',True)], offset=0, limit=1, order='date desc',context=None, count=False)
@ -887,23 +888,13 @@ class fleet_vehicle_log_contract(osv.Model):
found = False
last_cost_date = contract.start_date
startdate = datetime.datetime.strptime(last_cost_date,'%Y-%m-%d').date()
if contract.cost_frequency == 'yearly':
delta = relativedelta(years=+1)
elif contract.cost_frequency == 'monthly':
delta = relativedelta(months=+1)
elif contract.cost_frequency == 'weekly':
delta = relativedelta(weeks=+1)
elif contract.cost_frequency == 'daily':
delta = relativedelta(days=+1)
elif contract.cost_frequency == 'no':
break;
if found:
startdate += delta
while startdate < d:
startdate += deltas.get(contract.cost_frequency)
while (startdate < d) & (startdate < datetime.datetime.strptime(contract.expiration_date,'%Y-%m-%d').date()):
data = {'amount' : contract.cost_generated,'date' : startdate.strftime('%Y-%m-%d'),'vehicle_id' : contract.vehicle_id.id,'cost_subtype' : contract.cost_subtype.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
startdate += deltas.get(contract.cost_frequency)
return True
def name_get(self, cr, uid, ids, context=None):