Commit 0e69c23d authored by Nicolas Dumazet's avatar Nicolas Dumazet

Allow to invert a conversion definition, defining its base unit w.r.t. new unit


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@34825 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 1bf25924
......@@ -49,6 +49,7 @@ class QuantityUnitConversionDefinition(XMLObject):
, PropertySheet.XMLObject
, PropertySheet.CategoryCore
, PropertySheet.Amount
, PropertySheet.QuantityUnitConversionDefinition
)
security.declareProtected(Permissions.AccessContentsInformation,
......@@ -66,3 +67,13 @@ class QuantityUnitConversionDefinition(XMLObject):
return default_title
def getConversionRatio(self):
"""
Compute conversion ratio associated with this definition
"""
quantity = self.getQuantity()
if quantity != 0 and self.isInverse():
quantity = 1.0/quantity
return quantity
......@@ -1019,11 +1019,12 @@ class Resource(XMLMatrix, Variated):
if unit_uid is None:
continue
quantity = definition.getQuantity()
if not quantity:
definition_ratio = definition.getConversionRatio()
if not definition_ratio:
continue
result[unit_uid] = (definition.getUid(), quantity*reference_ratio)
result[unit_uid] = (definition.getUid(),
definition_ratio*reference_ratio)
return result
......
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (c) 2010 Nexedi SARL and Contributors. All Rights Reserved.
# Nicolas Dumazet <nicolas.dumazet@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
class QuantityUnitConversionDefinition:
"""
Properies for Quantity Unit Conversion Definitions
"""
_properties = (
{ 'id' : 'inverse',
'description' : 'Defines if this quantity should be interpreted as an inversed number',
'type' : 'boolean',
'default': False,
'mode' : 'w' },
)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment