[Erp5-report] r38857 yo - /erp5/trunk/products/ERP5/Document/OrderBuilder.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Oct 4 09:44:45 CEST 2010


Author: yo
Date: Mon Oct  4 09:44:43 2010
New Revision: 38857

URL: http://svn.erp5.org?rev=38857&view=rev
Log:
Do not fail even if a movement does not have the delivery category.

Modified:
    erp5/trunk/products/ERP5/Document/OrderBuilder.py

Modified: erp5/trunk/products/ERP5/Document/OrderBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/OrderBuilder.py?rev=38857&r1=38856&r2=38857&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] Mon Oct  4 09:44:43 2010
@@ -35,7 +35,7 @@ from Products.ERP5.MovementGroup import 
 from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
 from Products.ERP5Type.UnrestrictedMethod import UnrestrictedMethod
 from DateTime import DateTime
-from Acquisition import aq_parent, aq_inner
+from Acquisition import aq_parent, aq_inner, aq_base
 
 class CollectError(Exception): pass
 class MatrixError(Exception): pass
@@ -323,7 +323,13 @@ class OrderBuilder(XMLObject, Amount, Pr
     else:
       # we want to check the original delivery first.
       movement = current_movement_group_node.getMovementList()[0]
-      delivery_movement = movement.getDeliveryValue()
+      # XXX in the case of Order Builder, the movement is not always
+      # related to simulation, thus it might not have the delivery category.
+      # Possibly, this code should be overridden by DeliveryBuilder.
+      if getattr(aq_base(movement), 'getDeliveryValue', None) is not None:
+        delivery_movement = movement.getDeliveryValue()
+      else:
+        delivery_movement = None
       if delivery_movement is not None:
         delivery = delivery_movement.getRootDeliveryValue()
         try:




More information about the Erp5-report mailing list