MH: HwHilfswerkInklusionUndTeilhabe Standard umgekehrt
SupportOID=168831
This commit is contained in:
@@ -15,8 +15,9 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
{
|
||||
public class CustomMitarbeiterstundenkontoBerechnung : MitarbeiterstundenkontoBerechnung
|
||||
{
|
||||
// Keine Vertragsart ODER Vertragsart "Stationär": Nur Arbeitszeit soll erfasst werden, automatischer Pausenabzug
|
||||
// Bei Vertragsart "Ambulant": Alle Einträge zur Arbeitszeit zählen, kein Pausenabzug. Zusätzlich sollen an Feiertagen immer die Soll-Stunden gutgeschrieben werden
|
||||
// Claude: Vertragsart "Stationär": Nur Arbeitszeit soll erfasst werden, automatischer Pausenabzug
|
||||
// Alle anderen Verträge (inkl. keine/leere Vertragsart, ehemals nur "Ambulant"): Alle Einträge zur
|
||||
// Arbeitszeit zählen, kein Pausenabzug. Zusätzlich sollen an Feiertagen die Soll-Stunden gutgeschrieben werden
|
||||
|
||||
|
||||
public override bool ShouldCreateDayDetails()
|
||||
@@ -32,7 +33,7 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
dd.BreakMinutes = 30;
|
||||
dd.BreakMinutes2 = 15;
|
||||
|
||||
if (HatEmployeeAmbulantContract(ed.Employee.GetValidContractForDate(date)))
|
||||
if (IstNichtStationaer(ed.Employee.GetValidContractForDate(date)))
|
||||
{
|
||||
dd.MaxHoursUntilBreak = 0;
|
||||
dd.MaxHoursUntilBreak2 = 0;
|
||||
@@ -58,7 +59,7 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
|
||||
public override bool AddServiceRecordToDuration(StundenkontoServiceRecord item)
|
||||
{
|
||||
if (HatEmployeeAmbulantContract(item.Employee.GetValidContractForDate(item.Start)))
|
||||
if (IstNichtStationaer(item.Employee.GetValidContractForDate(item.Start)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -106,7 +107,7 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
if (item.ServiceDescription != null &&
|
||||
item.ServiceDescription.Category != null)
|
||||
{
|
||||
if (item.Employee != null && HatEmployeeAmbulantContract(item.Employee.GetValidContractForDate(item.Start)))
|
||||
if (item.Employee != null && IstNichtStationaer(item.Employee.GetValidContractForDate(item.Start)))
|
||||
{
|
||||
arbeitszeit += duration;
|
||||
if (item.ServiceDescription.Category.IsBillable)
|
||||
@@ -178,15 +179,15 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
}
|
||||
}
|
||||
|
||||
// Claude: Gutschrift-Stunden für einen Feiertag laut Vertrag; 0, wenn an dem Tag kein
|
||||
// Ambulant-Vertrag gilt oder keine Wochenstunden hinterlegt sind.
|
||||
// Claude: Gutschrift-Stunden für einen Feiertag laut Vertrag; 0, wenn an dem Tag ein
|
||||
// stationärer Vertrag gilt oder kein Vertrag/keine Wochenstunden hinterlegt sind.
|
||||
private decimal GetFeiertagsGutschriftStunden(Employee emp, DateTime tag)
|
||||
{
|
||||
if (emp == null)
|
||||
return 0;
|
||||
|
||||
var contract = emp.GetValidContractForDate(tag);
|
||||
if (!HatEmployeeAmbulantContract(contract))
|
||||
if (contract == null || !IstNichtStationaer(contract))
|
||||
return 0;
|
||||
|
||||
if (!contract.WeeklyTotalHours.HasValue || contract.WeeklyTotalHours.Value <= 0)
|
||||
@@ -222,15 +223,17 @@ namespace HwHilfswerkInklusionUndTeilhabe
|
||||
|
||||
#endregion
|
||||
|
||||
private bool HatEmployeeAmbulantContract(Contract contract)
|
||||
// Claude: Die (ehemals nur für "ambulant" geltende) Sonderlogik ist jetzt der Standard
|
||||
// und greift für alle Verträge - AUSSER die Vertragsart enthält "stationär".
|
||||
// Kein/leerer Vertrag oder keine Vertragsart gilt damit ebenfalls als "nicht stationär".
|
||||
private bool IstNichtStationaer(Contract contract)
|
||||
{
|
||||
bool ambulant = false;
|
||||
if (contract != null && contract.ContractTypeValueListEntry != null && contract.ContractTypeValueListEntry.Value.IsNotNullOrEmpty())
|
||||
{
|
||||
if (contract.ContractTypeValueListEntry.Value.ToLower().Contains("ambulant"))
|
||||
ambulant = true;
|
||||
if (contract.ContractTypeValueListEntry.Value.ToLower().Contains("stationär"))
|
||||
return false;
|
||||
}
|
||||
return ambulant;
|
||||
return true;
|
||||
}
|
||||
|
||||
// Im ZeitraeumeString soll die originale Endzeit dargestellt werden.
|
||||
|
||||
Reference in New Issue
Block a user