@@ -224,6 +224,112 @@ public static async Task<TimePlanningPlanningModel> UpdatePlanRegistrationsInPer
224224 planRegistration . PlanHours = calculatedPlanHoursInMinutes / 60.0 ;
225225 }
226226
227+ if ( dbAssignedSite . AutoBreakCalculationActive )
228+ {
229+ var hoursPlannedToBeAtWorkInMinutes =
230+ planRegistration . PlannedEndOfShift1 - planRegistration . PlannedStartOfShift1
231+ + planRegistration . PlannedEndOfShift2 - planRegistration . PlannedStartOfShift2
232+ + planRegistration . PlannedEndOfShift3 - planRegistration . PlannedStartOfShift3
233+ + planRegistration . PlannedEndOfShift4 - planRegistration . PlannedStartOfShift4
234+ + planRegistration . PlannedEndOfShift5 - planRegistration . PlannedStartOfShift5 ;
235+ if ( hoursPlannedToBeAtWorkInMinutes > 0 )
236+ {
237+ var dayOfWeek = planRegistration . Date . DayOfWeek ;
238+ var breakTime = 0 ;
239+ planRegistration . PlannedBreakOfShift2 = 0 ;
240+ planRegistration . PlannedBreakOfShift3 = 0 ;
241+ planRegistration . PlannedBreakOfShift4 = 0 ;
242+ planRegistration . PlannedBreakOfShift5 = 0 ;
243+ switch ( dayOfWeek )
244+ {
245+ case DayOfWeek . Monday :
246+ {
247+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
248+ dbAssignedSite . MondayBreakMinutesDivider ;
249+ breakTime = ( int ) numberOfBreaks *
250+ dbAssignedSite . MondayBreakMinutesPrDivider ;
251+ planRegistration . PlannedBreakOfShift1 =
252+ breakTime < dbAssignedSite . MondayBreakMinutesUpperLimit
253+ ? breakTime
254+ : dbAssignedSite . MondayBreakMinutesUpperLimit ;
255+ break ;
256+ }
257+ case DayOfWeek . Tuesday :
258+ {
259+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
260+ dbAssignedSite . TuesdayBreakMinutesDivider ;
261+ breakTime = ( int ) numberOfBreaks *
262+ dbAssignedSite . TuesdayBreakMinutesPrDivider ;
263+ planRegistration . PlannedBreakOfShift1 =
264+ breakTime < dbAssignedSite . TuesdayBreakMinutesUpperLimit
265+ ? breakTime
266+ : dbAssignedSite . TuesdayBreakMinutesUpperLimit ;
267+ break ;
268+ }
269+ case DayOfWeek . Wednesday :
270+ {
271+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
272+ dbAssignedSite . WednesdayBreakMinutesDivider ;
273+ breakTime = ( int ) numberOfBreaks *
274+ dbAssignedSite . WednesdayBreakMinutesPrDivider ;
275+ planRegistration . PlannedBreakOfShift1 =
276+ breakTime < dbAssignedSite . WednesdayBreakMinutesUpperLimit
277+ ? breakTime
278+ : dbAssignedSite . WednesdayBreakMinutesUpperLimit ;
279+ break ;
280+ }
281+ case DayOfWeek . Thursday :
282+ {
283+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
284+ dbAssignedSite . ThursdayBreakMinutesDivider ;
285+ breakTime = ( int ) numberOfBreaks *
286+ dbAssignedSite . ThursdayBreakMinutesPrDivider ;
287+ planRegistration . PlannedBreakOfShift1 =
288+ breakTime < dbAssignedSite . ThursdayBreakMinutesUpperLimit
289+ ? breakTime
290+ : dbAssignedSite . ThursdayBreakMinutesUpperLimit ;
291+ break ;
292+ }
293+ case DayOfWeek . Friday :
294+ {
295+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
296+ dbAssignedSite . FridayBreakMinutesDivider ;
297+ breakTime = ( int ) numberOfBreaks *
298+ dbAssignedSite . FridayBreakMinutesPrDivider ;
299+ planRegistration . PlannedBreakOfShift1 =
300+ breakTime < dbAssignedSite . FridayBreakMinutesUpperLimit
301+ ? breakTime
302+ : dbAssignedSite . FridayBreakMinutesUpperLimit ;
303+ break ;
304+ }
305+ case DayOfWeek . Saturday :
306+ {
307+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
308+ dbAssignedSite . SaturdayBreakMinutesDivider ;
309+ breakTime = ( int ) numberOfBreaks *
310+ dbAssignedSite . SaturdayBreakMinutesPrDivider ;
311+ planRegistration . PlannedBreakOfShift1 =
312+ breakTime < dbAssignedSite . SaturdayBreakMinutesUpperLimit
313+ ? breakTime
314+ : dbAssignedSite . SaturdayBreakMinutesUpperLimit ;
315+ break ;
316+ }
317+ case DayOfWeek . Sunday :
318+ {
319+ var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
320+ dbAssignedSite . SundayBreakMinutesDivider ;
321+ breakTime = ( int ) numberOfBreaks *
322+ dbAssignedSite . SundayBreakMinutesPrDivider ;
323+ planRegistration . PlannedBreakOfShift1 =
324+ breakTime < dbAssignedSite . SundayBreakMinutesUpperLimit
325+ ? breakTime
326+ : dbAssignedSite . SundayBreakMinutesUpperLimit ;
327+ break ;
328+ }
329+ }
330+ }
331+ }
332+
227333 await planRegistration . Update ( dbContext ) . ConfigureAwait ( false ) ;
228334 }
229335 }
0 commit comments