diff --git a/backend/src/main/java/core/entities/timemanager/Task.java b/backend/src/main/java/core/entities/timemanager/Task.java index 41e68a9..0afa064 100644 --- a/backend/src/main/java/core/entities/timemanager/Task.java +++ b/backend/src/main/java/core/entities/timemanager/Task.java @@ -75,6 +75,8 @@ public class Task { clonedSchedules.add(clonedSchedule); clonedTask.getBasicTaskSchedules().clear(); clonedTask.getBasicTaskSchedules().add(clonedSchedule); + + clonedSchedule.setTask(clonedTask); } Set clonedSubtasks = new HashSet<>(); diff --git a/backend/src/main/java/core/services/TaskSeriesService.java b/backend/src/main/java/core/services/TaskSeriesService.java index fbfbf22..28c4bdf 100644 --- a/backend/src/main/java/core/services/TaskSeriesService.java +++ b/backend/src/main/java/core/services/TaskSeriesService.java @@ -62,6 +62,7 @@ public class TaskSeriesService { List clonedSchedules = new ArrayList<>(); LocalDate currentDate = rootTask.getStartDate().plusDays(offsetMap.get(rootTask)); + long index = 1; while(currentDate.isBefore(endingDate)) { var cloneResult = rootTask.cloneTask(); Task clonedRootTask = cloneResult.getValue00(); @@ -73,10 +74,11 @@ public class TaskSeriesService { taskSerie.addItem(item); } - clonedRootTask.shiftTask(offsetMap.get(rootTask)); + clonedRootTask.shiftTask(index * offsetMap.get(rootTask)); currentDate = currentDate.plusDays(offsetMap.get(rootTask)); itemIndex += offsetMap.size(); + index++; } return new Tupel<>(clonedTasks, clonedSchedules); @@ -105,7 +107,7 @@ public class TaskSeriesService { HashMap offsetMap = new HashMap<>(); offsetMap.put(rootTask, taskRepeatInfo.getOffset()); - var repeatingResult = repeatTask(rootTask, taskRepeatInfo.getEndingDate(), offsetMap, taskSerie, 0); + var repeatingResult = repeatTask(rootTask, taskRepeatInfo.getEndingDate(), offsetMap, taskSerie, 1); List clonedTasks = new ArrayList<>(repeatingResult.getValue00()); List clonedSchedules = new ArrayList<>(repeatingResult.getValue01());