Skip to content

Commit 71947d3

Browse files
committed
Adding changes to handle the third, fourth and fifth shift in the dialog.
1 parent 61b861b commit 71947d3

3 files changed

Lines changed: 201 additions & 1 deletion

File tree

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Infrastructure/Models/Settings/AssignedSite.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ public class AssignedSite
156156
public bool UseDetailedPauseEditing { get; set; }
157157
public bool UsePunchClockWithAllowRegisteringInHistory { get; set; }
158158
public int DayOfPayment { get; set; } = 20;
159+
public bool ThirdShiftActive { get; set; } = false;
160+
public bool FourthShiftActive { get; set; } = false;
161+
public bool FifthShiftActive { get; set; } = false;
159162

160163
// implicit conversion from Microting.TimePlanningBase.Infrastructure.Data.Entities.AssignedSite to AssignedSite
161164
public static implicit operator AssignedSite(
@@ -304,6 +307,9 @@ public static implicit operator AssignedSite(
304307
UsePunchClock = model.UsePunchClock,
305308
UseDetailedPauseEditing = model.UseDetailedPauseEditing,
306309
UsePunchClockWithAllowRegisteringInHistory = model.UsePunchClockWithAllowRegisteringInHistory,
310+
ThirdShiftActive = model.ThirdShiftActive,
311+
FourthShiftActive = model.FourthShiftActive,
312+
FifthShiftActive = model.FifthShiftActive,
307313
};
308314
}
309315
}

