[Erp5-report] r33309 kazuhiko - in /erp5/trunk/products/ERP5: ./ Document/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Mar 3 10:08:13 CET 2010


Author: kazuhiko
Date: Wed Mar  3 10:08:09 2010
New Revision: 33309

URL: http://svn.erp5.org?rev=33309&view=rev
Log:
support mapped value in simulation movements by builders. same for divergence testers will be implemented soon.

Modified:
    erp5/trunk/products/ERP5/Document/CategoryMovementGroup.py
    erp5/trunk/products/ERP5/Document/DeliveryBuilder.py
    erp5/trunk/products/ERP5/Document/OrderBuilder.py
    erp5/trunk/products/ERP5/Document/PropertyMovementGroup.py
    erp5/trunk/products/ERP5/Document/SimulationMovement.py
    erp5/trunk/products/ERP5/MovementGroup.py

Modified: erp5/trunk/products/ERP5/Document/CategoryMovementGroup.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/CategoryMovementGroup.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/CategoryMovementGroup.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/CategoryMovementGroup.py [utf8] Wed Mar  3 10:08:09 2010
@@ -40,9 +40,10 @@
 
   def _getPropertyDict(self, movement, **kw):
     property_dict = {}
+    getProperty = movement.getMappedProperty
     for prop in self.getTestedPropertyList():
-      property_dict['%s_list' % prop] = sorted(
-        movement.getPropertyList(prop))
+      list_prop = '%s_list' % prop
+      property_dict[list_prop] = sorted(getProperty(list_prop))
     return property_dict
 
   def test(self, document, property_dict, property_list=None, **kw):

Modified: erp5/trunk/products/ERP5/Document/DeliveryBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/DeliveryBuilder.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/DeliveryBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/DeliveryBuilder.py [utf8] Wed Mar  3 10:08:09 2010
@@ -312,11 +312,13 @@
                                    [s_m]
 
     for s_m_list_per_movement in delivery_dict.values():
-      total_quantity = sum([quantity_dict.get(s_m, s_m.getQuantity()) \
+      total_quantity = sum([quantity_dict.get(s_m,
+                                              s_m.getMappedProperty('quantity')) \
                             for s_m in s_m_list_per_movement])
       if total_quantity != 0.0:
         for s_m in s_m_list_per_movement:
-          delivery_ratio = quantity_dict.get(s_m, s_m.getQuantity()) \
+          delivery_ratio = quantity_dict.get(s_m,
+                                             s_m.getMappedProperty('quantity')) \
                                              / total_quantity
           s_m.edit(delivery_ratio=delivery_ratio)
       else:

Modified: erp5/trunk/products/ERP5/Document/OrderBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderBuilder.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] Wed Mar  3 10:08:09 2010
@@ -666,7 +666,7 @@
     if not update_existing_movement or force_update:
       # Now, only 1 movement is possible, so copy from this movement
       # XXX hardcoded value
-      property_dict['quantity'] = simulation_movement.getQuantity()
+      property_dict['quantity'] = simulation_movement.getMappedProperty('quantity')
       property_dict['price'] = simulation_movement.getPrice()
       # Update properties on object (quantity, price...)
       delivery_movement._edit(force_update=1, **property_dict)

Modified: erp5/trunk/products/ERP5/Document/PropertyMovementGroup.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/PropertyMovementGroup.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/PropertyMovementGroup.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/PropertyMovementGroup.py [utf8] Wed Mar  3 10:08:09 2010
@@ -40,8 +40,9 @@
 
   def _getPropertyDict(self, movement, **kw):
     property_dict = {}
+    getProperty = movement.getMappedProperty
     for prop in self.getTestedPropertyList():
-      property_dict[prop] = movement.getProperty(prop, None)
+      property_dict[prop] = getProperty(prop)
     return property_dict
 
   def test(self, document, property_dict, property_list=None, **kw):

Modified: erp5/trunk/products/ERP5/Document/SimulationMovement.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/SimulationMovement.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/SimulationMovement.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/SimulationMovement.py [utf8] Wed Mar  3 10:08:09 2010
@@ -609,3 +609,12 @@
     movement -- not applicable
     """
     raise NotImplementedError
+
+  security.declareProtected(Permissions.AccessContentsInformation,
+                            'getMappedProperty')
+  def getMappedProperty(self, property):
+    mapping = self.getMappingValue()
+    if mapping is not None:
+      return mapping.getMappedProperty(self, property)
+    else:
+      return self.getProperty(property)

Modified: erp5/trunk/products/ERP5/MovementGroup.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/MovementGroup.py?rev=33309&r1=33308&r2=33309&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/MovementGroup.py [utf8] (original)
+++ erp5/trunk/products/ERP5/MovementGroup.py [utf8] Wed Mar  3 10:08:09 2010
@@ -354,11 +354,11 @@
     """
     total_quantity = 0
     for movement in self.__movement_list:
-      total_quantity += movement.getQuantity()
+      total_quantity += movement.getMappedProperty('quantity')
 
     if total_quantity != 0:
       for movement in self.__movement_list:
-        quantity = movement.getQuantity()
+        quantity = movement.getMappedProperty('quantity')
         movement.edit(delivery_ratio=quantity*delivery_ratio/total_quantity)
     else:
       # Distribute equally ratio to all movement
@@ -407,7 +407,7 @@
     """
     total_quantity = 0
     for movement in self.getMovementList():
-      quantity = movement.getQuantity()
+      quantity = movement.getMappedProperty('quantity')
       if quantity != None:
         total_quantity += quantity
     return total_quantity
@@ -418,7 +418,7 @@
     """
     total_price = 0
     for movement in self.getMovementList():
-      quantity = movement.getQuantity()
+      quantity = movement.getMappedProperty('quantity')
       price = movement.getPrice()
       if (quantity is not None) and (price is not None):
         total_price += (quantity * price)




More information about the Erp5-report mailing list