Skip to content

Commit e591f1a

Browse files
committed
Adding ability to reset auto break calculation settings from global settings.
1 parent 43df3f4 commit e591f1a

14 files changed

Lines changed: 163 additions & 137 deletions

File tree

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Controllers/TimePlanningSettingsController.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,5 +128,12 @@ public async Task<OperationResult> UpdateAssignedSite([FromBody] AssignedSite si
128128
{
129129
return await _settingService.UpdateAssignedSite(site);
130130
}
131+
132+
[HttpGet]
133+
[Route("global-auto-break-settings")]
134+
public async Task<OperationDataResult<GlobalAutoBreakSettings>> GetGlobalAutoBreakSettings()
135+
{
136+
return await _settingService.GetGlobalAutoBreakSettings();
137+
}
131138
}
132139
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
namespace TimePlanning.Pn.Infrastructure.Models.Settings;
2+
3+
public class GlobalAutoBreakSettings
4+
{
5+
public int MondayBreakMinutesDivider { get; set; }
6+
public int MondayBreakMinutesPrDivider { get; set; }
7+
public int TuesdayBreakMinutesDivider { get; set; }
8+
public int TuesdayBreakMinutesPrDivider { get; set; }
9+
public int WednesdayBreakMinutesDivider { get; set; }
10+
public int WednesdayBreakMinutesPrDivider { get; set; }
11+
public int ThursdayBreakMinutesDivider { get; set; }
12+
public int ThursdayBreakMinutesPrDivider { get; set; }
13+
public int FridayBreakMinutesDivider { get; set; }
14+
public int FridayBreakMinutesPrDivider { get; set; }
15+
public int SaturdayBreakMinutesDivider { get; set; }
16+
public int SaturdayBreakMinutesPrDivider { get; set; }
17+
public int SundayBreakMinutesDivider { get; set; }
18+
public int SundayBreakMinutesPrDivider { get; set; }
19+
public int MondayBreakMinutesUpperLimit { get; set; }
20+
public int TuesdayBreakMinutesUpperLimit { get; set; }
21+
public int WednesdayBreakMinutesUpperLimit { get; set; }
22+
public int ThursdayBreakMinutesUpperLimit { get; set; }
23+
public int FridayBreakMinutesUpperLimit { get; set; }
24+
public int SaturdayBreakMinutesUpperLimit { get; set; }
25+
public int SundayBreakMinutesUpperLimit { get; set; }
26+
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,6 @@ public interface ISettingService
5252
Task<OperationDataResult<AssignedSite>> GetAssignedSite(int siteId);
5353
Task<OperationResult> UpdateAssignedSite(AssignedSite site);
5454
Task<OperationDataResult<AssignedSite>> GetAssignedSiteByCurrentUserName();
55+
Task<OperationDataResult<GlobalAutoBreakSettings>> GetGlobalAutoBreakSettings();
5556
}
5657
}

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,36 @@ planRegistrationForToday is
489489
return new OperationDataResult<Infrastructure.Models.Settings.AssignedSite>(true, dbAssignedSite);
490490
}
491491

