From cec4eea4179fb7eda02ec9e403f33f039935fe38 Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 24 Oct 2025 01:52:15 +0200 Subject: [PATCH] Neue Einstellungen in der Verwaltung: - Start Mitarbeiterstundenkonto - Anzahl Tage in der die Arbeitszeiterfassung erfolgen muss --- BeWo/BeWoApp.xaml.cs | 16 +- BeWo/Core/Config/AppSettings.cs | 9 + BeWo/View/Detail/MandatorView.xaml | 54 ++++- BeWo/View/Detail/MandatorView.xaml.cs | 4 + BeWo/ViewModel/MandatorVM.cs | 31 +++ BeWo/ViewModel/ServiceRecordVM.cs | 2 +- .../MitarbeiterstundenkontoBerechnung.cs | 49 ++++- Service/Configuration/AppSettings.cs | 19 +- Service/Plugins/CustomerService.cs | 10 +- Service/Plugins/EmployeeService.cs | 17 +- Service/Plugins/ServiceRecordValidator.cs | 39 +++- Shared/Core/SettingsKeys.cs | 196 +++++++++--------- 12 files changed, 325 insertions(+), 121 deletions(-) diff --git a/BeWo/BeWoApp.xaml.cs b/BeWo/BeWoApp.xaml.cs index b2bc33919..bdf3417d2 100644 --- a/BeWo/BeWoApp.xaml.cs +++ b/BeWo/BeWoApp.xaml.cs @@ -397,6 +397,11 @@ namespace BeWo { AppSettings.ShowWorktime = true; } + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.StartStundenkonto); + if (val != null && DateTime.TryParse(val, out var dt)) + { + AppSettings.StartStundenkonto = dt; + } val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.EnableArbeitszeiterfassung); if (val != null && val.Equals("1")) { @@ -418,7 +423,12 @@ namespace BeWo { AppSettings.MaxWorkTimeHoursBeforeWarning = hours; } - + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AnzTageArbeitszeiterfassungErfolgt); + int tage; + if (Int32.TryParse(val, out tage)) + { + AppSettings.AnzTageArbeitszeiterfassungErfolgt = tage; + } var anzahl = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.DienstplanungStandardZeilenAnzahl); if (anzahl != null) { @@ -523,6 +533,9 @@ namespace BeWo val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowStorno); AppSettings.AllowStorno = val != null && val.Equals("1"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.AllowXRechnung); + AppSettings.AllowXRechnung = val != null && val.Equals("1"); + val = UserSettingsUtils.GetSettingValue(_Mandator.Settings, SettingsKeys.UseDistanceApi); AppSettings.UseDistanceApi = val != null && val.Equals("1"); @@ -635,6 +648,7 @@ namespace BeWo showDienstplanung = true; showHilfeplanBezeichnung = true; AppSettings.AllowStorno = true; + AppSettings.AllowXRechnung = true; //AppSettings.ShowAI = true; //AppSettings.ShowAIInternal = true; AppSettings.ShowWorktime = true; diff --git a/BeWo/Core/Config/AppSettings.cs b/BeWo/Core/Config/AppSettings.cs index fe1cee77d..4824f4ebd 100644 --- a/BeWo/Core/Config/AppSettings.cs +++ b/BeWo/Core/Config/AppSettings.cs @@ -462,17 +462,23 @@ namespace BeWo.Core.Config public bool ShowDienstplanung { get; set; } public bool ShowWorktime { get; set; } + + public DateTime? StartStundenkonto { get; set; } public bool EnableArbeitszeiterfassung { get; set; } public bool EnableAutomaticPauses { get; set; } public bool EnableRestTimeWarning { get; set; } public int MaxWorkTimeHoursBeforeWarning { get; set; } + public int AnzTageArbeitszeiterfassungErfolgt { get; set; } + public int DienstplanungStandardZeilenAnzahl { get; set; } public bool ShowInfoButtonInCalender{ get; set; } public bool AllowStorno { get; set; } + public bool AllowXRechnung { get; set; } + public bool UseDistanceApi { get; set; } public bool ShowEmployeeSignature { get; set; } @@ -498,6 +504,9 @@ namespace BeWo.Core.Config public bool ShowPersehImport { get; set; } + public bool HidePrintQBPopup { get; set; } + + public bool DontUpdateApprovalPeriodDates { get; set; } private SchedulerViewType _SchedulerViewType; diff --git a/BeWo/View/Detail/MandatorView.xaml b/BeWo/View/Detail/MandatorView.xaml index 007a3cf88..f2423ba08 100644 --- a/BeWo/View/Detail/MandatorView.xaml +++ b/BeWo/View/Detail/MandatorView.xaml @@ -358,6 +358,8 @@ + + @@ -494,33 +496,73 @@ Content="{markup:Translate Enddatum anzeigen}" IsChecked="{Binding Path=IsEndDateVisible}" /> + + + + + + 0) + if (allowed && BeWoApp.AppSettings.AnzTageZeiterfassErfolgt > 0 && this.SupportConcept != null) { if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecordAllowEditAfterMindays)) { diff --git a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs index c45d37537..ac3aada75 100644 --- a/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs +++ b/Report/ReportObjects/MitarbeiterstundenkontoBerechnung.cs @@ -52,6 +52,20 @@ namespace BeWo.Report.ReportObjects public bool CheckIst { get; set; } + public virtual DateTime BerechnungsStartdatum + { + get + { + if (appSettings.StartStundenkonto.HasValue) + { + return appSettings.StartStundenkonto.Value; + } + + return DateTime.MinValue; + } + + } + public virtual void CreateReport(MitarbeiterstundenkontoRO ro) { CreateEmployeeDetails(ro); @@ -134,6 +148,11 @@ namespace BeWo.Report.ReportObjects empDetail.HasContract = true; } + if (BerechnungsStartdatum > berichtsAnfang) + { + berichtsAnfang = BerechnungsStartdatum; + } + ServiceRecordSummary summaryTotal = new ServiceRecordSummary(); summaryTotal.RecordsImBerichtszeitraum = new List(); @@ -151,7 +170,6 @@ namespace BeWo.Report.ReportObjects decimal azDurchFeiertage = 0; IList groupFilteredRecords = empDetail.AllServiceRecords; - if (groupFilteredRecords == null) { IList recordsAll = DAOFactory.SearchDAO.FindServiceRecords(emp.Oid, null); @@ -175,8 +193,12 @@ namespace BeWo.Report.ReportObjects empDetail.AllServiceRecords = groupFilteredRecords; } + while (berichtsAnfang < berichtsEnde) { + + + StarteBerechnung(berichtsAnfang, berichtsEnde, empDetail); empDetail.ArbeitstageImBerichtszeitraum = GetArbeitstageImBereich(berichtsAnfang, berichtsEnde, emp); @@ -2165,12 +2187,19 @@ namespace BeWo.Report.ReportObjects Contract c = emp.FirstContract; + + if (c != null) { Dictionary> srDict = CreateServiceRecordDictByDate(records); DateTime start = c.EntryDate.HasValue ? c.EntryDate.Value : new DateTime(2011, 1, 1); + if (BerechnungsStartdatum > start) + { + start = BerechnungsStartdatum; + c = GetNextValidContractForDate(start, emp); + } while (c != null && start < monat) { DateTime contractEnd = c.ContractEndDate.HasValue ? c.ContractEndDate.Value : DateTime.MaxValue; @@ -3510,6 +3539,15 @@ namespace BeWo.Report.ReportObjects } public virtual decimal GetArbeitstageImBereich(DateTime von, DateTime bis, Employee emp) + { + return GetArbeitstageImBereich(von, bis, emp, false); + + } + + // Wenn das Flag berechneAnhandArbeitszeiten gesetzt ist, werden nur die Wochentage als Arbeitstage berechent, für die auch im Reiter Arbeitszeiten ein entsprechender Arbeitstag hinterlegt wurde. + // Nur relevant bei < 5 Wochenarbeitstagen + // Aus Kompatibilitätsgründen ist das Flag standardmäßig auf false + public virtual decimal GetArbeitstageImBereich(DateTime von, DateTime bis, Employee emp, bool berechneAnhandArbeitszeiten) { DateTime start = von; DateTime end = bis; @@ -3548,7 +3586,14 @@ namespace BeWo.Report.ReportObjects } else { - if (!BerechneFeiertageAlsArbeitszeit()) + if (berechneAnhandArbeitszeiten && arbeitstageProWoche < 5) + { + if (GetSollNachArbeitszeitenFuerTag(emp, start) == 0) + { + maxDays--; // Kein Arbeitstag, also Anzahl um eins verringern + } + } + else if (!BerechneFeiertageAlsArbeitszeit()) { maxDays -= GetFeiertagsFaktor(start); } diff --git a/Service/Configuration/AppSettings.cs b/Service/Configuration/AppSettings.cs index 44acc0a95..e331291a3 100644 --- a/Service/Configuration/AppSettings.cs +++ b/Service/Configuration/AppSettings.cs @@ -30,6 +30,8 @@ namespace BeWo.Service.Configuration public int AnzTageZeiterfassErfolgt { get; set; } + public int AnzTageArbeitszeiterfassungErfolgt { get; set; } + public int AnzTageUnterschriftErfolgt { get; set; } public int ZeiterfassungsSchwellwert { get; set; } @@ -72,6 +74,8 @@ namespace BeWo.Service.Configuration public bool EnableRestTimeWarning { get; set; } public int MaxWorkTimeHoursBeforeWarning { get; set; } + public DateTime? StartStundenkonto { get; set; } + public static AppSettings CreateSettings() { @@ -277,7 +281,20 @@ namespace BeWo.Service.Configuration { settings.ShowChat = true; } - } + + val = GetSettingValue(settingsString, "StartStundenkonto"); + if (val != null && DateTime.TryParse(val, out var dt)) + { + settings.StartStundenkonto = dt; + } + + val = GetSettingValue(settingsString, SettingsKeys.AnzTageArbeitszeiterfassungErfolgt); + int tage; + if (Int32.TryParse(val, out tage)) + { + settings.AnzTageArbeitszeiterfassungErfolgt = tage; + } + } settings.IsServiceRecordNoticeMandatory = isServiceRecordNoticeMandatory; settings.IsPasswordSecurityActiv = isPasswordSecurityActiv; diff --git a/Service/Plugins/CustomerService.cs b/Service/Plugins/CustomerService.cs index 5417c275d..07a446825 100644 --- a/Service/Plugins/CustomerService.cs +++ b/Service/Plugins/CustomerService.cs @@ -1480,13 +1480,17 @@ namespace BeWo.Service.Plugins supportConcept.Goals.Add(ziel); } - foreach (var importMass in importziel.Massnahmen) + if (importziel.Massnahmen != null) { - if (importMass.DoImport) + foreach (var importMass in importziel.Massnahmen) { - MatchMassnahme(importMass, supportConcept, ziel); + if (importMass.DoImport) + { + MatchMassnahme(importMass, supportConcept, ziel); + } } } + } } } diff --git a/Service/Plugins/EmployeeService.cs b/Service/Plugins/EmployeeService.cs index 83b7857ac..c3e817825 100644 --- a/Service/Plugins/EmployeeService.cs +++ b/Service/Plugins/EmployeeService.cs @@ -53,22 +53,27 @@ namespace BeWo.Service.Plugins public virtual List GetAllTeamsCompact() { + return GetAllTeamsCompact(false); + } + + + public virtual List GetAllTeamsCompact(bool includeOwnChat) + { + var teamDcs = new List(); var loggedInUser = UserRightHelper.GetLoggedInUser(); if (Utils.UserHasRight(loggedInUser, UserRightType.TeamView_ViewAll)) { - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); + teamDcs = MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive()); } - - if (Utils.UserHasRight(loggedInUser, UserRightType.TeamView_ViewMyTeams)) + else if (Utils.UserHasRight(loggedInUser, UserRightType.TeamView_ViewMyTeams)) { var teams = DAOFactory.SearchDAO.FindAllActiveTeamsOfEmployee(loggedInUser.Employee.Oid.Value); - return MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams); + teamDcs = MapperFactory.CompactTeamDC_Team.MapToNewDCs(teams); } - return new List(); + return teamDcs.Where(t => includeOwnChat || !t.IsOwnChatTeam).ToList(); } - //Für Main Navigation View public virtual List GetAllCompactEmployees() { diff --git a/Service/Plugins/ServiceRecordValidator.cs b/Service/Plugins/ServiceRecordValidator.cs index fab4c34a4..083c02df8 100644 --- a/Service/Plugins/ServiceRecordValidator.cs +++ b/Service/Plugins/ServiceRecordValidator.cs @@ -448,18 +448,20 @@ namespace BeWo.Service.Plugins try { // 5. Frist - if (_AppSettings.AnzTageZeiterfassErfolgt > 0) + + + if (!cb2ScOid.HasValue && _AppSettings.ShowWorktime && _AppSettings.EnableArbeitszeiterfassung && IstArbeitszeit(newServiceRecord.ServiceDescription.Category.Name, newServiceRecord.ServiceDescription.Name)) + { + CheckArbeitszeitBedingungen(newServiceRecord, start, duration, result); + } + else if (_AppSettings.AnzTageZeiterfassErfolgt > 0) { var dt = new DateTime(start.Year, start.Month, start.Day); dt = dt.AddDays(_AppSettings.AnzTageZeiterfassErfolgt + 1); if (DateTime.Now >= dt) result.Add(new ServiceRecordValidationResultDC { ResultType = ServiceRecordValidationResult.FristAbgelaufen }); } - - if (!cb2ScOid.HasValue && _AppSettings.ShowWorktime && _AppSettings.EnableArbeitszeiterfassung) - { - CheckArbeitszeitBedingungen(newServiceRecord, start, duration, result); - } + } catch (Exception) { @@ -668,6 +670,31 @@ namespace BeWo.Service.Plugins return; } + //Prüfe Frist + if (_AppSettings.AnzTageArbeitszeiterfassungErfolgt > 0) + { + var dt = new DateTime(start.Year, start.Month, start.Day); + dt = dt.AddDays(_AppSettings.AnzTageArbeitszeiterfassungErfolgt + 1); + if (DateTime.Now >= dt) + { + String msg = $"Die Arbeitszeiterfassung muss innerhalb von {_AppSettings.AnzTageArbeitszeiterfassungErfolgt} Tagen erfolgen."; + if (_AppSettings.AnzTageZeiterfassErfolgt == 1) + { + msg = $"Die Arbeitszeiterfassung muss innerhalb von einem Tag erfolgen."; + } + + result.Add(new ServiceRecordValidationResultDC + { + ResultType = ServiceRecordValidationResult.Custom, + Message = msg, + Allow = false + + }); + } + + } + + var empRecords = GetEmployeeServiceRecordsWithTimeForLastDay(newServiceRecord, start, newServiceRecord.Employee.EmployeeOid); if (_AppSettings.EnableRestTimeWarning) { diff --git a/Shared/Core/SettingsKeys.cs b/Shared/Core/SettingsKeys.cs index cb89e1796..c14d84d1e 100644 --- a/Shared/Core/SettingsKeys.cs +++ b/Shared/Core/SettingsKeys.cs @@ -18,119 +18,125 @@ namespace BS.Shared.Core } - public static string ShowExpiredSupportConcepts => "ShowExpiredSupportConcepts"; - public static string ShowOnlyMySupportConcepts => "ShowOnlyMySupportConcepts"; - public static string LastSelectedServiceRecordTimeInterval => "LastSelectedServiceRecordTimeInterval"; - public static string CustomerFilterInZeiterfassung => "CustomerFilterInZeiterfassung"; - public static string ShowSignature => "ShowSignature"; - public static string ShowDistanceFields => "ShowDistanceFields"; - public static string IsServiceRecordNoticeMandatory => "IsServiceRecordNoticeMandatory"; - public static string IsServiceRecordGoalMandatory => "IsServiceRecordGoalMandatory"; - public static string IsServiceRecordRatingMandatory => "IsServiceRecordRatingMandatory"; - public static string IsEndDateVisible => "IsEndDateVisible"; - public static string IsZeiterfassungInStdMin => "IsZeiterfassungInStdMin"; + public const string ShowExpiredSupportConcepts = "ShowExpiredSupportConcepts"; + public const string ShowOnlyMySupportConcepts = "ShowOnlyMySupportConcepts"; + public const string LastSelectedServiceRecordTimeInterval = "LastSelectedServiceRecordTimeInterval"; + public const string CustomerFilterInZeiterfassung = "CustomerFilterInZeiterfassung"; + public const string ShowSignature = "ShowSignature"; + public const string ShowDistanceFields = "ShowDistanceFields"; + public const string IsServiceRecordNoticeMandatory = "IsServiceRecordNoticeMandatory"; + public const string IsServiceRecordGoalMandatory = "IsServiceRecordGoalMandatory"; + public const string IsServiceRecordRatingMandatory = "IsServiceRecordRatingMandatory"; + public const string IsEndDateVisible = "IsEndDateVisible"; + public const string IsZeiterfassungInStdMin = "IsZeiterfassungInStdMin"; - public static string EinheitZeiterfassung => "EinheitZeiterfassung"; - public static string HilfeplanAuslaufAuswahl => "HilfeplanAuslaufAuswahl"; - public static string AnzTageZeiterfassErfolgt => "AnzTageZeiterfassErfolgt"; - public static string AnzTageUnterschriftErfolgt => "AnzTageUnterschriftErfolgt"; - public static string MaxDaysEditServiceRecordsAllowed => "MaxDaysEditServiceRecordsAllowed"; - public static string TimeUntilUILock => "TimeUntilUILock"; - public static string WindowStateType => "WindowStateType"; - public static string CustomerFilterSupportConcepts => "CustomerFilterSupportConcepts"; - public static string CustomerFilterCustomers => "CustomerFilterCustomers"; - public static string ShowServiceRecordGridControl => "ShowServiceRecordGridControl"; - public static string StartupPanelMaximized => "StartupPanelMaximized"; - public static string HideServiceRecordInsertedByAndInsertedOn => "HideServiceRecordInsertedByAndInsertedOn"; - public static string DocumentationFontSize => "DocumentationFontSize"; - public static string ZeigeNurMeineTermine => "ZeigeNurMeineTermine"; - public static string LastSelectedServiceRecordTimeIntervalDays => "LastSelectedServiceRecordTimeIntervalDays"; - public static string LastSelectedServiceRecordMonth => "LastSelectedServiceRecordMonth"; - public static string LastKassenSortOrder => "LastKassenSortOrder"; - public static string LastBewilligungSortOrder => "LastBewilligungSortOrder"; + public const string EinheitZeiterfassung = "EinheitZeiterfassung"; + public const string HilfeplanAuslaufAuswahl = "HilfeplanAuslaufAuswahl"; + public const string AnzTageZeiterfassErfolgt = "AnzTageZeiterfassErfolgt"; + public const string AnzTageUnterschriftErfolgt = "AnzTageUnterschriftErfolgt"; + public const string MaxDaysEditServiceRecordsAllowed = "MaxDaysEditServiceRecordsAllowed"; + public const string TimeUntilUILock = "TimeUntilUILock"; + public const string WindowStateType = "WindowStateType"; + public const string CustomerFilterSupportConcepts = "CustomerFilterSupportConcepts"; + public const string CustomerFilterCustomers = "CustomerFilterCustomers"; + public const string ShowServiceRecordGridControl = "ShowServiceRecordGridControl"; + public const string StartupPanelMaximized = "StartupPanelMaximized"; + public const string HideServiceRecordInsertedByAndInsertedOn = "HideServiceRecordInsertedByAndInsertedOn"; + public const string DocumentationFontSize = "DocumentationFontSize"; + public const string ZeigeNurMeineTermine = "ZeigeNurMeineTermine"; + public const string LastSelectedServiceRecordTimeIntervalDays = "LastSelectedServiceRecordTimeIntervalDays"; + public const string LastSelectedServiceRecordMonth = "LastSelectedServiceRecordMonth"; + public const string LastKassenSortOrder = "LastKassenSortOrder"; + public const string LastBewilligungSortOrder = "LastBewilligungSortOrder"; - public static string ServiceRecordAllowChangeHours => "ServiceRecordAllowChangeHours"; - public static string LetzteZeiterfassungsDauer => "LetzteZeiterfassungsDauer"; - public static string StartupPanelOrder => "StartupPanelOrder"; - public static string ShowMedication => "ShowMedication"; - public static string ShowScheduler => "ShowScheduler"; - public static string ShowWohnheime => "ShowWohnheime"; - public static string ShowChat => "ShowChat"; - public static string ShowOwnChatSettings => "ShowOwnChatSettings"; - public static string SetStartTimeToEndTimeAfterSave => "SetStartTimeToEndTimeAfterSave"; - public static string IsPasswordSecurityActiv => "IsPasswordSecurityActiv"; - public static string IsOnlyYearMonthVisible => "IsOnlyYearMonthVisible"; - public static string IsZeiterfassDateNormal => "IsZeiterfassDateNormal"; - public static string LastSelectedStundenkontoIntervall => "LastSelectedStundenkontoIntervall"; - public static string ZeiterfassungsSchwellwert => "ZeiterfassungsSchwellwert"; - public static string ShowBetrag => "ShowBetrag"; - public static string ShowHilfeplanBezeichnung => "ShowHilfeplanBezeichnung"; - public static string ShowArbeitszeiten => "ShowArbeitszeiten"; - public static string ShowRessources => "ShowRessources"; - public static string ShowTeamNews => "ShowTeamNews"; - public static string ShowPivotGrid => "ShowPivotGrid"; - public static string ShowUrlaubsplanung => "ShowUrlaubsplanung"; - public static string DontShowSpitzabrechnung => "DontShowSpitzabrechnung"; - public static string ShowDienstplanung => "ShowDienstplanung"; + public const string ServiceRecordAllowChangeHours = "ServiceRecordAllowChangeHours"; + public const string LetzteZeiterfassungsDauer = "LetzteZeiterfassungsDauer"; + public const string StartupPanelOrder = "StartupPanelOrder"; + public const string ShowMedication = "ShowMedication"; + public const string ShowScheduler = "ShowScheduler"; + public const string ShowWohnheime = "ShowWohnheime"; + public const string ShowChat = "ShowChat"; + public const string ShowOwnChatSettings = "ShowOwnChatSettings"; + public const string SetStartTimeToEndTimeAfterSave = "SetStartTimeToEndTimeAfterSave"; + public const string IsPasswordSecurityActiv = "IsPasswordSecurityActiv"; + public const string IsOnlyYearMonthVisible = "IsOnlyYearMonthVisible"; + public const string IsZeiterfassDateNormal = "IsZeiterfassDateNormal"; + public const string LastSelectedStundenkontoIntervall = "LastSelectedStundenkontoIntervall"; + public const string ZeiterfassungsSchwellwert = "ZeiterfassungsSchwellwert"; + public const string ShowBetrag = "ShowBetrag"; + public const string ShowHilfeplanBezeichnung = "ShowHilfeplanBezeichnung"; + public const string ShowArbeitszeiten = "ShowArbeitszeiten"; + public const string ShowRessources = "ShowRessources"; + public const string ShowTeamNews = "ShowTeamNews"; + public const string ShowPivotGrid = "ShowPivotGrid"; + public const string ShowUrlaubsplanung = "ShowUrlaubsplanung"; + public const string DontShowSpitzabrechnung = "DontShowSpitzabrechnung"; + public const string ShowDienstplanung = "ShowDienstplanung"; - public static string ShowWorktime => "ShowWorktime"; - public static string EnableArbeitszeiterfassung => "EnableArbeitszeiterfassung"; - public static string EnableAutomaticPauses => "EnableAutomaticPauses"; - public static string EnableRestTimeWarning => "EnableRestTimeWarning"; - public static string MaxWorkTimeHoursBeforeWarning => "MaxWorkTimeHoursBeforeWarning"; + public const string ShowWorktime = "ShowWorktime"; + public const string EnableArbeitszeiterfassung = "EnableArbeitszeiterfassung"; + public const string EnableAutomaticPauses = "EnableAutomaticPauses"; + public const string EnableRestTimeWarning = "EnableRestTimeWarning"; + public const string MaxWorkTimeHoursBeforeWarning = "MaxWorkTimeHoursBeforeWarning"; - public static string DienstplanungStandardZeilenAnzahl => "DienstplanungStandardZeilenAnzahl"; - public static string ShowMarker => "ShowMarker"; - public static string ShowAnnualReport => "ShowAnnualReport"; - public static string ShowCustomerDistanceFields => "ShowCustomerDistanceFields"; - public static string ShowAdditionalService => "ShowAdditionalService"; - public static string ShowRoundedDurationInEmployeeAnalysis => "ShowRoundedDurationInEmployeeAnalysis"; - public static string ShowDatevFields => "ShowDatevFields"; - public static string PrinterSettingsUseLandscape => "PrinterSettingsUseLandscape"; - public static string PrinterSettingsUseMargins => "PrinterSettingsUseMargins"; - public static string PrinterSettingsUsePaperKind => "PrinterSettingsUsePaperKind"; - public static string ShowRtfTextfield => "ShowRtfTextfield"; - public static string ShowEmployeeSignature => "ShowEmployeeSignature"; - public static string SchedulerViewType => "SchedulerViewType"; - public static string SchedulerTimelineViewDayCount => "SchedulerTimelineViewDayCount"; - public static string SchedulerDayViewDayCount => "SchedulerDayViewDayCount"; - public static string ShowMultipleResourceColors => "ShowMultipleResourceColors"; + public const string AnzTageArbeitszeiterfassungErfolgt = "AnzTageArbeitszeiterfassungErfolgt"; + public const string StartStundenkonto = "StartStundenkonto"; - public static string AllowStorno => "AllowStorno"; - public static string UseDistanceApi => "UseDistanceApi"; + public const string DienstplanungStandardZeilenAnzahl = "DienstplanungStandardZeilenAnzahl"; + public const string ShowMarker = "ShowMarker"; + public const string ShowAnnualReport = "ShowAnnualReport"; + public const string ShowCustomerDistanceFields = "ShowCustomerDistanceFields"; + public const string ShowAdditionalService = "ShowAdditionalService"; + public const string ShowRoundedDurationInEmployeeAnalysis = "ShowRoundedDurationInEmployeeAnalysis"; + public const string ShowDatevFields = "ShowDatevFields"; + public const string PrinterSettingsUseLandscape = "PrinterSettingsUseLandscape"; + public const string PrinterSettingsUseMargins = "PrinterSettingsUseMargins"; + public const string PrinterSettingsUsePaperKind = "PrinterSettingsUsePaperKind"; + public const string ShowRtfTextfield = "ShowRtfTextfield"; + public const string ShowEmployeeSignature = "ShowEmployeeSignature"; + public const string SchedulerViewType = "SchedulerViewType"; + public const string SchedulerTimelineViewDayCount = "SchedulerTimelineViewDayCount"; + public const string SchedulerDayViewDayCount = "SchedulerDayViewDayCount"; + public const string ShowMultipleResourceColors = "ShowMultipleResourceColors"; + + public const string AllowStorno = "AllowStorno"; + public const string AllowXRechnung = "AllowXRechnung"; + public const string UseDistanceApi = "UseDistanceApi"; // Keys Für die Web.config von Host - public static string FileRootDirectory => "FileRootDirectory"; + public const string FileRootDirectory = "FileRootDirectory"; - public static string ShowKlientenBetreuungszeiten => "ShowKlientenBetreuungszeiten"; - public static string ShowInfoButtonInCalender => "ShowInfoButtonInCalender"; - public static string ShowHilfeplanStatistikReport => "ShowHilfeplanStatistikReport"; - public static string ShowAI => "ShowAI"; - public static string ShowAIInternal => "ShowAIInternal"; + public const string ShowKlientenBetreuungszeiten = "ShowKlientenBetreuungszeiten"; + public const string ShowInfoButtonInCalender = "ShowInfoButtonInCalender"; + public const string ShowHilfeplanStatistikReport = "ShowHilfeplanStatistikReport"; + public const string ShowAI = "ShowAI"; + public const string ShowAIInternal = "ShowAIInternal"; - public static string MoKSessionTimeout => "MoKSessionTimeout"; + public const string MoKSessionTimeout = "MoKSessionTimeout"; - public static string FilterGroupServiceCategories => "FilterGroupServiceCategories"; + public const string FilterGroupServiceCategories = "FilterGroupServiceCategories"; - public static string AllowGkvAbrechnung => "AllowGkvAbrechnung"; - public static string ShowWohnhilfe => "ShowWohnhilfe"; - public static string ShowVorlagen => "ShowVorlagen"; - public static string ShowMitarbeiterSchwerbehindertenInfos => "ShowMitarbeiterSchwerbehindertenInfos"; - public static string ShowImportAbschlagszahlungen => "ShowImportAbschlagszahlungen"; + public const string AllowGkvAbrechnung = "AllowGkvAbrechnung"; + public const string ShowWohnhilfe = "ShowWohnhilfe"; + public const string ShowVorlagen = "ShowVorlagen"; + public const string ShowMitarbeiterSchwerbehindertenInfos = "ShowMitarbeiterSchwerbehindertenInfos"; + public const string ShowImportAbschlagszahlungen = "ShowImportAbschlagszahlungen"; - public static string ShowPersehImport => "ShowPersehImport"; + public const string ShowPersehImport = "ShowPersehImport"; - public static string DontUpdateApprovalPeriodDates => "DontUpdateApprovalPeriodDates"; + public const string DontUpdateApprovalPeriodDates = "DontUpdateApprovalPeriodDates"; // Keys für das neue Kalendermodul - public static string SchedulingViewType => "SchedulingViewType"; + public const string SchedulingViewType = "SchedulingViewType"; - public static string ShowGkvBzEinzel => "ShowGkvBzEinzel"; - public static string ShowGkvBzUrbelege => "ShowGkvBzUrbelege"; + public const string ShowGkvBzEinzel = "ShowGkvBzEinzel"; + public const string ShowGkvBzUrbelege = "ShowGkvBzUrbelege"; - public static string ShowServicesOverviewHalfOrWholeMonth => "ShowServicesOverviewHalfOrWholeMonth"; - public static string OpenReportInNewWindow => "OpenReportInNewWindow"; + public const string ShowServicesOverviewHalfOrWholeMonth = "ShowServicesOverviewHalfOrWholeMonth"; + public const string OpenReportInNewWindow = "OpenReportInNewWindow"; + + public const string HidePrintQBPopup = "HidePrintQBPopup"; /// /// Aktiviert AI Module