diff --git a/product/ERP5/TargetSolver/CopyToTarget.py b/product/ERP5/TargetSolver/CopyToTarget.py index a427bffd35d381a2454a451606c58879979ba520..6f30c7afcc46aa0153e051f32c5624543fd3023f 100755 --- a/product/ERP5/TargetSolver/CopyToTarget.py +++ b/product/ERP5/TargetSolver/CopyToTarget.py @@ -50,8 +50,12 @@ class CopyToTarget(TargetSolver): new_stop_date = movement.getDeliveryStopDateList()[0] # Calculate delta quantity_ratio = new_quantity / old_quantity - start_date_delta = new_start_date - old_start_date - stop_date_delta = new_stop_date - old_stop_date + start_date_delta = 0 + stop_date_delta = 0 + if new_start_date is not None and old_start_date is not None: + start_date_delta = new_start_date - old_start_date + if new_stop_date is not None and old_stop_date is not None: + stop_date_delta = new_stop_date - old_stop_date # Modify recursively simulation movement self._recursivelySolve(movement, quantity_ratio=quantity_ratio, start_date_delta=start_date_delta, @@ -64,10 +68,16 @@ class CopyToTarget(TargetSolver): movement. """ # Modify quantity, start_date, stop_date + start_date = movement.getStartDate() + if start_date is not None: + start_date = start_date + start_date_delta + stop_date = movement.getStopDate() + if stop_date is not None: + stop_date = stop_date + stop_date_delta movement.edit( quantity=movement.getQuantity() * quantity_ratio, - start_date=movement.getStartDate() + start_date_delta, - stop_date=movement.getStopDate() + stop_date_delta, + start_date=start_date, + stop_date=stop_date ) applied_rule = movement.getParent() parent_movement = applied_rule.getParent()