[ADD]some fields to compute due and overdue insurance
bzr revid: csn@openerp.com-20121001152304-aaxipdrnk9s7v2he
This commit is contained in:
parent
fab293e9a5
commit
b736feca4c
|
@ -2,6 +2,7 @@ from itertools import chain
|
|||
from osv import osv, fields
|
||||
import time
|
||||
import tools
|
||||
import datetime
|
||||
|
||||
|
||||
class fleet_vehicle_model_type(osv.Model):
|
||||
|
@ -184,6 +185,37 @@ class fleet_vehicle(osv.Model):
|
|||
res = self.get_odometer(cr, uid, ids, context=context)
|
||||
return dict(res)
|
||||
|
||||
def str_to_date(self,strdate):
|
||||
return datetime.datetime(int(strdate[:4]),int(strdate[5:7]),int(strdate[8:]))
|
||||
|
||||
def get_overdue_insurance_reminder(self,cr,uid,ids,prop,unknow_none,context=None):
|
||||
if context is None:
|
||||
context={}
|
||||
if not ids:
|
||||
return dict([])
|
||||
reads = self.browse(cr,uid,ids,context=context)
|
||||
res=[]
|
||||
for record in reads:
|
||||
insurances = self.pool.get('fleet.vehicle.log.insurance').search(cr,uid,[('vehicle_id','=',record.id),('state','=','In Progress')],order='expiration_date')
|
||||
overdue=0
|
||||
if (len(insurances) > 0):
|
||||
for element in insurances:
|
||||
current_date_str=time.strftime('%Y-%m-%d')
|
||||
due_time_str=self.pool.get('fleet.vehicle.log.insurance').browse(cr,uid,element,context=context).expiration_date
|
||||
|
||||
current_date=self.str_to_date(current_date_str)
|
||||
due_time=self.str_to_date(due_time_str)
|
||||
|
||||
diff_time=int((due_time-current_date).days)
|
||||
if diff_time<0:
|
||||
overdue = overdue +1;
|
||||
else:
|
||||
break
|
||||
res.append((record.id,overdue))
|
||||
else:
|
||||
res.append((record.id,0))
|
||||
return dict(res)
|
||||
|
||||
def get_next_insurance_reminder(self,cr,uid,ids,prop,unknow_none,context=None):
|
||||
if context is None:
|
||||
context={}
|
||||
|
@ -193,10 +225,23 @@ class fleet_vehicle(osv.Model):
|
|||
res=[]
|
||||
for record in reads:
|
||||
insurances = self.pool.get('fleet.vehicle.log.insurance').search(cr,uid,[('vehicle_id','=',record.id),('state','=','In Progress')],order='expiration_date')
|
||||
due_soon=0
|
||||
if (len(insurances) > 0):
|
||||
res.append((record.id,self.pool.get('fleet.vehicle.log.insurance').browse(cr,uid,insurances[0],context=context).expiration_date))
|
||||
for element in insurances:
|
||||
current_date_str=time.strftime('%Y-%m-%d')
|
||||
due_time_str=self.pool.get('fleet.vehicle.log.insurance').browse(cr,uid,element,context=context).expiration_date
|
||||
|
||||
current_date=self.str_to_date(current_date_str)
|
||||
due_time=self.str_to_date(due_time_str)
|
||||
|
||||
diff_time=int((due_time-current_date).days)
|
||||
if diff_time<15 and diff_time>=0:
|
||||
due_soon = due_soon +1;
|
||||
if diff_time>15:
|
||||
break
|
||||
res.append((record.id,due_soon))
|
||||
else:
|
||||
res.append((record.id,None))
|
||||
res.append((record.id,0))
|
||||
return dict(res)
|
||||
|
||||
def get_next_service_reminder(self,cr,uid,ids,prop,unknow_none,context=None):
|
||||
|
@ -250,8 +295,10 @@ class fleet_vehicle(osv.Model):
|
|||
'image_medium': fields.related('model_id','image_medium',type="binary",string="Logo",store=False),
|
||||
'image_small': fields.related('model_id','image_small',type="binary",string="Logo",store=False),
|
||||
|
||||
'next_insurance_date' : fields.function(get_next_insurance_reminder,type="date",string='Next Insurance Due Date',store=False),
|
||||
'insurance_renewal_due_soon' : fields.function(get_next_insurance_reminder,type="integer",string='Insurance Renewal Due Soon',store=False),
|
||||
'insurance_renewal_overdue' : fields.function(get_overdue_insurance_reminder,type="integer",string='Insurance Renewal Overdue',store=False),
|
||||
'next_service_date' : fields.function(get_next_service_reminder,type="date",string='Next Service Due Date',store=False),
|
||||
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -259,6 +306,8 @@ class fleet_vehicle(osv.Model):
|
|||
'odometer_unit' : 'Kilometers',
|
||||
}
|
||||
|
||||
|
||||
|
||||
def on_change_model(self, cr, uid, ids, model_id, context=None):
|
||||
|
||||
if not model_id:
|
||||
|
|
|
@ -184,7 +184,8 @@
|
|||
<field name="acquisition_date" />
|
||||
<field name="state"/>
|
||||
<field name="odometer" />
|
||||
<field name="next_insurance_date" />
|
||||
<field name="insurance_renewal_due_soon" />
|
||||
<field name="insurance_renewal_overdue" />
|
||||
<field name="next_service_date" />
|
||||
</tree>
|
||||
</field>
|
||||
|
@ -224,7 +225,8 @@
|
|||
<field name="odometer_unit" />
|
||||
<field name="image" />
|
||||
<field name="tag_ids" />
|
||||
<field name="next_insurance_date" />
|
||||
<field name="insurance_renewal_due_soon" />
|
||||
<field name="insurance_renewal_overdue" />
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_vignette oe_semantic_html_override">
|
||||
|
@ -258,7 +260,10 @@
|
|||
<t t_if="record.odometer_unit.raw_value"><field name="odometer_unit" /></t>
|
||||
</li>
|
||||
<li>
|
||||
<t t-if="record.next_insurance_date.raw_value">Insurance renewal due soon</t>
|
||||
<t t-if="record.insurance_renewal_due_soon.raw_value">Insurance renewal<br/>- <field name="insurance_renewal_due_soon" /> due soon</t>
|
||||
</li>
|
||||
<li>
|
||||
<t t-if="record.insurance_renewal_overdue.raw_value">- <field name="insurance_renewal_overdue" /> overdue</t>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
|
Loading…
Reference in New Issue