diff --git a/Service/ServiceImplementations/EmployeeServiceImp.cs b/Service/ServiceImplementations/EmployeeServiceImp.cs index 715877096..430440cf8 100644 --- a/Service/ServiceImplementations/EmployeeServiceImp.cs +++ b/Service/ServiceImplementations/EmployeeServiceImp.cs @@ -2019,19 +2019,22 @@ namespace BeWo.Service.ServiceImplementations } } // Wenn eine Behinderung von mind. 50 vorliegt stehen standardmäßig 5 Sonderurlaubstage zu - if (emp.AusweisGueltigVon.HasValue && emp.AusweisGueltigVon.Value.Year >= contract.EntryDate.Value.Year && emp.AusweisGueltigVon.Value.Year <= emp.AusweisGueltigVon.Value.Year || - emp.AusweisGueltigBis.HasValue && emp.AusweisGueltigBis.Value.Year >= contract.EntryDate.Value.Year && emp.AusweisGueltigBis.Value.Year <= emp.AusweisGueltigBis.Value.Year) + if (contract != null && contract.EntryDate.HasValue && contract.ContractEndDate.HasValue) { - if (emp.GradDerBehinderung.IsNotNullOrEmpty()) + if (emp.AusweisGueltigVon.HasValue && emp.AusweisGueltigVon.Value.Year >= contract.EntryDate.Value.Year && emp.AusweisGueltigVon.Value.Year <= emp.AusweisGueltigVon.Value.Year || + emp.AusweisGueltigBis.HasValue && emp.AusweisGueltigBis.Value.Year >= contract.EntryDate.Value.Year && emp.AusweisGueltigBis.Value.Year <= emp.AusweisGueltigBis.Value.Year) { - int.TryParse(emp.GradDerBehinderung, out int grad); - if (grad >= 50) + if (emp.GradDerBehinderung.IsNotNullOrEmpty()) { - // TODO Anteilig berechnen, (wenn Behinderung erst im Berechnungsjahr beginnt nur die "aktiven" Monate anrechnen und ab + int.TryParse(emp.GradDerBehinderung, out int grad); + if (grad >= 50) + { + // TODO Anteilig berechnen, (wenn Behinderung erst im Berechnungsjahr beginnt nur die "aktiven" Monate anrechnen und ab - // Wenn keine Anzahl der wöchentlichen Arbeitstage gesetzt ist, 5 Tage - // Sonst Anzahl der wöchentlichen Arbeitstage (gesdetzlich so geregelt) - sonderurlaub.Add("Sonderurlaub aufgrund von Behinderungsgrad über 50", 5); + // Wenn keine Anzahl der wöchentlichen Arbeitstage gesetzt ist, 5 Tage + // Sonst Anzahl der wöchentlichen Arbeitstage (gesdetzlich so geregelt) + sonderurlaub.Add("Sonderurlaub aufgrund von Behinderungsgrad über 50", 5); + } } } }