MH: Bugfix Sonderurlaub Schwerbehinderung

This commit is contained in:
2026-04-29 14:54:46 +02:00
parent 0eac0df5cf
commit 664e8bf15d

View File

@@ -2091,8 +2091,15 @@ namespace BeWo.Service.ServiceImplementations
// Wenn eine Behinderung von mind. 50 vorliegt stehen standardmäßig 5 Sonderurlaubstage zu
if (contract != null && (contract.EntryDate.HasValue && contract.ContractEndDate.HasValue || contract.EntryDate.HasValue && !contract.ContractEndDate.HasValue))
{
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)
var yearStart = new DateTime(berechnungsjahr, 1, 1);
var yearEnd = new DateTime(berechnungsjahr, 12, 31);
// Schnittmenge aus Vertrag + Ausweis
var overlapStart = contract.EntryDate > emp.AusweisGueltigVon ? contract.EntryDate : emp.AusweisGueltigVon;
var overlapEnd = (contract.ContractEndDate ?? DateTime.MaxValue) < emp.AusweisGueltigBis ? (contract.ContractEndDate ?? DateTime.MaxValue) : emp.AusweisGueltigBis;
// Jetzt prüfen: gibt es davon etwas im Jahr?
if (overlapStart <= overlapEnd && overlapStart <= yearEnd && overlapEnd >= yearStart)
{
if (emp.GradDerBehinderung.IsNotNullOrEmpty())
{