Neue Einstellungen in der Verwaltung:
- Start Mitarbeiterstundenkonto - Anzahl Tage in der die Arbeitszeiterfassung erfolgen muss
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -358,6 +358,8 @@
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="430" />
|
||||
@@ -494,33 +496,73 @@
|
||||
Content="{markup:Translate Enddatum anzeigen}"
|
||||
IsChecked="{Binding Path=IsEndDateVisible}" />
|
||||
|
||||
<TextBlock
|
||||
Grid.Row="10"
|
||||
Grid.Column="0"
|
||||
Margin="3,20,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Start Mitarbeiterstundenkonto}"
|
||||
TextWrapping="Wrap" />
|
||||
|
||||
<dxe:DateEdit
|
||||
x:Name="DateEditStartStundenkonto"
|
||||
Grid.Row="10"
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="2"
|
||||
Width="100"
|
||||
Height="23"
|
||||
Margin="3"
|
||||
HorizontalAlignment="Right"
|
||||
EditValue="{Binding StartStundenkonto}"
|
||||
MaskType="DateTimeAdvancingCaret" />
|
||||
|
||||
<CheckBox
|
||||
x:Name="EnableArbeitszeiterfassung"
|
||||
Grid.Row="10"
|
||||
Grid.Row="11"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,20,3,5"
|
||||
Margin="3,5,3,5"
|
||||
Checked="EnableArbeitszeiterfassung_Checked"
|
||||
Content="{markup:Translate Arbeitszeit mit BeWoPlaner erfassen}"
|
||||
IsChecked="{Binding Path=EnableArbeitszeiterfassung}"
|
||||
Unchecked="EnableArbeitszeiterfassung_Checked" />
|
||||
<CheckBox
|
||||
x:Name="EnableAutomaticPauses"
|
||||
Grid.Row="11"
|
||||
Grid.Row="12"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Automatischer Pausenabzug}"
|
||||
IsChecked="{Binding Path=EnableAutomaticPauses}" />
|
||||
<CheckBox
|
||||
x:Name="EnableRestTimeWarning"
|
||||
Grid.Row="12"
|
||||
Grid.Row="13"
|
||||
Grid.ColumnSpan="2"
|
||||
Margin="3,5,3,5"
|
||||
Content="{markup:Translate Warnung bei nicht einhalten der Ruhezeit}"
|
||||
IsChecked="{Binding Path=EnableRestTimeWarning}" />
|
||||
|
||||
<TextBlock
|
||||
x:Name="TextAnzTageArbeitszeiterfassungErfolgt"
|
||||
Grid.Row="14"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="Black"
|
||||
Text="{markup:Translate Anzahl Tage\, in der die Arbeitszeiterfassung getan werden muss (0 für unbegrenzt)}"
|
||||
TextWrapping="Wrap" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="SpinEditAnzTageArbeitszeiterfassungErfolgt"
|
||||
Grid.Row="14"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
EditValue="{Binding Path=AnzTageArbeitszeiterfassungErfolgt, Converter={StaticResource Int2DecimalConverter}}"
|
||||
IsFloatValue="False"
|
||||
MaxValue="999"
|
||||
MinValue="0" />
|
||||
<TextBlock
|
||||
x:Name="TextBlockShowWarning"
|
||||
Grid.Row="13"
|
||||
Grid.Row="15"
|
||||
Grid.Column="0"
|
||||
Margin="3,5,3,5"
|
||||
VerticalAlignment="Center"
|
||||
@@ -529,7 +571,7 @@
|
||||
TextWrapping="Wrap" />
|
||||
<dxe:SpinEdit
|
||||
x:Name="SpinEditShowWarning"
|
||||
Grid.Row="13"
|
||||
Grid.Row="15"
|
||||
Grid.Column="1"
|
||||
Height="23"
|
||||
Margin="3,5,3,5"
|
||||
|
||||
@@ -43,6 +43,8 @@ namespace BeWo.View.Detail
|
||||
EnableRestTimeWarning.Visibility = Visibility.Collapsed;
|
||||
TextBlockShowWarning.Visibility = Visibility.Collapsed;
|
||||
SpinEditShowWarning.Visibility = Visibility.Collapsed;
|
||||
TextAnzTageArbeitszeiterfassungErfolgt.Visibility = Visibility.Collapsed;
|
||||
SpinEditAnzTageArbeitszeiterfassungErfolgt.Visibility = Visibility.Collapsed;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -185,6 +187,8 @@ namespace BeWo.View.Detail
|
||||
EnableRestTimeWarning.IsEnabled = EnableArbeitszeiterfassung.IsChecked.HasValue && EnableArbeitszeiterfassung.IsChecked.Value;
|
||||
TextBlockShowWarning.IsEnabled = EnableArbeitszeiterfassung.IsChecked.HasValue && EnableArbeitszeiterfassung.IsChecked.Value;
|
||||
SpinEditShowWarning.IsEnabled = EnableArbeitszeiterfassung.IsChecked.HasValue && EnableArbeitszeiterfassung.IsChecked.Value;
|
||||
TextAnzTageArbeitszeiterfassungErfolgt.IsEnabled = EnableArbeitszeiterfassung.IsChecked.HasValue && EnableArbeitszeiterfassung.IsChecked.Value;
|
||||
SpinEditAnzTageArbeitszeiterfassungErfolgt.IsEnabled = EnableArbeitszeiterfassung.IsChecked.HasValue && EnableArbeitszeiterfassung.IsChecked.Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -319,6 +319,37 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int AnzTageArbeitszeiterfassungErfolgt
|
||||
{
|
||||
get { return BeWoApp.AppSettings.AnzTageArbeitszeiterfassungErfolgt; }
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(BeWoApp.AppSettings.AnzTageArbeitszeiterfassungErfolgt, value))
|
||||
{
|
||||
BeWoApp.AppSettings.AnzTageArbeitszeiterfassungErfolgt = value;
|
||||
|
||||
this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, SettingsKeys.AnzTageArbeitszeiterfassungErfolgt, value.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DateTime? StartStundenkonto
|
||||
{
|
||||
get { return BeWoApp.AppSettings.StartStundenkonto; }
|
||||
|
||||
set
|
||||
{
|
||||
if (this.AreDifferent(BeWoApp.AppSettings.StartStundenkonto, value))
|
||||
{
|
||||
BeWoApp.AppSettings.StartStundenkonto = value;
|
||||
|
||||
this.Settings = UserSettingsUtils.CreateNewSettingValue(this._Settings, SettingsKeys.StartStundenkonto, value != null ? String.Format("{0:dd.MM.yyyy}", value) : "null");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool EnableRestTimeWarning
|
||||
{
|
||||
get { return BeWoApp.AppSettings.EnableRestTimeWarning; }
|
||||
|
||||
@@ -972,7 +972,7 @@ namespace BeWo.ViewModel
|
||||
}
|
||||
}
|
||||
|
||||
if (allowed && BeWoApp.AppSettings.AnzTageZeiterfassErfolgt > 0)
|
||||
if (allowed && BeWoApp.AppSettings.AnzTageZeiterfassErfolgt > 0 && this.SupportConcept != null)
|
||||
{
|
||||
if (!BeWoApp.LoggedOnUser.HasRight(UserRightType.ServiceRecordAllowEditAfterMindays))
|
||||
{
|
||||
|
||||
@@ -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<ServiceRecord>();
|
||||
|
||||
@@ -151,7 +170,6 @@ namespace BeWo.Report.ReportObjects
|
||||
decimal azDurchFeiertage = 0;
|
||||
|
||||
IList<ServiceRecord> groupFilteredRecords = empDetail.AllServiceRecords;
|
||||
|
||||
if (groupFilteredRecords == null)
|
||||
{
|
||||
IList<ServiceRecord> 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<String, IList<ServiceRecord>> 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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,22 +53,27 @@ namespace BeWo.Service.Plugins
|
||||
|
||||
public virtual List<CompactTeamDC> GetAllTeamsCompact()
|
||||
{
|
||||
return GetAllTeamsCompact(false);
|
||||
}
|
||||
|
||||
|
||||
public virtual List<CompactTeamDC> GetAllTeamsCompact(bool includeOwnChat)
|
||||
{
|
||||
var teamDcs = new List<CompactTeamDC>();
|
||||
var loggedInUser = UserRightHelper.GetLoggedInUser();
|
||||
|
||||
if (Utils.UserHasRight(loggedInUser, UserRightType.TeamView_ViewAll))
|
||||
{
|
||||
return MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Team>());
|
||||
teamDcs = MapperFactory.CompactTeamDC_Team.MapToNewDCs(DAOFactory.GenericDAO.GetAllActive<Team>());
|
||||
}
|
||||
|
||||
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<CompactTeamDC>();
|
||||
return teamDcs.Where(t => includeOwnChat || !t.IsOwnChatTeam).ToList();
|
||||
}
|
||||
|
||||
//Für Main Navigation View
|
||||
public virtual List<CompactEmployeeDC> GetAllCompactEmployees()
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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";
|
||||
|
||||
/// <summary>
|
||||
/// Aktiviert AI Module
|
||||
|
||||
Reference in New Issue
Block a user