[Erp5-report] r38258 yo - /erp5/trunk/products/ERP5/Document/OrderBuilder.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Sep 10 12:43:33 CEST 2010
Author: yo
Date: Fri Sep 10 12:43:33 2010
New Revision: 38258
URL: http://svn.erp5.org?rev=38258&view=rev
Log:
Fix a bug that _process* add movement_group_node into movement_group_node_list even when they should not. The fix requires that movement_group_node_list be prepared by the caller instead of the callee, because it is not feasible to detect how it is called from the callee perfectly.
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=38258&r1=38257&r2=38258&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/OrderBuilder.py [utf8] Fri Sep 10 12:43:33 2010
@@ -413,8 +413,6 @@ class OrderBuilder(XMLObject, Amount, Pr
movement_group_node_list = []
if divergence_list is None:
divergence_list = []
- # do not use 'append' or '+=' because they are destructive.
- movement_group_node_list = movement_group_node_list + [movement_group_node]
# Parameter initialization
if delivery_to_update_list is None:
delivery_to_update_list = []
@@ -423,15 +421,17 @@ class OrderBuilder(XMLObject, Amount, Pr
if collect_order_list:
# Get sorted movement for each delivery
for grouped_node in movement_group_node.getGroupList():
+ # do not use 'append' or '+=' because they are destructive.
+ new_movement_group_node_list = movement_group_node_list + [grouped_node]
new_delivery_list = self._processDeliveryGroup(
- delivery_module,
- grouped_node,
- collect_order_list[1:],
- movement_group_node_list=movement_group_node_list,
- delivery_to_update_list=delivery_to_update_list,
- divergence_list=divergence_list,
- activate_kw=activate_kw,
- force_update=force_update)
+ delivery_module,
+ grouped_node,
+ collect_order_list[1:],
+ movement_group_node_list=new_movement_group_node_list,
+ delivery_to_update_list=delivery_to_update_list,
+ divergence_list=divergence_list,
+ activate_kw=activate_kw,
+ force_update=force_update)
delivery_list.extend(new_delivery_list)
force_update = 0
else:
@@ -470,6 +470,7 @@ class OrderBuilder(XMLObject, Amount, Pr
delivery,
grouped_node,
self.getDeliveryLineMovementGroupList()[1:],
+ movement_group_node_list=[grouped_node],
divergence_list=divergence_list,
delivery_line_to_update_list=delivery_line_to_update_list,
activate_kw=activate_kw,
@@ -504,17 +505,17 @@ class OrderBuilder(XMLObject, Amount, Pr
divergence_list = []
if delivery_line_to_update_list is None:
delivery_line_to_update_list = []
- # do not use 'append' or '+=' because they are destructive.
- movement_group_node_list = movement_group_node_list + [movement_group_node]
if collect_order_list and not movement_group_node.getCurrentMovementGroup().isBranch():
# Get sorted movement for each delivery line
for grouped_node in movement_group_node.getGroupList():
+ # do not use 'append' or '+=' because they are destructive.
+ new_movement_group_node_list = movement_group_node_list + [grouped_node]
self._processDeliveryLineGroup(
delivery,
grouped_node,
collect_order_list[1:],
- movement_group_node_list=movement_group_node_list,
+ movement_group_node_list=new_movement_group_node_list,
divergence_list=divergence_list,
delivery_line_to_update_list=delivery_line_to_update_list,
activate_kw=activate_kw,
@@ -550,7 +551,7 @@ class OrderBuilder(XMLObject, Amount, Pr
delivery_line,
grouped_node,
collect_order_list[1:],
- movement_group_node_list=movement_group_node_list,
+ movement_group_node_list=[grouped_node],
divergence_list=divergence_list,
delivery_line_to_update_list=nested_delivery_line_to_update_list,
activate_kw=activate_kw,
@@ -581,6 +582,7 @@ class OrderBuilder(XMLObject, Amount, Pr
delivery_line,
grouped_node,
self.getDeliveryCellMovementGroupList()[1:],
+ movement_group_node_list=[grouped_node],
update_existing_line=update_existing_line,
divergence_list=divergence_list,
delivery_movement_to_update_list=delivery_movement_to_update_list,
@@ -589,11 +591,9 @@ class OrderBuilder(XMLObject, Amount, Pr
else:
self._processDeliveryCellGroup(
delivery_line,
- # FIXME passing current movement group node
- # has bad side effect, so the logic must
- # be corrected.
movement_group_node,
[],
+ movement_group_node_list=[],
update_existing_line=update_existing_line,
divergence_list=divergence_list,
delivery_movement_to_update_list=[delivery_line],
@@ -628,17 +628,16 @@ class OrderBuilder(XMLObject, Amount, Pr
delivery_movement_to_update_list = []
if divergence_list is None:
divergence_list = []
- # do not use 'append' or '+=' because they are destructive.
- movement_group_node_list = movement_group_node_list + [movement_group_node]
if collect_order_list:
# Get sorted movement for each delivery line
for grouped_node in movement_group_node.getGroupList():
+ new_movement_group_node_list = movement_group_node_list + [grouped_node]
self._processDeliveryCellGroup(
delivery_line,
grouped_node,
collect_order_list[1:],
- movement_group_node_list=movement_group_node_list,
+ movement_group_node_list=new_movement_group_node_list,
update_existing_line=update_existing_line,
divergence_list=divergence_list,
delivery_movement_to_update_list=delivery_movement_to_update_list,
More information about the Erp5-report
mailing list