eform-client/src/app/plugins/modules/time-planning-pn/components/plannings/time-planning-actions/assigned-site/assigned-site-dialog.component.html

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,26 @@
118118
</div>
119119
</mat-checkbox>
120120
</div>
121+
<div class="d-flex flex-row" *ngIf="selectCurrentUserIsFirstUser$ | async">
122+
<mat-checkbox class="p-1"
123+
[id]="'thirdShiftActive'"
124+
[name]="'thirdShiftActive'"
125+
[(ngModel)]="data.thirdShiftActive">
126+
<div>{{ 'Enable third shift' | translate }}</div>
127+
</mat-checkbox>
128+
<mat-checkbox class="p-1" *ngIf="data.thirdShiftActive"
129+
[id]="'fourthShiftActive'"
130+
[name]="'fourthShiftActive'"
131+
[(ngModel)]="data.fourthShiftActive">
132+
<div>{{ 'Enable fourth shift' | translate }}</div>
133+
</mat-checkbox>
134+
<mat-checkbox class="p-1" *ngIf="data.fourthShiftActive && data.thirdShiftActive"
135+
[id]="'fifthShiftActive'"
136+
[name]="'fifthShiftActive'"
137+
[(ngModel)]="data.fifthShiftActive">
138+
<div>{{ 'Enable fifth shift' | translate }}</div>
139+
</mat-checkbox>
140+
</div>
121141
</mat-tab>
122142
<mat-tab label="{{'Plan hours' | translate }}" *ngIf="data.useOnlyPlanHours && !data.useGoogleSheetAsDefault && selectCurrentUserIsFirstUser$ | async">
123143
<div class="d-flex flex-row"
@@ -323,6 +343,177 @@
323343
</div>
324344
</ng-container>
325345
</mat-tab>
346+
<mat-tab label="{{'3rd shift' | translate }}" *ngIf="data.thirdShiftActive && !data.useOnlyPlanHours && !data.useGoogleSheetAsDefault && selectCurrentUserIsFirstUser$ | async">
347+
<ng-container *ngIf="selectCurrentUserIsAdmin$ | async">
348+
<div class="d-flex flex-row"
349+
*ngFor="let day of ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']">
350+
<mat-form-field class="p-1">
351+
<mat-label>{{ day | translate }}</mat-label>
352+
<input matInput type="text" readonly disabled>
353+
</mat-form-field>
354+
<mat-form-field class="p-1">
355+
<mat-label>{{ 'Start at' | translate }}</mat-label>
356+
<input
357+
type="text"
358+
matInput
359+
mask="00:00"
360+
placeholder="HH:MM"
361+
[id]="'start' + day + '3RdShift'"
362+
[name]="'start' + day + '3RdShift'"
363+
[ngModel]="getConvertedValue(data['start' + day + '3RdShift'], data['end' + day + '3RdShift'])"
364+
(change)="setMinutes($event, 'start' + day + '3RdShift')">
365+
</mat-form-field>
366+
<mat-form-field class="p-1">
367+
<mat-label>{{ 'End at' | translate }}</mat-label>
368+
<input
369+
type="text"
370+
matInput
371+
mask="00:00"
372+
placeholder="HH:MM"
373+
[id]="'end' + day + '3RdShift'"
374+
[name]="'end' + day + '3RdShift'"
375+
[ngModel]="getConvertedValue(data['end' + day + '3RdShift'])"
376+
(change)="setMinutes($event, 'end' + day + '3RdShift')">
377+
</mat-form-field>
378+
<mat-form-field class="p-1" *ngIf="!data.autoBreakCalculationActive">
379+
<mat-label>{{ 'Break time' | translate }}</mat-label>
380+
<input
381+
type="text"
382+
matInput
383+
mask="00:00"
384+
placeholder="HH:MM"
385+
[id]="'break' + day + '3RdShift'"
386+
[name]="'break' + day + '3RdShift'"
387+
[ngModel]="getConvertedValue(data['break' + day + '3RdShift'])"
388+
(change)="setMinutes($event, 'break' + day + '3RdShift')">
389+
</mat-form-field>
390+
<mat-form-field class="p-1">
391+
<mat-label>{{ 'Calculated hours' | translate }}</mat-label>
392+
<input
393+
type="text"
394+
matInput
395+
[id]="day.toLowerCase() + 'CalculatedHours'"
396+
[name]="day.toLowerCase() + 'CalculatedHours'"
397+
[(ngModel)]="data[day.toLowerCase() + 'CalculatedHours']"
398+
readonly disabled>
399+
</mat-form-field>
400+
</div>
401+
</ng-container>
402+
</mat-tab>
403+
<mat-tab label="{{'4th shift' | translate }}" *ngIf="data.thirdShiftActive && data.fourthShiftActive && !data.useOnlyPlanHours && !data.useGoogleSheetAsDefault && selectCurrentUserIsFirstUser$ | async">
404+
<ng-container *ngIf="selectCurrentUserIsAdmin$ | async">
405+
<div class="d-flex flex-row"
406+
*ngFor="let day of ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']">
407+
<mat-form-field class="p-1">
408+
<mat-label>{{ day | translate }}</mat-label>
409+
<input matInput type="text" readonly disabled>
410+
</mat-form-field>
411+
<mat-form-field class="p-1">
412+
<mat-label>{{ 'Start at' | translate }}</mat-label>
413+
<input
414+
type="text"
415+
matInput
416+
mask="00:00"
417+
placeholder="HH:MM"
418+
[id]="'start' + day + '4ThShift'"
419+
[name]="'start' + day + '4ThShift'"
420+
[ngModel]="getConvertedValue(data['start' + day + '4ThShift'], data['end' + day + '4ThShift'])"
421+
(change)="setMinutes($event, 'start' + day + '4ThShift')">
422+
</mat-form-field>
423+
<mat-form-field class="p-1">
424+
<mat-label>{{ 'End at' | translate }}</mat-label>
425+
<input
426+
type="text"
427+
matInput
428+
mask="00:00"
429+
placeholder="HH:MM"
430+
[id]="'end' + day + '4ThShift'"
431+
[name]="'end' + day + '4ThShift'"
432+
[ngModel]="getConvertedValue(data['end' + day + '4ThShift'])"
433+
(change)="setMinutes($event, 'end' + day + '4ThShift')">
434+
</mat-form-field>
435+
<mat-form-field class="p-1" *ngIf="!data.autoBreakCalculationActive">
436+
<mat-label>{{ 'Break time' | translate }}</mat-label>
437+
<input
438+
type="text"
439+
matInput
440+
mask="00:00"
441+
placeholder="HH:MM"
442+
[id]="'break' + day + '4ThShift'"
443+
[name]="'break' + day + '4ThShift'"
444+
[ngModel]="getConvertedValue(data['break' + day + '4ThShift'])"
445+
(change)="setMinutes($event, 'break' + day + '4ThShift')">
446+
</mat-form-field>
447+
<mat-form-field class="p-1">
448+
<mat-label>{{ 'Calculated hours' | translate }}</mat-label>
449+
<input
450+
type="text"
451+
matInput
452+
[id]="day.toLowerCase() + 'CalculatedHours'"
453+
[name]="day.toLowerCase() + 'CalculatedHours'"
454+
[(ngModel)]="data[day.toLowerCase() + 'CalculatedHours']"
455+
readonly disabled>
456+
</mat-form-field>
457+
</div>
458+
</ng-container>
459+
</mat-tab>
460+
<mat-tab label="{{'5th shift' | translate }}" *ngIf="data.thirdShiftActive && data.fourthShiftActive && data.fifthShiftActive && !data.useOnlyPlanHours && !data.useGoogleSheetAsDefault && selectCurrentUserIsFirstUser$ | async">
461+
<ng-container *ngIf="selectCurrentUserIsAdmin$ | async">
462+
<div class="d-flex flex-row"
463+
*ngFor="let day of ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']">
464+
<mat-form-field class="p-1">
465+
<mat-label>{{ day | translate }}</mat-label>
466+
<input matInput type="text" readonly disabled>
467+
</mat-form-field>
468+
<mat-form-field class="p-1">
469+
<mat-label>{{ 'Start at' | translate }}</mat-label>
470+
<input
471+
type="text"
472+
matInput
473+
mask="00:00"
474+
placeholder="HH:MM"
475+
[id]="'start' + day + '5ThShift'"
476+
[name]="'start' + day + '5ThShift'"
477+
[ngModel]="getConvertedValue(data['start' + day + '5ThShift'], data['end' + day + '5ThShift'])"
478+
(change)="setMinutes($event, 'start' + day + '5ThShift')">
479+
</mat-form-field>
480+
<mat-form-field class="p-1">
481+
<mat-label>{{ 'End at' | translate }}</mat-label>
482+
<input
483+
type="text"
484+
matInput
485+
mask="00:00"
486+
placeholder="HH:MM"
487+
[id]="'end' + day + '5ThShift'"
488+
[name]="'end' + day + '5ThShift'"
489+
[ngModel]="getConvertedValue(data['end' + day + '5ThShift'])"
490+
(change)="setMinutes($event, 'end' + day + '5ThShift')">
491+
</mat-form-field>
492+
<mat-form-field class="p-1" *ngIf="!data.autoBreakCalculationActive">
493+
<mat-label>{{ 'Break time' | translate }}</mat-label>
494+
<input
495+
type="text"
496+
matInput
497+
mask="00:00"
498+
placeholder="HH:MM"
499+
[id]="'break' + day + '5ThShift'"
500+
[name]="'break' + day + '5ThShift'"
501+
[ngModel]="getConvertedValue(data['break' + day + '5ThShift'])"
502+
(change)="setMinutes($event, 'break' + day + '5ThShift')">
503+
</mat-form-field>
504+
<mat-form-field class="p-1">
505+
<mat-label>{{ 'Calculated hours' | translate }}</mat-label>
506+
<input
507+
type="text"
508+
matInput
509+
[id]="day.toLowerCase() + 'CalculatedHours'"
510+
[name]="day.toLowerCase() + 'CalculatedHours'"
511+
[(ngModel)]="data[day.toLowerCase() + 'CalculatedHours']"
512+
readonly disabled>
513+
</mat-form-field>
514+
</div>
515+
</ng-container>
516+
</mat-tab>
326517
</mat-tab-group>
327518
</div>
328519
<div mat-dialog-actions class="d-flex flex-row justify-content-end">

eform-client/src/app/plugins/modules/time-planning-pn/models/assigned-sites/assigned-site.model.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,5 +154,8 @@ export class AssignedSiteModel {
154154
useGoogleSheetAsDefault: boolean;
155155
useOnlyPlanHours: boolean;
156156
usePunchClock: boolean;
157-
usePunchClockWithAllowRegisteringInHistory: boolean
157+
usePunchClockWithAllowRegisteringInHistory: boolean;
158+
thirdShiftActive: boolean;
159+
fourthShiftActive: boolean;
160+
fifthShiftActive: boolean;
158161
}

0 commit comments

Comments
 (0)