492+
public Task<OperationDataResult<GlobalAutoBreakSettings>> GetGlobalAutoBreakSettings()
493+
{
494+
var global = new GlobalAutoBreakSettings()
495+
{
496+
MondayBreakMinutesDivider = int.Parse(_options.Value.MondayBreakMinutesDivider),
497+
MondayBreakMinutesPrDivider = int.Parse(_options.Value.MondayBreakMinutesPrDivider),
498+
TuesdayBreakMinutesDivider = int.Parse(_options.Value.TuesdayBreakMinutesDivider),
499+
TuesdayBreakMinutesPrDivider = int.Parse(_options.Value.TuesdayBreakMinutesPrDivider),
500+
WednesdayBreakMinutesDivider = int.Parse(_options.Value.WednesdayBreakMinutesDivider),
501+
WednesdayBreakMinutesPrDivider = int.Parse(_options.Value.WednesdayBreakMinutesPrDivider),
502+
ThursdayBreakMinutesDivider = int.Parse(_options.Value.ThursdayBreakMinutesDivider),
503+
ThursdayBreakMinutesPrDivider = int.Parse(_options.Value.ThursdayBreakMinutesPrDivider),
504+
FridayBreakMinutesDivider = int.Parse(_options.Value.FridayBreakMinutesDivider),
505+
FridayBreakMinutesPrDivider = int.Parse(_options.Value.FridayBreakMinutesPrDivider),
506+
SaturdayBreakMinutesDivider = int.Parse(_options.Value.SaturdayBreakMinutesDivider),
507+
SaturdayBreakMinutesPrDivider = int.Parse(_options.Value.SaturdayBreakMinutesPrDivider),
508+
SundayBreakMinutesDivider = int.Parse(_options.Value.SundayBreakMinutesDivider),
509+
SundayBreakMinutesPrDivider = int.Parse(_options.Value.SundayBreakMinutesPrDivider),
510+
MondayBreakMinutesUpperLimit = int.Parse(_options.Value.MondayBreakMinutesUpperLimit),
511+
TuesdayBreakMinutesUpperLimit = int.Parse(_options.Value.TuesdayBreakMinutesUpperLimit),
512+
WednesdayBreakMinutesUpperLimit = int.Parse(_options.Value.WednesdayBreakMinutesUpperLimit),
513+
ThursdayBreakMinutesUpperLimit = int.Parse(_options.Value.ThursdayBreakMinutesUpperLimit),
514+
FridayBreakMinutesUpperLimit = int.Parse(_options.Value.FridayBreakMinutesUpperLimit),
515+
SaturdayBreakMinutesUpperLimit = int.Parse(_options.Value.SaturdayBreakMinutesUpperLimit),
516+
SundayBreakMinutesUpperLimit = int.Parse(_options.Value.SundayBreakMinutesUpperLimit)
517+
};
518+
519+
return Task.FromResult(new OperationDataResult<GlobalAutoBreakSettings>(true, global));
520+
}
521+
492522
public async Task<OperationResult> UpdateAssignedSite(Infrastructure.Models.Settings.AssignedSite site)
493523
{
494524
var siteId = site.SiteId;

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,14 @@
164164
[format]="24"
165165
(timeSet)="setMinutes($event, day.toLowerCase() + 'BreakMinutesUpperLimit')"
166166
></ngx-material-timepicker>
167+
<div class="pt-4">
168+
<button
169+
mat-icon-button
170+
(click)="copyBreakSettings(day.toLowerCase())"
171+
color="warn">
172+
<mat-icon>sync_arrow_down</mat-icon>
173+
</button>
174+
</div>
167175
</div>
168176
</ng-container>
169177
</mat-tab>

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

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import {Component, DoCheck, EventEmitter, Inject, OnChanges, SimpleChanges} from '@angular/core';
1+
import {Component, DoCheck, EventEmitter, Inject, OnChanges, OnInit, SimpleChanges} from '@angular/core';
22
import {
33
MAT_DIALOG_DATA,
44
MatDialogActions,
55
MatDialogClose,
66
MatDialogContent,
77
MatDialogTitle
88
} from '@angular/material/dialog';
9-
import {AssignedSiteModel} from '../../../../models';
10-
import {MatButton} from '@angular/material/button';
9+
import {AssignedSiteModel, GlobalAutoBreakSettingsModel} from '../../../../models';
10+
import {MatButton, MatIconButton} from '@angular/material/button';
1111
import {FormsModule} from '@angular/forms';
1212
import {MatFormField, MatLabel} from '@angular/material/form-field';
1313
import {MatInput} from '@angular/material/input';
@@ -19,7 +19,8 @@ import {MatTab, MatTabGroup} from '@angular/material/tabs';
1919
import {NgxMaskDirective} from 'ngx-mask';
2020
import {MatCheckbox} from '@angular/material/checkbox';
2121
import {TimePlanningPnSettingsService} from 'src/app/plugins/modules/time-planning-pn/services';
22-
import {NgxMaterialTimepickerModule} from "ngx-material-timepicker";
22+
import {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';
23+
import {MatIcon} from "@angular/material/icon";
2324

2425
@Component({
2526
selector: 'app-assigned-site-dialog',
@@ -43,13 +44,16 @@ import {NgxMaterialTimepickerModule} from "ngx-material-timepicker";
4344
NgxMaskDirective,
4445
MatCheckbox,
4546
NgxMaterialTimepickerModule,
47+
MatIcon,
48+
MatIconButton,
4649
],
4750
styleUrls: ['./assigned-site-dialog.component.scss']
4851
})
49-
export class AssignedSiteDialogComponent implements DoCheck {
52+
export class AssignedSiteDialogComponent implements DoCheck, OnInit {
5053
public selectCurrentUserIsAdmin$ = this.authStore.select(selectCurrentUserIsAdmin);
5154
assignedSiteUpdate: EventEmitter<AssignedSiteModel> = new EventEmitter<AssignedSiteModel>();
5255
private previousData: AssignedSiteModel;
56+
private globalAutoBreakSettings: GlobalAutoBreakSettingsModel;
5357

5458
constructor(
5559
@Inject(MAT_DIALOG_DATA) public data: AssignedSiteModel,
@@ -67,6 +71,14 @@ export class AssignedSiteDialogComponent implements DoCheck {
6771
}
6872
}
6973

74+
ngOnInit(): void {
75+
this.timePlanningPnSettingsService.getGlobalAutoBreakCalculationSettings().subscribe(result => {
76+
if (result && result.success) {
77+
this.globalAutoBreakSettings = result.model;
78+
}
79+
});
80+
}
81+
7082
hasDataChanged(): boolean {
7183
return JSON.stringify(this.data) !== JSON.stringify(this.previousData);
7284
}
@@ -222,4 +234,45 @@ export class AssignedSiteDialogComponent implements DoCheck {
222234
private padZero(num: number): string {
223235
return num < 10 ? `0${num}` : `${num}`;
224236
}
237+
238+
copyBreakSettings(day: string) {
239+
switch (day) {
240+
case 'monday':
241+
this.data.mondayBreakMinutesDivider = this.globalAutoBreakSettings.mondayBreakMinutesDivider;
242+
this.data.mondayBreakMinutesPrDivider = this.globalAutoBreakSettings.mondayBreakMinutesPrDivider;
243+
this.data.mondayBreakMinutesUpperLimit = this.globalAutoBreakSettings.mondayBreakMinutesUpperLimit;
244+
break;
245+
case 'tuesday':
246+
this.data.tuesdayBreakMinutesDivider = this.globalAutoBreakSettings.tuesdayBreakMinutesDivider;
247+
this.data.tuesdayBreakMinutesPrDivider = this.globalAutoBreakSettings.tuesdayBreakMinutesPrDivider;
248+
this.data.tuesdayBreakMinutesUpperLimit = this.globalAutoBreakSettings.tuesdayBreakMinutesUpperLimit;
249+
break;
250+
case 'wednesday':
251+
this.data.wednesdayBreakMinutesDivider = this.globalAutoBreakSettings.wednesdayBreakMinutesDivider;
252+
this.data.wednesdayBreakMinutesPrDivider = this.globalAutoBreakSettings.wednesdayBreakMinutesPrDivider;
253+
this.data.wednesdayBreakMinutesUpperLimit = this.globalAutoBreakSettings.wednesdayBreakMinutesUpperLimit;
254+
break;
255+
case 'thursday':
256+
this.data.thursdayBreakMinutesDivider = this.globalAutoBreakSettings.thursdayBreakMinutesDivider;
257+
this.data.thursdayBreakMinutesPrDivider = this.globalAutoBreakSettings.thursdayBreakMinutesPrDivider;
258+
this.data.thursdayBreakMinutesUpperLimit = this.globalAutoBreakSettings.thursdayBreakMinutesUpperLimit;
259+
break;
260+
case 'friday':
261+
this.data.fridayBreakMinutesDivider = this.globalAutoBreakSettings.fridayBreakMinutesDivider;
262+
this.data.fridayBreakMinutesPrDivider = this.globalAutoBreakSettings.fridayBreakMinutesPrDivider;
263+
this.data.fridayBreakMinutesUpperLimit = this.globalAutoBreakSettings.fridayBreakMinutesUpperLimit;
264+
break;
265+
case 'saturday':
266+
this.data.saturdayBreakMinutesDivider = this.globalAutoBreakSettings.saturdayBreakMinutesDivider;
267+
this.data.saturdayBreakMinutesPrDivider = this.globalAutoBreakSettings.saturdayBreakMinutesPrDivider;
268+
this.data.saturdayBreakMinutesUpperLimit = this.globalAutoBreakSettings.saturdayBreakMinutesUpperLimit;
269+
break;
270+
case 'sunday':
271+
this.data.sundayBreakMinutesDivider = this.globalAutoBreakSettings.sundayBreakMinutesDivider;
272+
this.data.sundayBreakMinutesPrDivider = this.globalAutoBreakSettings.sundayBreakMinutesPrDivider;
273+
this.data.sundayBreakMinutesUpperLimit = this.globalAutoBreakSettings.sundayBreakMinutesUpperLimit;
274+
break;
275+
}
276+
// this.data[`break${day}`] = this.globalAutoBreakSettings.;
277+
}
225278
}

eform-client/src/app/plugins/modules/time-planning-pn/components/plannings/time-planning-table-row/time-planning-table-row.component.html

Lines changed: 0 additions & 52 deletions
This file was deleted.

eform-client/src/app/plugins/modules/time-planning-pn/components/plannings/time-planning-table-row/time-planning-table-row.component.scss

Whitespace-only changes.

eform-client/src/app/plugins/modules/time-planning-pn/components/plannings/time-planning-table-row/time-planning-table-row.component.ts

Lines changed: 0 additions & 79 deletions
This file was deleted.

eform-client/src/app/plugins/modules/time-planning-pn/models/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export * from './time-planning-settings.model';
1+
export * from './settings';
22
export * from './plannings';
33
export * from './working-hours';
44
export * from './flexes';

0 commit comments

Comments
 (0)