fix : wrong calculation for pre-draw holiday if ending is already set from schedule body before
diff --git a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
index d128e0e..8b3f979 100644
--- a/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
+++ b/oKBereitschaftsplanungBackend/src/main/java/org/eclipse/openk/sp/controller/planning/PlanningController.java
@@ -574,7 +574,17 @@
 			// no last duration for the day has been found. Therefore the start of day has

 			// been used for current entry

 			if (DateHelper.isDateBefore(DateHelper.getStartOfDay(date), stbyBody.getValidFrom())) {

-				stbyBody.setValidFrom(DateHelper.getDateWithTime(date, DateHelper.getStartOfDay(date)));

+				//before setting the start of the day it has to be checked if a former time is ending at this day.

+				//for example if a holiday is following on another holiday

+				List<StandbyScheduleBody> lsEarlierBodiesThatDay = standbyScheduleBodyRepository.findByGroupAndStatusHittingDateInterval(group.getId(), DateHelper.getStartOfDay(date), stbyBody.getValidFrom(), stbyBody.getStatus().getId());

+				if(lsEarlierBodiesThatDay == null || lsEarlierBodiesThatDay.isEmpty()) {

+					//set start of day

+					stbyBody.setValidFrom(DateHelper.getDateWithTime(date, DateHelper.getStartOfDay(date)));

+				}else {

+					//set start to the end of former schedule body

+					Date endingFormerBody = lsEarlierBodiesThatDay.get(lsEarlierBodiesThatDay.size()-1).getValidTo();

+					stbyBody.setValidFrom(endingFormerBody);

+				}

 				this.createMsgExtendHoliday(stbyBody, date, false);

 				stbyBody.setModifiedCause(TXT_AUTOMATIC_PLANNING_HOLIDAY);

 			}

diff --git a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlanningControllerTest.java b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlanningControllerTest.java
index 8c578e5..ae1f270 100644
--- a/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlanningControllerTest.java
+++ b/oKBereitschaftsplanungBackend/src/test/java/org/eclipse/openk/sp/controller/planning/PlanningControllerTest.java
@@ -1168,6 +1168,10 @@
 			stbyBody = this.getStandbyScheduleBody();

 			Mockito.doReturn(lsStandbyDurationsNull).when(planningController)

 					.getFittingDurationsByValidTo(Mockito.any(StandbyGroup.class), Mockito.any(Date.class));

+			List<StandbyScheduleBody> lsBodies = new ArrayList<>();

+			lsBodies.add(stbyBody);

+			Mockito.doReturn(lsBodies).when(standbyScheduleBodyRepository).findByGroupAndStatusHittingDateInterval(

+					Mockito.any(Long.class), Mockito.any(Date.class), Mockito.any(Date.class), Mockito.any(Long.class));

 			result = planningController.calculateHolidayPreDraw(group, date, stbyBody);

 			assertNotNull(result);

 

@@ -1200,6 +1204,10 @@
 		user.setFirstname("J.");

 		user.setLastname("Unit");

 		stbyBody.setUser(user);

+		StandbyStatus status = new StandbyStatus();

+		status.setId(1L);

+		status.setTitle("Test");

+		stbyBody.setStatus(status);

 		return stbyBody;

 	}

 }