[Erp5-report] r30639 - in /erp5/trunk/products/ERP5: PropertySheet/ interfaces/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Nov 16 09:09:25 CET 2009


Author: yusei
Date: Mon Nov 16 09:09:25 2009
New Revision: 30639

URL: http://svn.erp5.org?rev=30639&view=rev
Log:
Add rounding model property sheet and rounding tool interface.

Added:
    erp5/trunk/products/ERP5/PropertySheet/RoundingModel.py
    erp5/trunk/products/ERP5/interfaces/rounding_tool.py

Added: erp5/trunk/products/ERP5/PropertySheet/RoundingModel.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/PropertySheet/RoundingModel.py?rev=30639&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/PropertySheet/RoundingModel.py (added)
+++ erp5/trunk/products/ERP5/PropertySheet/RoundingModel.py [utf8] Mon Nov 16 09:09:25 2009
@@ -1,0 +1,55 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (c) 2009 Nexedi KK and Contributors. All Rights Reserved.
+#                    Yusei TAHARA <yusei at 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.
+#
+##############################################################################
+
+from Products.ERP5.PropertySheet.DecimalOption import DecimalOption
+
+
+class RoundingModel(DecimalOption):
+  """Rounding Model properties and categories.
+  """
+  _properties = DecimalOption._properties+(
+    { 'id'          : 'rounding_method_id',
+      'description' : 'The name of a python script which implements custom rounding routine.',
+      'type'        : 'string',
+      'mode'        : 'w',
+      'default'     : None,
+    },
+    { 'id'          : 'rounding_method_id',
+      'description' : 'The name of a python script which implements custom rounding routine.',
+      'type'        : 'string',
+      'mode'        : 'w',
+      'default'     : None,
+    },
+    { 'id'          : 'rounded_property_id',
+      'description' : 'The property name which value is rounded. Note that some property is virtual, like total_price.',
+      'type'        : 'string',
+      'mode'        : 'w',
+      'default'     : None,
+    },
+  )

Added: erp5/trunk/products/ERP5/interfaces/rounding_tool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/interfaces/rounding_tool.py?rev=30639&view=auto
==============================================================================
--- erp5/trunk/products/ERP5/interfaces/rounding_tool.py (added)
+++ erp5/trunk/products/ERP5/interfaces/rounding_tool.py [utf8] Mon Nov 16 09:09:25 2009
@@ -1,0 +1,61 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Copyright (c) 2009 Nexedi KK and Contributors. All Rights Reserved.
+#                    Yusei Tahara <yusei at nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsibility 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
+# guarantees and support are strongly advised 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.
+#
+##############################################################################
+
+from zope.interface import Interface
+
+class IRoundingTool(Interface):
+  """
+  Rounding tool interface
+  """
+
+  def findRoundingModel(document, property_id, context=None):
+    """
+    Find matched rounding model for context and property id.
+
+    Parameters:
+
+    document
+      This is the object which contains value to be rounded.
+
+    property_id
+      This indicates which property value is rounded.
+
+    context
+      This indicates where lookup starts from. If this is None, then rounding tool itself
+      is used.
+
+    Example:
+
+      temporary_movement is generated by getAggregatedAmountList from a set of movements
+      and represents total price with tax. trade_model_line contains a rounding model to
+      be used here to round the total price with tax.
+    
+      portal_roundings.findRoundingModel(temporary_movement, 'total_price',
+                                         context=trade_model_line)
+    """




More information about the Erp5-report mailing list