diff --git a/product/ERP5/Document/SolverProcess.py b/product/ERP5/Document/SolverProcess.py index 3336a55054e68a4c5cdf56d16cc6839c49986cb8..9c65aae920ade3e1f75a3594e4c2b474713e0734 100644 --- a/product/ERP5/Document/SolverProcess.py +++ b/product/ERP5/Document/SolverProcess.py @@ -158,15 +158,23 @@ class SolverProcess(XMLObject, ActiveProcess): # Gather all delivery lines already found # in already built solvers - # We suppose here that delivery_or_movement is a list of + if not isinstance(delivery_or_movement, (tuple, list)): + delivery_or_movement = [delivery_or_movement] + movement_list = [] + for x in delivery_or_movement: + if x.getPortalType() not in \ + self.getPortalObject().getPortalMovementTypeList(): + movement_list.extend(x.getMovementList()) + + # We suppose here that movement_list is a list of # delivery lines. Let group decisions in such way # that a single decision is created per divergence tester instance # and per application level list solver_decision_dict = {} - for movement in delivery_or_movement: + for movement in movement_list: for simulation_movement in movement.getDeliveryRelatedValueList(): simulation_movemet_url = simulation_movement.getRelativeUrl() - for divergence_tester in simulation_movement.getParentValue().getDivergenceTesterValueList(): + for divergence_tester in simulation_movement.getParentValue().getSpecialiseValue()._getDivergenceTesterList(): application_list = map(lambda x:x.getRelativeUrl(), self.getSolverDecisionApplicationValueList(simulation_movement, divergence_tester)) application_list.sort()