Skip to content

Commit 52ad7f0

Browse files
committed
Adding changes so, when auto break calculations is activated, the breaks are calculated and set by the system.
1 parent 1f3dc89 commit 52ad7f0

2 files changed

Lines changed: 108 additions & 2 deletions

File tree

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Infrastructure/Helpers/PlanRegistrationHelper.cs

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Services/TimePlanningSettingService/TimeSettingService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,8 @@ public async Task<OperationResult> UpdateAssignedSite(Infrastructure.Models.Sett
662662

663663
await dbAssignedSite.Update(_dbContext);
664664

665-
if (!dbAssignedSite.UseGoogleSheetAsDefault)
665+
if (dbAssignedSite.UseGoogleSheetAsDefault)
666+
return new OperationResult(true, _localizationService.GetString("AssignedSiteUpdatedSuccessfuly"));
666667
{
667668
var midnight = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day, 0, 0, 0);
668669
var planRegistrationsFromTodayAndForward = await _dbContext.PlanRegistrations
@@ -888,7 +889,6 @@ public async Task<OperationResult> UpdateAssignedSite(Infrastructure.Models.Sett
888889

889890
await planRegistration.Update(_dbContext);
890891
}
891-
892892
}
893893

894894
return new OperationResult(true, _localizationService.GetString("AssignedSiteUpdatedSuccessfuly"));

0 commit comments

Comments
 (0)