Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#1

Arbeitszeit - Summe Sollstunden

  Alt 2. Dez 2016, 20:12
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Liebe Delphi-Gemeinde,

Ich richte mich wieder mit einem Problem an euch und bin mir sicher, dass ihr mir auf die richtigen Sprünge helfen könnt. Wie der Titel bereits vermuten lässt, möchte ich für meinen Betrieb eine kleine Zeiterfassung programmieren. Es soll sich dabei nicht um ein professionelles System handeln (wenn es mal eines wird ist es nicht schlimm ) sondern soll mir lediglich einen groben Überblick über den aktuellen Status meiner Mitarbeiter vermitteln. Gelogged wird morgens das erscheinen und abends das gehen. Schichten etc. gibt es nicht - die Ausgangslage ist also erstaunlich einfach. Da es trotzdem mehrere Zeitmodelle für verschiedenes Personal gibt (unter anderem Teilzeit) habe ich die folgende Tabellen (gekürzt auf das nötigste und Tabellennamen der Einfachheit halber teilweise geändert - das tut aber nichts zur Sache):

Tabelle Mitarbeiter: id, Name, Zeitmodell
Tabelle Zeitmodell-Detail: id, DadOfWeek, Arbeitsstunden, fk_zeitmodell
Tabelle Zeitmodell: id, Beschreibung
Tabelle Logs: id, fk_mitarbeiter, StartDate, StartTime, EndTime, MinutesWorked (berechnet)

Das wäre die Ausgangssituation vereinfacht ausgedrückt.

Mein Problem ist folgendes: ich möchte die Soll-Arbeitszeit im Monat x für das Zeitmodell y berechnen. Dazu müsste ich quasi die Tage (genauer DayOfWeek) zB 1.12.17-31.12.17 mit den in Zeitmodell-Details hingelegten Daten (Arbeitsstunden) summieren. Aber ich habe keine Tabelle in welcher die Tage 1.12.17...31.12.17 hingelegt sind - sonst könnte man dies ja ganz einfach über einen Join und SUM lösen. Geht das über eine StoredProc? Damit habe ich leider überhaupt keine Erfahrung. In einem ehemaligen Programm (Dienstplaner) habe ich es quick&dirty so gelöst, dass zunächst im Programm geprüft wird ob der Monat x schon existiert und ggf. angelegt wird (das heißt ich hatte hier eine Tabelle mit den einzelnen Tagen des entsprechenden Monats und konnte schön mittels Joins arbeiten).

Zweites Problem (welches sich vielleicht alleine über Problem 1 klärt, daher hier im Thread gestellt) ist das herausfinden eines Fehltages eines Mitarbeiters. Natürlich kann man einen Fehlgrund eintragen - aber man kann es auch vergessen. Das heißt die Spalte Logs hätte dann für Mitarbeiter x an Tag y keinen Eintrag. Diese müsste man herausfinden können. Problem wie bei 1. - es fehlt eine Tabelle über die man über die Wochentage mittels Join verbinden kann. Dann wäre das kein Problem.

Ich hoffe ihr habt das Problem verstanden und könnt mir weiterhelfen verzeiht mir eventuelle Schreibfehler- ich schreibe gerade vom Handy aus und da spielt mir die Rechtschreibprüfung oft unschöne Streiche

Liebe Grüße und schönes Wochenende!
Michael Kübler
  Mit Zitat antworten Zitat