diff --git a/product/ERP5/mixin/movement_collection_updater.py b/product/ERP5/mixin/movement_collection_updater.py index 68cb7edb8e3a19fa7611fa8b83ea7b736b3b61d1..dedecdd0ac8936de2822a269725accca8a2e7c82 100644 --- a/product/ERP5/mixin/movement_collection_updater.py +++ b/product/ERP5/mixin/movement_collection_updater.py @@ -96,21 +96,22 @@ class MovementCollectionUpdaterMixin: tester_key.append(None) tester_key = tuple(tester_key) # try to aggregate - group_list = prevision_movement_dict.setdefault(tester_key, []) + aggregated_movement_list = prevision_movement_dict.setdefault(tester_key, + []) no_match = True - for group_movement in group_list: - if _compare(tester_list, group_movement, movement): + for aggregated_movement in aggregated_movement_list: + if _compare(tester_list, aggregated_movement, movement): no_match = False order = movement.getOrder() if order is not None: - group_movement.setOrderList( - group_movement.getOrderList() + [order]) - # XXX how to handle quantity unit conversion here? - group_movement.setQuantity( - group_movement.getQuantity() + movement.getQuantity()) + aggregated_movement.setOrderList( + aggregated_movement.getOrderList() + [order]) + aggregated_movement.setConvertedQuantity( + aggregated_movement.getConvertedQuantity() + \ + movement.getConvertedQuantity()) if no_match: - group_list.append(movement) - prevision_movement_dict[tester_key] = group_list + aggregated_movement_list.append(movement) + prevision_movement_dict[tester_key] = aggregated_movement_list # Prepare a mapping between prevision and decision # The prevision_to_decision_map is a list of tuples