[ADD]show name of the contract warning in vehicle kanban view

bzr revid: csn@openerp.com-20121022081833-vybzaxflneqq0h1s
This commit is contained in:
Cedric Snauwaert 2012-10-22 10:18:33 +02:00
parent e9bfbdd715
commit 17aca9c95f
2 changed files with 99 additions and 19 deletions

View File

@ -392,6 +392,48 @@ class fleet_vehicle(osv.Model):
res = self.get_next_contract_reminder_fnc(cr, uid, ids, context=context)
return res
def get_contract_renewal_names(self,cr,uid,ids,function_name,args,context=None):
if not ids:
return dict([])
reads = self.browse(cr,uid,ids,context=context)
res=[]
for record in reads:
ids = self.pool.get('fleet.vehicle.log.contract').search(cr,uid,[('vehicle_id','=',record.id),('state','=','open')],limit=1,order='expiration_date asc')
if len(ids) > 0:
res.append((record.id,self.pool.get('fleet.vehicle.log.contract').browse(cr,uid,ids[0],context=context).cost_type.name))
return dict(res)
def get_total_contract_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:
due_soon=0
if (record.log_contracts):
for element in record.log_contracts:
if (element.state=='open' and element.expiration_date):
current_date_str=time.strftime('%Y-%m-%d')
due_time_str=element.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:
due_soon = due_soon +1;
if due_soon>0:
due_soon=due_soon-1
res.append((record.id,due_soon))
else:
res.append((record.id,0))
return dict(res)
def run_scheduler(self,cr,uid,context=None):
ids = self.pool.get('fleet.vehicle').search(cr, uid, [], offset=0, limit=None, order=None,context=None, count=False)
nexts = self.get_next_contract_reminder_fnc(cr,uid,ids,context=context)
@ -444,7 +486,9 @@ class fleet_vehicle(osv.Model):
'contract_renewal_due_soon' : fields.function(get_next_contract_reminder,fnct_search=_search_contract_renewal_due_soon,type="integer",string='Contracts to renew',store=False),
'contract_renewal_overdue' : fields.function(get_overdue_contract_reminder,fnct_search=_search_get_overdue_contract_reminder,type="integer",string='Contracts Overdued',store=False),
'contract_renewal_name' : fields.function(get_contract_renewal_names,type="text",string='Name of contract to renew soon',store=False),
'contract_renewal_total' : fields.function(get_total_contract_reminder,type="integer",string='Total of contracts due or overdue minus one',store=False),
'car_value': fields.float('Car Value', help='Value of the bought vehicle'),
#'leasing_value': fields.float('Leasing value',help='Value of the leasing(Monthly, usually'),
}
@ -811,6 +855,8 @@ class fleet_vehicle_log_contract(osv.Model):
name = str(record.vehicle_id.name)
if record.cost_type.name:
name = name+ ' / '+ str(record.cost_type.name)
if record.date:
name = name+ ' / '+ record.date
res.append((record.id, name))
return res
@ -896,6 +942,27 @@ class fleet_vehicle_log_contract(osv.Model):
# res.append((record.id,-1))
return dict(res)
def act_renew_contract(self,cr,uid,ids,context=None):
contracts = self.browse(cr,uid,ids,context=context)
res = self.pool.get('ir.actions.act_window').for_xml_id(cr, uid ,'fleet','act_renew_contract', context)
for element in contracts:
print '--------------------------'
print element.vehicle_id.id
print element.cost_type.id
print element.amount
print element.odometer
print element.insurer_id
res['context'] = {
'default_vehicle_id': element.vehicle_id.id,
'default_cost_type': element.cost_type.id,
'default_amount': element.amount,
'default_odometer': element.odometer,
#'default_insurer_id': element.insurer_id,
}
#res['domain']=[('vehicle_id','=', ids[0])]
return res
#return None
_name = 'fleet.vehicle.log.contract'
_order='state,expiration_date'
_columns = {

View File

@ -243,6 +243,7 @@
<field name="odometer" />
<field name="contract_renewal_due_soon" invisible="1"/>
<field name="contract_renewal_overdue" invisible="1" />
<field name="contract_renewal_total" invisible="1"/>
</tree>
</field>
</record>
@ -277,6 +278,9 @@
<field name="tag_ids" />
<field name="contract_renewal_due_soon" />
<field name="contract_renewal_overdue" />
<field name="contract_renewal_name" />
<field name="contract_renewal_total" />
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_vignette oe_semantic_html_override">
@ -292,20 +296,20 @@
</h4>
<t t-if="record.contract_renewal_due_soon.raw_value > 0 and record.contract_renewal_overdue.raw_value lte 0">
<a data-type="object" data-name="act_show_log_contract" href="#" class="oe_kanban_action oe_kanban_action_a">
<span class="oe_kanban_button oe_kanban_color_3">Contract Renewal</span>
<span class="oe_kanban_button oe_kanban_color_3"><field name="contract_renewal_name" />
<t t-if="record.contract_renewal_total.raw_value > 0"> and <field name="contract_renewal_total" /> other(s) </t>
</span>
</a>
</t>
<t t-if="record.contract_renewal_overdue.raw_value > 0">
<a data-type="object" data-name="act_show_log_contract" href="#" class="oe_kanban_action oe_kanban_action_a">
<span class="oe_kanban_button oe_kanban_color_2">Contract Renewal</span>
<span class="oe_kanban_button oe_kanban_color_2"><field name="contract_renewal_name" />
<t t-if="record.contract_renewal_total.raw_value > 0"> and <field name="contract_renewal_total" /> other(s) </t>
</span>
</a>
</t>
<div class="oe_kanban_partner_categories">
<span class="oe_kanban_list_many2many">
<div modifiers="{}" name="tag_ids" class="oe_form_field oe_tags" model="fleet.vehicle.tag" t-att-data="record.tag_ids.raw_value" />
</span>
</div>
<ul>
<li>
<t t-if="record.driver.raw_value"><field name="driver"/></t>
@ -316,6 +320,12 @@
</ul>
<div class="oe_kanban_partner_categories">
<span class="oe_kanban_list_many2many">
<div modifiers="{}" name="tag_ids" class="oe_form_field oe_tags" model="fleet.vehicle.tag" t-att-data="record.tag_ids.raw_value" />
</span>
</div>
</div>
</div>
</t>
@ -391,6 +401,8 @@
<menuitem name="Vehicles" parent="menu_root" id="fleet_vehicles" sequence="2" />
<menuitem action="fleet_vehicle_act" parent="fleet_vehicles" id="fleet_vehicle_menu" />
<record model='ir.ui.view' id='fleet_vehicle_log_contract_form'>
<field name="name">fleet.vehicle.log_contract.form</field>
<field name="model">fleet.vehicle.log.contract</field>
@ -399,6 +411,7 @@
<header>
<button modifiers="{'invisible': [['state', 'not in', ['open']]]}" name="contract_close" states="open" type="object" class="oe_highlight" string="Terminate Contract"/>
<button modifiers="{'invisible': [['state', 'not in', ['closed']]]}" name="contract_open" states="closed" type="object" class="oe_highlight" string="Set Contract In Progress"/>
<button class="oe_highlight" name="act_renew_contract" type="object" string="Renew Contract" help="Create a new contract automatically with all the same informations except for the date that will start at the end of current contract" />
<field name="state" widget="statusbar" />
</header>
<sheet>
@ -434,17 +447,7 @@
<field name="cost_type" domain="[('category','=','service')]"/>
<field name="amount" sum="Price" string="Indicative Cost" />
</tree>
<!--<form string="Costs" version="7.0">
<sheet>
<group>
<field name="cost_type" />
<field name="amount" />
</group>
</sheet>
</form>-->
</field>
</group>
<group string="Terms and Conditions">
<field name="notes" nolabel="1" placeholder="Write here all other information relative to this contract" />
@ -454,6 +457,17 @@
</field>
</record>
<act_window
id="act_renew_contract"
name="Renew Contract"
res_model="fleet.vehicle.log.contract"
src_model="fleet.vehicle.log.contract"
view_mode="form"
view_type="form"
/>
<record model='ir.ui.view' id='fleet_vehicle_log_contract_tree'>
<field name="name">fleet.vehicle.log.contract.tree</field>
<field name="model">fleet.vehicle.log.contract</field>
@ -467,7 +481,6 @@
<field name="warning_date" invisible="1"/>
<field name="insurer_id" />
<field name="amount"/>
<field name="notes" />
</tree>
</field>