S
sideshow
Mitglied
Thread Starter
- Dabei seit
- 24.01.2005
- Beiträge
- 92
- Reaktionspunkte
- 0
Tach allerseits!
Eigentlich ist mein Problem eher ein Denkproblem oder mathematischer Natur, ich poste es einfach trotzdem mal!
Also, folgendes:
Ich habe für meinen Betrieb eine Browserbasierte Zeiterfassung geschrieben. Das Ganze sieht so aus das sich der User einloggt, Start- und Enzeit seiner Tätigkeit eingibt und er so einen Überblick über seine Arbeitszeit hat und der Chef kann alles leichter abrechnen.
Ich würde nun gerne die Überstunden die ein Angestellter erarbeitet hat anzeigen lassen. Ist ja auch so gesehen nicht so schwer. Ich habe in der Datenbank bei den Userdaten die Wochenarbeitszeit eines Users gespeichert - z.B. 39 Stunden.
Teile ich das durch 5 (Arbeitstage) bekomme ich die Soll-Zeit die ein Angestellter am Tag arbeiten sollte (7,8 Stunden). Nun lässt es sich leicht ausrechnen was wieviel Überstunden jemand am Tag hat.
Ich nehme jeden Zeiteintrag eines Users des Tages, errechne die Zeit die er insgesamt gearbeitet hab und somit hab ich Überstunden (oder eben auch nicht )
Das funktioniert auch ohne Probleme!
Jetzt zu meinem Problem:
Ich hätte das auch gerne für die gesamten Überstunden. Die Rechnungsgrundlage ist ja eigentlich die gleiche - nur das ich vorher sehen muss wieviel Tage der User gearbeitet hat (also wie viele in der DB als Eintrag da sind).
Also, sagen wir mal ein Angestellter hat fünf Tage gearbeitet (39 Stunden) - dann rechnet sich das recht leicht - nun aber zu meiner Problematik!
Angenommen der Angestelle ist ganz frisch in der Firma und schreibt den ersten Tag ins System und kommt prompt auf 10 Stunden. Dann hat er 10 - 7,8 = 2,2 Überstunden. Am Tag wie gesamt.
So, wenn ich jetzt aber einen Tag weiter springe (dann wird ja auch die Überstundenanzeige neu gerendert und berechnet).
Dann springt meine Überstundentagesanzeige auf 0 - soll sie ja auch und ist soweit OK.
Die Überstundengesamtanzeige steht weiterhin auf 2,2.
ABER: Trage ich jetzt die erste Tätigkeit ein - sagen wir von 8 Uhr bis 11 Uhr, dann fließt der Tag in die Berechnung mit ein und mein Zähler der Gesamtüberstunden springt wieder auf 0. Wenn ich ganz genau 7,8 (also die Tagesstunden) Stunden arbeite, dann bin ich nachher wieder bei 2,2 Überstunden. Arbeite ich auch an diesem Tag länger fließt das in die Überstundenberechnung mit ein.
Die Berechnung ist somit völlig korrekt, nur das auf NULL springen nervt mich.
Hat da jemand ne Idee wie man das lösen könnte?
Ich hoffe, ihr versteht mein Problem - schriftlich erklärt so ganz ohne Hintergrund und Grafiken ist das glaub ich nicht einfach! :/ Noch dazu erkläre ich so schlecht! ;D
Eigentlich ist mein Problem eher ein Denkproblem oder mathematischer Natur, ich poste es einfach trotzdem mal!
Also, folgendes:
Ich habe für meinen Betrieb eine Browserbasierte Zeiterfassung geschrieben. Das Ganze sieht so aus das sich der User einloggt, Start- und Enzeit seiner Tätigkeit eingibt und er so einen Überblick über seine Arbeitszeit hat und der Chef kann alles leichter abrechnen.
Ich würde nun gerne die Überstunden die ein Angestellter erarbeitet hat anzeigen lassen. Ist ja auch so gesehen nicht so schwer. Ich habe in der Datenbank bei den Userdaten die Wochenarbeitszeit eines Users gespeichert - z.B. 39 Stunden.
Teile ich das durch 5 (Arbeitstage) bekomme ich die Soll-Zeit die ein Angestellter am Tag arbeiten sollte (7,8 Stunden). Nun lässt es sich leicht ausrechnen was wieviel Überstunden jemand am Tag hat.
Ich nehme jeden Zeiteintrag eines Users des Tages, errechne die Zeit die er insgesamt gearbeitet hab und somit hab ich Überstunden (oder eben auch nicht )
Das funktioniert auch ohne Probleme!
Jetzt zu meinem Problem:
Ich hätte das auch gerne für die gesamten Überstunden. Die Rechnungsgrundlage ist ja eigentlich die gleiche - nur das ich vorher sehen muss wieviel Tage der User gearbeitet hat (also wie viele in der DB als Eintrag da sind).
Also, sagen wir mal ein Angestellter hat fünf Tage gearbeitet (39 Stunden) - dann rechnet sich das recht leicht - nun aber zu meiner Problematik!
Angenommen der Angestelle ist ganz frisch in der Firma und schreibt den ersten Tag ins System und kommt prompt auf 10 Stunden. Dann hat er 10 - 7,8 = 2,2 Überstunden. Am Tag wie gesamt.
So, wenn ich jetzt aber einen Tag weiter springe (dann wird ja auch die Überstundenanzeige neu gerendert und berechnet).
Dann springt meine Überstundentagesanzeige auf 0 - soll sie ja auch und ist soweit OK.
Die Überstundengesamtanzeige steht weiterhin auf 2,2.
ABER: Trage ich jetzt die erste Tätigkeit ein - sagen wir von 8 Uhr bis 11 Uhr, dann fließt der Tag in die Berechnung mit ein und mein Zähler der Gesamtüberstunden springt wieder auf 0. Wenn ich ganz genau 7,8 (also die Tagesstunden) Stunden arbeite, dann bin ich nachher wieder bei 2,2 Überstunden. Arbeite ich auch an diesem Tag länger fließt das in die Überstundenberechnung mit ein.
Die Berechnung ist somit völlig korrekt, nur das auf NULL springen nervt mich.
Hat da jemand ne Idee wie man das lösen könnte?
Ich hoffe, ihr versteht mein Problem - schriftlich erklärt so ganz ohne Hintergrund und Grafiken ist das glaub ich nicht einfach! :/ Noch dazu erkläre ich so schlecht! ;D