0

Fehler Abwesenheitsplaner Statistik

Wenn ich einen Urlaub eintrage wird der letzte Tag immer doppelt eingetragen und die Statistik zeigt immer +1 Tag. Eine Idee, woran das liegen kann?

1 Antwort

null
    • Frank_Bauer.2
    • vor 5 Tagen
    • Gemeldet - anzeigen

    gelöst:

    delete (select Statistik);
    do as transaction
        for i in select 'Alle Abwesenheiten' do
            let firstDate := i.'Erster Tag';
            let lastDate := i.'Letzter Tag';
            if firstDate = lastDate then
                let new := (create Statistik);
                new.(Datum := firstDate);
                new.(Abwesenheitsart := i.Abwesenheitsart);
                if i.Dauer != 1 then
                    new.('Halber Tag' := true)
                end
            else
                let new := (create Statistik);
                new.(Datum := firstDate);
                new.(Abwesenheitsart := i.Abwesenheitsart);
                if i.'Dauer erster Tag' != 1 then
                    new.('Halber Tag' := true)
                end;
                firstDate := date(year(firstDate), month(firstDate), day(firstDate) + 1);
                while firstDate < lastDate do 
                    if weekday(firstDate) < 5 and cnt(select Feiertage where Datum = firstDate) = 0 then
                        let new := (create Statistik);
                        new.(Datum := firstDate);
                        new.(Abwesenheitsart := i.Abwesenheitsart)
                    end;
                    firstDate := date(year(firstDate), month(firstDate), day(firstDate) + 1)
                end
    ;
                let new := (create Statistik);
                new.(Datum := lastDate);
                new.(Abwesenheitsart := i.Abwesenheitsart);
                if i.'Dauer letzter Tag' != 1 then
                    new.('Halber Tag' := true)
                end
            end
        end
    end;
    'Zuletzt aktualisiert am' := now()