diff --git a/product/ERP5/Document/OrderBuilder.py b/product/ERP5/Document/OrderBuilder.py index 99bbf7dd4b76c5d8054e1e54e94e27127e4ff32a..39f6b22848bf00e30cc33cba0976e7063e10d287 100644 --- a/product/ERP5/Document/OrderBuilder.py +++ b/product/ERP5/Document/OrderBuilder.py @@ -111,7 +111,7 @@ class OrderBuilder(XMLObject, Amount, Predicate): # Call a script before building self.callBeforeBuildingScript() # Select - if movement_relative_url_list == []: + if len(movement_relative_url_list) == 0: movement_list = self.searchMovementList( applied_rule_uid=applied_rule_uid,**kw) else: @@ -485,24 +485,20 @@ class OrderBuilder(XMLObject, Amount, Predicate): delivery_line.edit(**property_dict) # Update variation category list on line - # XXX updating variation category list should be also handled by - # MovementGroup - line_variation_category_list = delivery_line.getVariationCategoryList() + variation_category_dict = dict([(variation_category, True) for + variation_category in + delivery_line.getVariationCategoryList()]) for movement in movement_group.getMovementList(): - line_variation_category_list.extend( - movement.getVariationCategoryList()) - # erase double - line_variation_category_list = dict([(variation_category, 1) \ - for variation_category in \ - line_variation_category_list]).keys() - line_variation_category_list.sort() - delivery_line.edit(variation_category_list=line_variation_category_list) + for category in movement.getVariationCategoryList(): + variation_category_dict[category] = True + variation_category_list = sorted(variation_category_dict.keys()) + delivery_line.setVariationCategoryList(variation_category_list) # Then, create delivery movement (delivery cell or complete delivery # line) group_list = movement_group.getGroupList() # If no group is defined for cell, we need to continue, in order to # save the quantity value - if list(group_list) != []: + if len(group_list): for group in group_list: self._deliveryCellGroupProcessing( delivery_line, @@ -568,7 +564,7 @@ class OrderBuilder(XMLObject, Amount, Predicate): # because matrix range can be empty even if line variation category # list is not empty property_dict = {} - if list(delivery_line.getCellKeyList(base_id=base_id)) == []: + if len(delivery_line.getCellKeyList(base_id=base_id)) == 0: # update line if update_existing_line == 1: if self._isUpdated(delivery_line, 'cell'):