Tagessalden mit Pausenregelungen verrechnen
Hallo zusammen,
ich hab gerade wieder ein kleines Problemchen.
Ich habe pro Mitarbeiter Feld Datum / Uhrzeit, dass das "Kommen" erfasst und ein zweites Feld fürs " Gehen"
die Zeit dazwischen als anwesenden Tagessaldo berechne ich über timeinterval(round(number('gegangen_Datum + Uhrzeit' - 'gekommen_Datum + Uhrzeit'), -3))
funktioniert einwandfrei, aber!!! :D jetzt der clou
wie sag ich dem denn jetzt, wenn der Mitarbeiter über 6h gearbeitet hat, dann zieh mir doch bitte von dem Saldo eine halbe Stunde ab, bzw., wenn er über 9h kommt, dann doch bitte die dreiviertelste Stunde
In einem zweiten Schritt möchte ich dann gerne noch ermitteln, ob er trotz Pausenabzug über seine täglich zu erreichenden ( bspw.) 8h kam, wenn ja, kann er ab alles über einer vollen halben stunde drüber ( also ab 8,5 nach Abzug der Pause!) einen Antrag auf Überstunden beim Vorgesetzten stellen
nur wie löst man das am einfachsten?
5 Antworten
-
Hallo, kannst du mal eine Demodatei schicken, ich habe eine Zeiterfassung für meine MA , denke dass wir da fast gleich sind, vielleicht kann ich helfen.
-
nein, kann keine Demo-Datenbank schicken, weil wir die restlichen Personaldaten schon live drin haben. Tut mir leid. Für nochmal neu bsphaft erzeugen fehlt mir die Zeit.
hier mal ein paar Bilder, vllt helfen die ja schon, denn ich hab wie gesagt noch so gar keine Idee wie ich das formelmäßig umsetze
Ich hab eine Tabelle Anwesenheit, bei der pro Tag ein Datensatz für den Mitarbeiter erzeugt wird, darunter eine Untertabelle Tagesbuchungen, weil der gleiche Mitarbeiter ja mehrfach am Tag kommen und gehen kann
pro Tagesbuchung rechnet er gerade das Zeitintervall zwischen kommen / gehen und bildet es im Feld Arbeitszeit ab
Arbeitszeit := timeinterval(round(number('gegangen_Datum + Uhrzeit' - 'gekommen_Datum + Uhrzeit'), -3))
Auf der übergeordnetes Tagesseite in der Tabelle Anwesenheit bildet er dann die Summe aus allem Arbeitszeiten
Tagessaldo_ges := sum(Tagesbuchungen.Arbeitszeit)
und jetzt müsst ich eben sagen, wenn die Summe aus allen Arbeitszeiten >5 ist, dann zieh mir bitte 0,5 ab (mit 6 und 9, was ich eingangs geschrieben habe, wurde heute wieder revidiert, alle die länger als 5h da sind, sollen die halbe Stunde Pause auch machen, und daher abgezogen bekommen)
-
andere ... gaaanz blöde idee :D wenn ich Tagessaldo_ges := sum(Tagesbuchungen.Arbeitszeit) -1800000 rechne, zieht er mir augenscheinlich ne halbe stunde ab, ist des humbuck? oder funktioniert das tatsächlich immer so?
-
also ich habs jetzt so ... augenscheinlich funktioniert es
let mycomment := "22000000 sind 6 Arbeitsstunden; 1800000 ist eine halbe Stunde; 32400000 sind 9 Arbeitsstunden ; 2723000 sind 45 min";
if sum(Tagesbuchungen.Arbeitszeit) > 22000000 then
sum(Tagesbuchungen.Arbeitszeit) - 1800000
else
if sum(Tagesbuchungen.Arbeitszeit) > 32400000 then
sum(Tagesbuchungen.Arbeitszeit) - 2723000
else
sum(Tagesbuchungen.Arbeitszeit)
end
endeine Bestätigung ob das der richtige Weg und Ansatz ist, wäre allerdings schön :D
-
gerade noch was anderes gefunden, so ists vllt geschickter oder?
if sum(Tagesbuchungen.Arbeitszeit) > timeinterval(time(6, 0)) then
sum(Tagesbuchungen.Arbeitszeit) - timeinterval(time(0, 30))
else
if sum(Tagesbuchungen.Arbeitszeit) > timeinterval(time(9, 0)) then
sum(Tagesbuchungen.Arbeitszeit) - timeinterval(time(0, 45))
else
sum(Tagesbuchungen.Arbeitszeit)
end
end
Content aside
- vor 4 WochenZuletzt aktiv
- 5Antworten
- 36Ansichten
-
2
Folge bereits