@@ -192,11 +192,14 @@ private async Task ChangeLegalStatusAsync(PayrunJobStatus jobStatus)
192192 }
193193
194194 // confirmation
195+ var source = Localizer . Enum ( LegalJob . JobStatus ) ;
196+ var target = Localizer . Enum ( jobStatus ) ;
195197 if ( ! await DialogService . ShowMessageBoxAsync (
196- Localizer . PayrunJob . PayrunJob ,
197- new MarkupString ( $ "<br /><b>»{ jobStatus } «</b> { Localizer . PayrunJob . PayrunJob } { LegalJob . Name } ?<br /><br />") ,
198- Localizer . Dialog . Ok ,
199- Localizer . Dialog . Cancel ) )
198+ title : Localizer . PayrunJob . PayrunJob ,
199+ message : new MarkupString ( $ "<br />{ Localizer . PayrunJob . ChangeStatusQuery ( source , target ) } <br /><br />") ,
200+ yesText : target ,
201+ noText : Localizer . Dialog . Cancel ,
202+ submitColor : jobStatus is PayrunJobStatus . Cancel or PayrunJobStatus . Abort ? Color . Error : Color . Tertiary ) )
200203 {
201204 return ;
202205 }
@@ -581,7 +584,7 @@ await DialogService.ShowAsync<PayrunJobDialog>(
581584 /// <param name="setup">The payrun job setup</param>
582585 private async Task ResetJobSetupAsync ( PayrunJobSetup setup )
583586 {
584- setup . PeriodDate = Date . Today ;
587+ await SetJobPeriodDateAsync ( setup , Date . Today ) ;
585588 setup . JobName = $ "{ Localizer . Payrun . Payrun } { setup . PeriodDate ? . ToCompactString ( ) } ";
586589 setup . ForecastName = null ;
587590 setup . SelectedEmployees = null ;
@@ -603,7 +606,7 @@ private async Task ResetJobSetupAsync(PayrunJobSetup setup)
603606 /// <param name="setup">The jo setup</param>
604607 private async Task ApplyToSetupAsync ( PayrunJob job , PayrunJobSetup setup )
605608 {
606- setup . PeriodDate = job . PeriodStart ;
609+ await SetJobPeriodDateAsync ( setup , job . PeriodStart ) ;
607610 setup . EvaluationDate = job . EvaluationDate ;
608611 setup . JobName = job . Name ;
609612 setup . Reason = job . CreatedReason ;
@@ -861,46 +864,35 @@ private DateTime? LegalSetupPeriodDate
861864 {
862865 // ReSharper disable once UnusedMember.Local
863866 get => LegalSetup . PeriodDate ;
864- set
865- {
866- LegalSetup . PeriodDate = value ;
867- InvokeAsync ( UpdateLegalSetupPeriodAsync ) ;
868- }
869- }
870-
871- private async Task UpdateLegalSetupPeriodAsync ( )
872- {
873- var period = await CalendarService . GetPeriodAsync (
874- tenantId : Tenant . Id ,
875- cultureName : PageCulture . Name ,
876- calendarName : JobCalendar ,
877- periodMoment : LegalSetup . PeriodDate ) ;
878- LegalSetup . Period = period ;
879- StateHasChanged ( ) ;
867+ set => InvokeAsync ( ( ) => SetJobPeriodDateAsync ( LegalSetup , value ) ) ;
880868 }
881869
882870 private DateTime ? ForecastSetupPeriodDate
883871 {
884872 // ReSharper disable once UnusedMember.Local
885873 get => ForecastSetup . PeriodDate ;
886- set
887- {
888- ForecastSetup . PeriodDate = value ;
889- InvokeAsync ( UpdateForecastSetupPeriodAsync ) ;
890- }
874+ set => InvokeAsync ( ( ) => SetJobPeriodDateAsync ( ForecastSetup , value ) ) ;
891875 }
892876
893- private async Task UpdateForecastSetupPeriodAsync ( )
877+ private async Task SetJobPeriodDateAsync ( PayrunJobSetup setup , DateTime ? date )
894878 {
895- var period = await CalendarService . GetPeriodAsync (
896- tenantId : Tenant . Id ,
897- cultureName : PageCulture . Name ,
898- calendarName : JobCalendar ,
899- periodMoment : ForecastSetup . PeriodDate ) ;
900- ForecastSetup . Period = period ;
901- StateHasChanged ( ) ;
879+ if ( date == setup . PeriodDate )
880+ {
881+ return ;
882+ }
883+ setup . PeriodDate = date ;
884+ await UpdateJobPeriodAsync ( setup ) ;
902885 }
903886
887+ private async Task UpdateJobPeriodAsync ( PayrunJobSetup setup ) =>
888+ setup . Period = setup . PeriodDate != null ?
889+ await CalendarService . GetPeriodAsync (
890+ tenantId : Tenant . Id ,
891+ cultureName : PageCulture . Name ,
892+ calendarName : JobCalendar ,
893+ periodMoment : setup . PeriodDate ) :
894+ new ( ) ;
895+
904896 #endregion
905897
906898 #region Users
@@ -1028,9 +1020,8 @@ protected override async Task OnPageAfterRenderAsync(bool firstRender)
10281020 if ( firstRender && HasFeature ( Feature . Forecasts ) )
10291021 {
10301022 await SetupForecastHistoryAsync ( ) ;
1031- await UpdateLegalSetupPeriodAsync ( ) ;
1032- await UpdateForecastSetupPeriodAsync ( ) ;
1033-
1023+ await UpdateJobPeriodAsync ( LegalSetup ) ;
1024+ await UpdateJobPeriodAsync ( ForecastSetup ) ;
10341025 }
10351026 await base . OnPageAfterRenderAsync ( firstRender ) ;
10361027 }
0 commit comments