[FIX]Cron + Techincal features + begin of hide cost generated when cost frequency = no
bzr revid: dle@openerp.com-20121024153311-0vcjcp12zfz2um5m
This commit is contained in:
parent
757328b2fe
commit
70a7d80de0
|
@ -927,9 +927,9 @@
|
|||
|
||||
<record id="log_contract_5" model="fleet.vehicle.log.contract" >
|
||||
<field name="vehicle_id" ref="vehicle_5" />
|
||||
<field name="amount">0</field>
|
||||
<field name="cost_generated">17000</field>
|
||||
<field name="cost_frequency">unique</field>
|
||||
<field name="amount">17000</field>
|
||||
<field name="cost_generated">0</field>
|
||||
<field name="cost_frequency">no</field>
|
||||
<field name="cost_type" ref="type_service_56"/>
|
||||
<field name="date" eval="time.strftime('2012-01-01')" />
|
||||
<field name="start_date" eval="time.strftime('2012-01-01')" />
|
||||
|
|
|
@ -867,45 +867,24 @@ class fleet_vehicle_log_contract(osv.Model):
|
|||
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)
|
||||
last_cost_date = self.pool.get('fleet.vehicle.cost').browse(cr,uid,last_cost_id[0],context=None).date
|
||||
found = True
|
||||
else :
|
||||
last_cost_date = False
|
||||
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)
|
||||
if last_cost_date:
|
||||
startdate = datetime.date(int(last_cost_date[:4]),1,1) + relativedelta(years=+1)
|
||||
else:
|
||||
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.date(int(last_cost_date[:4]),int(last_cost_date[5:7]),1) + relativedelta(months=+1)
|
||||
else:
|
||||
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]+'-'+self.str_to_date(last_cost_date).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]+'-'+self.str_to_date(contract.start_date).strftime('%W')+'-'+str(self.str_to_date(contract.start_date).weekday()),'%Y-%W-%w').date()
|
||||
enddate = datetime.datetime.strptime(str(d.year)+'-'+d.strftime('%W')+'-'+d.strftime('%w'),'%Y-%W-%w').date()
|
||||
elif contract.cost_frequency == 'daily':
|
||||
delta = relativedelta(days=+1)
|
||||
if last_cost_date:
|
||||
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').date()
|
||||
enddate = d
|
||||
elif contract.cost_frequency == 'unique':
|
||||
delta = relativedelta(days=+1)
|
||||
if not last_cost_date:
|
||||
enddate = startdate = datetime.datetime.strptime(contract.start_date,'%Y-%m-%d').date()
|
||||
else:
|
||||
startdate = 1
|
||||
enddate = 0
|
||||
print 'Start : '+str(startdate)+', End : '+str(enddate)
|
||||
while startdate <= enddate:
|
||||
elif contract.cost_frequency == 'no':
|
||||
break;
|
||||
if found:
|
||||
startdate += delta
|
||||
while startdate < d:
|
||||
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)
|
||||
|
@ -972,6 +951,12 @@ class fleet_vehicle_log_contract(osv.Model):
|
|||
}
|
||||
}
|
||||
|
||||
def _hide_generated_cost(self, cursor, user, ids, name, arg, context=None):
|
||||
res = {}
|
||||
for contract in self.browse(cursor, user, ids, context=context):
|
||||
res[contract.id] = (contract.cost_frequency == 'no')
|
||||
return res
|
||||
|
||||
def compute_next_year_date(self, strdate):
|
||||
oneyear=datetime.timedelta(days=365)
|
||||
curdate = self.str_to_date(strdate)
|
||||
|
@ -1072,8 +1057,9 @@ class fleet_vehicle_log_contract(osv.Model):
|
|||
'odometer_unit': fields.related('vehicle_id','odometer_unit',type="char",string="Unit",store=False, readonly=True),
|
||||
'cost_amount': fields.related('cost_id','amount',type="float",string="Amount",store=True, readonly=True),
|
||||
'cost_generated': fields.float('Recuring Costs Amount',help="Costs paid at regular intervals, depending on the cost frequency. If the cost frequency is set to unique, the cost will be logged at the start date"),
|
||||
'cost_frequency': fields.selection([('unique','Unique'),('daily', 'Daily'),('weekly','Weekly'),('monthly','Monthly'),('yearly','Yearly')], 'Cost Frequency', help='Frequency of the costs',required=True),
|
||||
'cost_frequency': fields.selection([('no','No'),('daily', 'Daily'),('weekly','Weekly'),('monthly','Monthly'),('yearly','Yearly')], 'Cost Frequency', help='Frequency of the costs',required=True),
|
||||
'generated_cost_ids' : fields.one2many('fleet.vehicle.cost', 'contract_id', 'Generated Costs',ondelete='cascade'),
|
||||
'hide_generated_cost': fields.function(_hide_generated_cost, string='Frequency', type='boolean', help='This field is for internal purpose. It is used to decide if the field generated_cost lot has to be shown on the moves or not.'),
|
||||
}
|
||||
_defaults = {
|
||||
'purchaser_id': lambda self, cr, uid, ctx: uid,
|
||||
|
|
|
@ -155,8 +155,8 @@
|
|||
|
||||
<menuitem name="Fleet" id="menu_root" sequence="30" />
|
||||
<menuitem name="Configuration" parent="menu_root" id="fleet_configuration" sequence="3" />
|
||||
<menuitem action="fleet_vehicle_model_act" parent="fleet_configuration" id="fleet_vehicle_model_menu" />
|
||||
<menuitem action="fleet_vehicle_model_brand_act" parent="fleet_configuration" id="fleet_vehicle_model_brand_menu" />
|
||||
<menuitem action="fleet_vehicle_model_act" parent="fleet_configuration" id="fleet_vehicle_model_menu" groups="base.group_no_one"/>
|
||||
<menuitem action="fleet_vehicle_model_brand_act" parent="fleet_configuration" id="fleet_vehicle_model_brand_menu" groups="base.group_no_one"/>
|
||||
<menuitem action="fleet_vehicle_state_act" parent="fleet_configuration" id="fleet_vehicle_state_menu" />
|
||||
|
||||
<record model='ir.ui.view' id='fleet_vehicle_form'>
|
||||
|
@ -379,8 +379,9 @@
|
|||
<field name="amount" string="Activation Cost"/>
|
||||
<label for="cost_generated"/>
|
||||
<div>
|
||||
<field name="cost_generated" class="oe_inline"/>
|
||||
<field name="cost_frequency" class="oe_inline"/>
|
||||
<field name="hide_generated_cost" />
|
||||
<field name="cost_generated" class="oe_inline" invisible="context.get('hide_generated_cost',True)" />
|
||||
<field name="cost_frequency" class="oe_inline" />
|
||||
</div>
|
||||
</group>
|
||||
<group string="Odometer details">
|
||||
|
@ -784,7 +785,7 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="fleet_vehicle_service_types_act" parent="fleet_configuration" id="fleet_vehicle_service_types_menu" />
|
||||
<menuitem action="fleet_vehicle_service_types_act" parent="fleet_configuration" id="fleet_vehicle_service_types_menu" groups="base.group_no_one"/>
|
||||
|
||||
|
||||
<record model='ir.ui.view' id='fleet_vehicle_costs_tree'>
|
||||
|
|
Loading…
Reference in New Issue