diff --git a/product/ERP5/Document/DeliveryBuilder.py b/product/ERP5/Document/DeliveryBuilder.py index e0663527e184cbdec7c9f499b272863116aaa79c..a693167d2024e3d5acee4e12063014d186bf69dd 100755 --- a/product/ERP5/Document/DeliveryBuilder.py +++ b/product/ERP5/Document/DeliveryBuilder.py @@ -321,10 +321,12 @@ class DeliveryBuilder(XMLObject, Amount, Predicate): # Test if we can update an existing line, or if we need to create a new # one delivery_line = None + update_existing_line=0 for delivery_line_to_update in delivery.contentValues( filter={'portal_type':self.getDeliveryLinePortalType()}): if self.testObjectProperties(delivery_line_to_update, property_dict): delivery_line = delivery_line_to_update + update_existing_line=1 break if delivery_line == None: @@ -354,10 +356,12 @@ class DeliveryBuilder(XMLObject, Amount, Predicate): delivery_line, group, self.getDeliveryCellCollectOrderList()[1:], - {}) + {}, + update_existing_line=update_existing_line) def _deliveryCellGroupProcessing(self, delivery_line, movement_group, - collect_order_list, property_dict): + collect_order_list, property_dict, + update_existing_line=0): """ Build delivery cell from a list of movement on a delivery line or complete delivery line @@ -387,12 +391,13 @@ class DeliveryBuilder(XMLObject, Amount, Predicate): # Decision can only be made with line matrix range: # because matrix range can be empty even if line variation category # list is not empty - if delivery_line.getCellKeyList(base_id=base_id) == []: + if list(delivery_line.getCellKeyList(base_id=base_id)) == []: # update line object_to_update = delivery_line if self.testObjectProperties(delivery_line, property_dict): - # We update a initialized line - update_existing_movement=1 + if update_existing_movement == 1: + # We update a initialized line + update_existing_movement=1 else: for cell in delivery_line.contentValues(