Abwesenheitsberechnung gefixt

(mit CB, hat bei Abw. von 18.7. - 1.8. auf QB 1.8. - 31.7. mit 0 Tagen augegeben :)
This commit is contained in:
2024-09-04 18:46:37 +02:00
parent 1b8e7d4688
commit 62d6c8fdab

View File

@@ -1209,50 +1209,39 @@ namespace BeWo.Report.ReportObjects
atTemp.End = atDb.End;
atTemp.AbsenceReason = reasonTemp;
bool cont = !(atTemp.Start != null && atTemp.Start > span.EndDateTime);
bool addToList = (
!atTemp.AbsenceReason.Description.ToLower().Contains("urlaub") &&
atTemp.AbsenceReason.BillableMinutes.HasValue && atTemp.AbsenceReason.BillableMinutes.Value > 0);
if (cont && atTemp.End != null && atTemp.End < span.StartDateTime)
if (atTemp.Start.HasValue)
{
cont = false;
}
if (atTemp.AbsenceReason.Description.ToLower().Contains("urlaub"))
{
cont = false;
atTemp.Start = atTemp.Start.Value.AddDays(1);
}
if (cont && atTemp.AbsenceReason.BillableMinutes.HasValue && atTemp.AbsenceReason.BillableMinutes.Value > 0)
if (atTemp.End.HasValue)
{
if (atTemp.Start.HasValue)
{
atTemp.Start = atTemp.Start.Value.AddDays(1);
}
if (atTemp.End.HasValue)
{
atTemp.End = atTemp.End.Value.AddDays(-1);
}
atTemp.End = atTemp.End.Value.AddDays(-1);
}
if (cont)
// Prüfe ob Datum der Abwesenheit innerhalb des ausgewählten Belegzeitraums liegt
if (addToList && ((atTemp.End.HasValue && atTemp.End < span.StartDateTime) || (atTemp.Start.HasValue && atTemp.Start > span.EndDateTime)))
{
addToList = false;
}
if (addToList)
{
if (atTemp.Start.HasValue && atTemp.End.HasValue)
{
var td = atTemp.End.Value.Subtract(atTemp.Start.Value).TotalDays;
if (td < 0)
{
cont = false;
addToList = false;
}
}
}
if (cont)
if (addToList)
{
lResult.Abwesenheiten.Add(atTemp);
if (sb.Length > 0)
{