Timekeepings
Diese Seite ist unvollständig und noch in Bearbeitung.
Ein Timekeeping ist ein Ereignis innerhalb des Arbeitszeiterfassungssystems.
Inhaltsverzeichnis
Entwicklernotizen
Ein Timekeeping ist ein Ereignis innerhalb des Arbeitszeiterfassungssystems. Im konkreten Fall kann der Mitarbeiter zum Beispiel "Arbeit Beginn" und "Arbeit Ende" stempeln (über unsere Station, die MAE o.ä.). Es ist hervorzuheben, dass diese Ereignisse nur einen Zeitpunkt repräsentieren, also keine Aussage über die Dauer bieten.
Aufbau
event
Ein Timekeeping ist neben seinem Zeitpunkt vor allem auch durch seinen Typ charakterisiert (z.B. "Arbeit", "Pause" etc.) und seinen Zustand (z.B. "Start" oder "Stop"). Diese beiden Sachen sind zusammen im "event"-Attribut des Timekeepings als String gespeichert (z.B. "work_start" oder "break_stop"). Zur besseren Verarbeitung dieser hat das Timekeeping intern zwei Structs definiert: "EventState" und "EventType" und über die getter-Funktionen eventType() und eventState() lässt sich für jedes Timekeeping der entsprechende Wert abfragen.
timestamps
Alle Timestamps aus dem XML sind in UTC-Zeit und müssen auch so wieder an den webservice übergeben werden. Dazu gehören
- created_at - Zeitpunkt der Erstellung in der Datenbank
- updated_at - Zeitpunkt der letzten Aktualisierung in der Datenbank
- user_timestamp - Zeitpunkt an dem der Benutzer/Mitarbeiter das Ereignis abgeschickt/gestempelt hat
- telematik_timestamp - Zeitpunkt an dem das entsprechende Telematik-System das Ereignis rausgeschickt hat
Der im OSCpc üblicherweise zu nutzende Timestamp ist der user_timestamp.
Da die Zeitstempel sehr oft und überall abgefragt werden existiert im Objekt eine Art Caching und es wird dringend geraten die userTimestamp(...) Funktion zu benutzen. Sie gibt eine QDateTime Referenz zurück. Ihr erster Parameter legt fest ob man die Zeit in lokaler oder UTC-Zeit(default) möchte. Ihr zweiter Parameter, ob eine den eingestellten Aufrundungsregeln entsprechend veränderter Zeitstempel geliefert werden soll oder nicht(default).
Zum Setzen des user_timestamps existiert die setUserTimestampUTC(...) Funktion die einen korrekt formatierten Zeitstempel als QString erfordert. Z.B. durch
QString isoFrom = from.toUTC().toString(Qt::ISODate); // QDateTime from;
Sonstiges
- coworker_uuid - Der Mitarbeiter zu dem das Ereignis gehört
- garmin_uuid - Optional - Der Garmin von dem das Ereignis gesendet wurde.
- system_uuid - Optional - Das Fahrzeug von dem das Ereignis gesendet wurde.
- world_x, world_y, map_text - Wenn vorhanden Koordinaten und die dafür gefundene Adresse an dem das Ereignis gestempelt wurde.
Erweiterte Timekeepings - CombinedTimekeeping
Um
Folgende Ereignistypen sind in der Datenbank definiert und können vom Timekeeping angenommen werden
- work_start, work_stop (Arbeit)
- private_start, private_stop (Privat)
- driver_start, driver_stop (Fahrer)
- break_start, break_stop (Pause)
- customer_start, customer_stop (Kunde)
- waiting_start, waiting_stop (Wartend)
- holiday_start, holiday_stop (Urlaub)
- ill_start, ill_stop (Krankheit)
- alert (Alarm)
- function_1, function_2, function_3 (Funktion 1-3)
- garmin_id_1, garmin_id_2, garmin_id_3, garmin_id_4, garmin_id_5, garmin_id_6, garmin_id_7, garmin_id_8, garmin_driver_id
Beispiel des XML eines Timekeepings
<timekeeping generated-at="2013-07-02T17:30:37Z"> <world-x type="float">9.290938</world-x> <world-y type="float">49.077442</world-y> <remarks nil="true"/> <created-at type="datetime">2013-07-02T17:24:36Z</created-at> <system-uuid type="string">90DB8C71-297D-4F34-A3AB-B3840DCC42B3</system-uuid> <user-timestamp type="datetime">2013-07-02T17:24:36Z</user-timestamp> <uuid type="string">44D3611E-E33C-11E2-9064-12314303963F</uuid> <updated-at type="datetime">2013-07-02T17:24:36Z</updated-at> <garmin-uuid type="string">D89BE2ED-82F8-43E1-BB3E-3FFE32ED9A0C</garmin-uuid> <telematik-timestamp type="datetime">2013-07-02T17:24:28Z</telematik-timestamp> <event type="string">garmin_id_3</event> <coworker-uuid type="string">5906DB16-6D11-4ECF-AA09-CC35EC88C406</coworker-uuid> <description nil="true"/> <map-text type="string"> Staat: DE Land: Baden-Württemberg Landkreis: Heilbronn Postleitzahl: 74232 Stadt: Abstatt Strasse: Etrastraße 2 </map-text> </timekeeping>