From 9d2dfd6d2e75954d4e4ffe0c3ac2e8ae1bea3d61 Mon Sep 17 00:00:00 2001
From: "Denis Ledoux dle@openerp.com" <>
Date: Tue, 25 Sep 2012 11:20:22 +0200
Subject: [PATCH] [FIX]Fuel price computation bugs, missing float casts
bzr revid: dle@openerp.com-20120925092022-vpwh5likl1ul37qm
---
addons/fleet/fleet.py | 28 +++++++++++++---------------
addons/fleet/fleet_view.xml | 2 ++
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py
index 3ed8c426581..087efc67002 100644
--- a/addons/fleet/fleet.py
+++ b/addons/fleet/fleet.py
@@ -153,40 +153,37 @@ class fleet_vehicle_log_fuel(osv.Model):
def on_change_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None):
- print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
-
if liter > 0 and price_per_liter > 0:
- return {'value' : {'liter': liter,'price_per_liter': price_per_liter, 'amount' : liter * price_per_liter,}}
+ return {'value' : {'amount' : float(liter) * float(price_per_liter),}}
elif liter > 0 and amount > 0:
- return {'value' : {'liter' : liter, 'amount' : amount, 'price_per_liter' : float(amount / liter),}}
+ return {'value' : {'price_per_liter' : float(amount) / float(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),}}
+ return {'value' : {'liter' : float(amount) / float(price_per_liter),}}
else :
return {}
def on_change_price_per_liter(self, cr, uid, ids, liter, price_per_liter, amount, context=None):
- print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
-
+ liter = float(liter);
+ price_per_liter = float(price_per_liter);
if price_per_liter > 0 and liter > 0:
- return {'value' : {'liter' : liter, 'price_per_liter' : price_per_liter, 'amount' : liter * price_per_liter,}}
+ print 'Debug :' + str(liter) + ' | ' + str(price_per_liter) + ' | ' + str(amount)
+ return {'value' : {'amount' : float(liter) * float(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),}}
+ return {'value' : {'liter' : float(amount) / float(price_per_liter),}}
elif liter > 0 and amount > 0:
- return {'value' : {'liter' : liter, 'amount' : amount, 'price_per_liter' : float(amount / liter),}}
+ return {'value' : {'price_per_liter' : float(amount) / float(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),}}
+ return {'value' : {'price_per_liter' : float(amount) / float(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),}}
+ return {'value' : {'liter' : float(amount) / float(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,}}
+ return {'value' : {'amount' : float(liter) * float(price_per_liter),}}
else :
return {}
@@ -197,6 +194,7 @@ class fleet_vehicle_log_fuel(osv.Model):
'price_per_liter' : fields.float('Price per liter'),
'amount': fields.float('Total price'),
'inv_ref' : fields.char('Invoice Ref.', size=32),
+ 'vendor_id' :fields.many2one('res.partner', 'Vendor', domain="[('supplier','=',True)]"),
}
_defaults = {
'name': 'Fuel log',
diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml
index 0164037a6e0..7d0c6f737f7 100644
--- a/addons/fleet/fleet_view.xml
+++ b/addons/fleet/fleet_view.xml
@@ -150,6 +150,7 @@
+
@@ -165,6 +166,7 @@
+