diff --git a/product/ERP5/Document/Amount.py b/product/ERP5/Document/Amount.py
index 3d1c6e2d745ad2302e6d5549d3f00e2117ef43e2..bfa966884d78f9226b43520c6f415d0f63da05db 100755
--- a/product/ERP5/Document/Amount.py
+++ b/product/ERP5/Document/Amount.py
@@ -29,16 +29,18 @@
 
 from Globals import InitializeClass
 from AccessControl import ClassSecurityInfo
+from Products.ERP5.Variated import Variated
+from Products.ERP5.VariationValue import VariationValue
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.Base import Base
-from Products.ERP5.VariationValue import VariationValue
-from Products.ERP5.Variated import Variated
 from Products.ERP5Type.Base import TempBase
 from Products.CMFCategory.Renderer import Renderer
 
+
 from zLOG import LOG
 
 
+
 class Amount(Base, Variated):
   """
     A mix-in class which provides some utilities
@@ -65,7 +67,7 @@ class Amount(Base, Variated):
                     , PropertySheet.SimpleItem
                     , PropertySheet.Amount
                     , PropertySheet.Price
-  )
+                    )
 
   # A few more mix-in methods which should be relocated
   # THIS MUST BE UPDATE WITH CATEGORY ACQUISITION
@@ -144,11 +146,11 @@ class Amount(Base, Variated):
     self._setVariationCategoryList(value)
     self.reindexObject()
 
-  security.declareProtected(Permissions.ModifyPortalContent, 
+  security.declareProtected(Permissions.ModifyPortalContent,
                             'getVariationBaseCategoryList')
   def getVariationBaseCategoryList(self, omit_option_base_category=0):
     """
-      Return the list of base_category from all variation related to 
+      Return the list of base_category from all variation related to
       amount.
       It is maybe a nonsense, but useful for correcting user errors.
     """
@@ -225,7 +227,7 @@ class Amount(Base, Variated):
         getVariationRangeBaseCategoryList -> notion of
         getVariationBaseCategoryList is different
     """
-    resource = self.getDefaultResourceValue() 
+    resource = self.getDefaultResourceValue()
     if resource is not None:
       result = resource.getVariationBaseCategoryList()
     else:
@@ -242,11 +244,11 @@ class Amount(Base, Variated):
       Return a dictionary of:
         {property_id: property_value,}
       Each property is a variation of the resource.
-      The variation property list is defined on resource, 
+      The variation property list is defined on resource,
       with setVariationPropertyList.
     """
     property_dict = {}
-    resource = self.getDefaultResourceValue() 
+    resource = self.getDefaultResourceValue()
     if resource is not None:
       variation_list = resource.getVariationPropertyList()
       for variation_property in variation_list:
@@ -255,17 +257,17 @@ class Amount(Base, Variated):
             getattr(self, variation_property, None)
     return property_dict
 
-  security.declareProtected(Permissions.ModifyPortalContent, 
+  security.declareProtected(Permissions.ModifyPortalContent,
                             'setVariationPropertyDict')
   def setVariationPropertyDict(self, property_dict):
     """
       Take a parameter a property dict like:
         {property_id: property_value,}
       Each property is a variation of the resource.
-      If one of the property_id is not a variation, a exception 
+      If one of the property_id is not a variation, a exception
       KeyError is raised.
     """
-    resource = self.getDefaultResourceValue() 
+    resource = self.getDefaultResourceValue()
     if resource is not None:
       variation_list = resource.getVariationPropertyList()
     else:
@@ -313,7 +315,6 @@ class Amount(Base, Variated):
     unit_base_price = resource.getPrice(context=self)
     return unit_base_price
 
-
   security.declareProtected(Permissions.AccessContentsInformation, 'getDuration')
   def getDuration(self):
     """
@@ -323,14 +324,11 @@ class Amount(Base, Variated):
     quantity_unit = self.getQuantityUnit()
     if quantity_unit is None:
       return None
-
     common_time_category = 'time'
-
     if common_time_category in quantity_unit[:len(common_time_category)]:
       duration = quantity
     else:
       duration = None
-
     return duration
 
   security.declareProtected(Permissions.AccessContentsInformation, 'getTotalBasePrice')
@@ -342,13 +340,14 @@ class Amount(Base, Variated):
     efficiency = self.getEfficiency()
     if efficiency != 0:
       resource_price = self.getResourcePrice()
-      if resource_price is None:
-        return None
-      result = resource_price * self.getConvertedQuantity() / efficiency
+      if resource_price is not None:
+        return resource_price * self.getConvertedQuantity() / efficiency
+    price = self.getPrice()
+    quantity = self.getQuantity()
+    if type(price) in (type(1.0), type(1)) and type(quantity) in (type(1.0), type(1)):
+      result = quantity * price
     return result
 
-
-
   # Conversion to standard unit
   security.declareProtected(Permissions.AccessContentsInformation, 'getConvertedQuantity')
   def getConvertedQuantity(self):
@@ -586,4 +585,3 @@ class Amount(Base, Variated):
 
   def _setLostQuantity(self, value):
     return self._setProfitQuantity(- value)
-