[FIX]Fuel price computation
bzr revid: dle@openerp.com-20120925084005-b037jpy4xg6d0ev6
This commit is contained in:
parent
3fdd614cc8
commit
10cd8374b8
|
@ -151,33 +151,51 @@ class fleet_vehicle_log_fuel(osv.Model):
|
|||
|
||||
_inherit = ['fleet.vehicle.log','mail.thread']
|
||||
|
||||
def on_change_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None):
|
||||
|
||||
def _get_price(self, cr, uid, ids, fields, args, context=None):
|
||||
result = {}
|
||||
for record in self.browse(cr, uid, ids, context=None):
|
||||
res = record.liter * record.price_per_liter
|
||||
result[record.id] = {
|
||||
'amount' : res,
|
||||
}
|
||||
return result
|
||||
print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
|
||||
|
||||
def on_change_fuel(self, cr, uid, ids, liter, price_per_liter, context=None):
|
||||
if liter > 0 and price_per_liter > 0:
|
||||
return {'value' : {'liter': liter,'price_per_liter': price_per_liter, 'amount' : liter * price_per_liter,}}
|
||||
elif liter > 0 and amount > 0:
|
||||
return {'value' : {'liter' : liter, 'amount' : amount, 'price_per_liter' : float(amount / liter),}}
|
||||
elif price_per_liter > 0 and amount > 0:
|
||||
return {'value' : {'price_per_liter' : price_per_liter, 'amount' : amount, 'liter' : float(amount / price_per_liter),}}
|
||||
else :
|
||||
return {}
|
||||
|
||||
print 'Amount : ' + str(liter * price_per_liter)
|
||||
def on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None):
|
||||
|
||||
return {
|
||||
'value' : {
|
||||
'amount' : liter * price_per_liter,
|
||||
}
|
||||
}
|
||||
print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
|
||||
|
||||
if price_per_liter > 0 and liter > 0:
|
||||
return {'value' : {'liter' : liter, 'price_per_liter' : price_per_liter, 'amount' : liter * price_per_liter,}}
|
||||
elif price_per_liter > 0 and amount > 0:
|
||||
return {'value' : {'price_per_liter' : price_per_liter, 'amount' : amount, 'liter' : float(amount / price_per_liter),}}
|
||||
elif liter > 0 and amount > 0:
|
||||
return {'value' : {'liter' : liter, 'amount' : amount, 'price_per_liter' : float(amount / liter),}}
|
||||
else :
|
||||
return {}
|
||||
|
||||
def on_change_amount(self, cr, uid, ids, liter, price_per_liter, amount, context=None):
|
||||
|
||||
print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
|
||||
|
||||
if amount > 0 and liter > 0:
|
||||
return {'value' : {'liter' : liter, 'amount' : amount, 'price_per_liter' : float(amount / liter),}}
|
||||
elif amount > 0 and price_per_liter > 0:
|
||||
return {'value' : {'price_per_liter' : price_per_liter, 'amount' : amount, 'liter' : float(amount / price_per_liter),}}
|
||||
elif liter > 0 and price_per_liter > 0:
|
||||
return {'value' : {'liter' : liter, 'price_per_liter' : price_per_liter, 'amount' : liter * price_per_liter,}}
|
||||
else :
|
||||
return {}
|
||||
|
||||
|
||||
_name = 'fleet.vehicle.log.fuel'
|
||||
_columns = {
|
||||
'liter' : fields.float('Liter'),
|
||||
'price_per_liter' : fields.float('Price per liter'),
|
||||
'amount': fields.function(_get_price, type='float', multi='fuel', string='Total Price'),
|
||||
'amount': fields.float('Total price'),
|
||||
'inv_ref' : fields.char('Invoice Ref.', size=32),
|
||||
}
|
||||
_defaults = {
|
||||
|
|
|
@ -155,14 +155,20 @@
|
|||
</tree>
|
||||
<form string="Fuel Logs" version="7.0">
|
||||
<sheet>
|
||||
<group col = "2">
|
||||
<group>
|
||||
<field name="liter" on_change="on_change_liter(liter,price_per_liter,amount)"/>
|
||||
<field name="price_per_liter" on_change="on_change_price_per_liter(liter,price_per_liter,amount)" />
|
||||
<field name="amount" on_change="on_change_amount(liter,price_per_liter,amount)"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date_creation" />
|
||||
<field name="employee_id" />
|
||||
<field name="inv_ref" />
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date_creation" />
|
||||
<field name="employee_id" />
|
||||
<field name="liter" on_change="on_change_fuel(liter,price_per_liter)"/>
|
||||
<field name="price_per_liter" on_change="on_change_fuel(liter,price_per_liter)" />
|
||||
<field name="amount" />
|
||||
<field name="description" />
|
||||
<field name="inv_ref" />
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
|
|
Loading…
Reference in New Issue