Skip to content

Commit 7bfeee7

Browse files
committed
Moving the auto break calculations code to the right place.
1 parent 52ad7f0 commit 7bfeee7

3 files changed

Lines changed: 461 additions & 163 deletions

File tree

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

Lines changed: 0 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -224,112 +224,6 @@ 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-
333227
await planRegistration.Update(dbContext).ConfigureAwait(false);
334228
}
335229
}

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Services/TimePlanningPlanningService/TimePlanningPlanningService.cs

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,112 @@ public async Task<OperationResult> UpdateByCurrentUserNam(
728728
{
729729
planning.Pause1Id = model.Pause1Id ?? planning.Pause1Id;
730730
planning.Pause2Id = model.Pause2Id ?? planning.Pause2Id;
731+
732+
if (assignedSite.AutoBreakCalculationActive)
733+
{
734+
var hoursPlannedToBeAtWorkInMinutes =
735+
(planning.Stop1Id - planning.Start1Id
736+
+ planning.Stop2Id - planning.Start2Id
737+
+ planning.Stop3Id - planning.Start3Id
738+
+ planning.Stop4Id - planning.Start4Id
739+
+ planning.Stop5Id - planning.Start5Id) * 5;
740+
if (hoursPlannedToBeAtWorkInMinutes > 0)
741+
{
742+
var dayOfWeek = planning.Date.DayOfWeek;
743+
var breakTime = 0;
744+
planning.Pause2Id = 0;
745+
planning.Pause3Id = 0;
746+
planning.Pause4Id = 0;
747+
planning.Pause5Id = 0;
748+
switch (dayOfWeek)
749+
{
750+
case DayOfWeek.Monday:
751+
{
752+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
753+
assignedSite.MondayBreakMinutesDivider;
754+
breakTime = (int)numberOfBreaks *
755+
assignedSite.MondayBreakMinutesPrDivider;
756+
planning.Pause1Id =
757+
breakTime < assignedSite.MondayBreakMinutesUpperLimit
758+
? breakTime
759+
: assignedSite.MondayBreakMinutesUpperLimit;
760+
break;
761+
}
762+
case DayOfWeek.Tuesday:
763+
{
764+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
765+
assignedSite.TuesdayBreakMinutesDivider;
766+
breakTime = (int)numberOfBreaks *
767+
assignedSite.TuesdayBreakMinutesPrDivider;
768+
planning.Pause1Id =
769+
breakTime < assignedSite.TuesdayBreakMinutesUpperLimit
770+
? breakTime
771+
: assignedSite.TuesdayBreakMinutesUpperLimit;
772+
break;
773+
}
774+
case DayOfWeek.Wednesday:
775+
{
776+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
777+
assignedSite.WednesdayBreakMinutesDivider;
778+
breakTime = (int)numberOfBreaks *
779+
assignedSite.WednesdayBreakMinutesPrDivider;
780+
planning.Pause1Id =
781+
breakTime < assignedSite.WednesdayBreakMinutesUpperLimit
782+
? breakTime
783+
: assignedSite.WednesdayBreakMinutesUpperLimit;
784+
break;
785+
}
786+
case DayOfWeek.Thursday:
787+
{
788+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
789+
assignedSite.ThursdayBreakMinutesDivider;
790+
breakTime = (int)numberOfBreaks *
791+
assignedSite.ThursdayBreakMinutesPrDivider;
792+
planning.Pause1Id =
793+
breakTime < assignedSite.ThursdayBreakMinutesUpperLimit
794+
? breakTime
795+
: assignedSite.ThursdayBreakMinutesUpperLimit;
796+
break;
797+
}
798+
case DayOfWeek.Friday:
799+
{
800+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
801+
assignedSite.FridayBreakMinutesDivider;
802+
breakTime = (int)numberOfBreaks *
803+
assignedSite.FridayBreakMinutesPrDivider;
804+
planning.Pause1Id =
805+
breakTime < assignedSite.FridayBreakMinutesUpperLimit
806+
? breakTime
807+
: assignedSite.FridayBreakMinutesUpperLimit;
808+
break;
809+
}
810+
case DayOfWeek.Saturday:
811+
{
812+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
813+
assignedSite.SaturdayBreakMinutesDivider;
814+
breakTime = (int)numberOfBreaks *
815+
assignedSite.SaturdayBreakMinutesPrDivider;
816+
planning.Pause1Id =
817+
breakTime < assignedSite.SaturdayBreakMinutesUpperLimit
818+
? breakTime
819+
: assignedSite.SaturdayBreakMinutesUpperLimit;
820+
break;
821+
}
822+
case DayOfWeek.Sunday:
823+
{
824+
var numberOfBreaks = hoursPlannedToBeAtWorkInMinutes /
825+
assignedSite.SundayBreakMinutesDivider;
826+
breakTime = (int)numberOfBreaks *
827+
assignedSite.SundayBreakMinutesPrDivider;
828+
planning.Pause1Id =
829+
breakTime < assignedSite.SundayBreakMinutesUpperLimit
830+
? breakTime
831+
: assignedSite.SundayBreakMinutesUpperLimit;
832+
break;
833+
}
834+
}
835+
}
836+
}
731837
}
732838
else
733839
{

0 commit comments

Comments
 (0)