Timekeepings: Unterschied zwischen den Versionen

Aus ARTECO Wiki
Zur Navigation springen Zur Suche springen
Zeile 11: Zeile 11:
 
=== timestamps ===
 
=== timestamps ===
 
Alle Timestamps aus dem XML sind in UTC-Zeit und müssen auch so wieder an den webservice übergeben werden. Dazu gehören
 
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
+
* '''created_at''' - Zeitpunkt der Erstellung in der Datenbank
* updated_at - Zeitpunkt der letzten Aktualisierung 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
+
* '''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
+
* '''telematik_timestamp''' - Zeitpunkt an dem das entsprechende Telematik-System das Ereignis rausgeschickt hat
  
Der im OSCpc üblicherweise zu nutzende Timestamp ist der user_timestamp.
+
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).
 
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).

Version vom 2. Juli 2013, 17:56 Uhr

!!! ACHTUNG - IN ARBEIT !!!
Diese Seite ist unvollständig und noch in Bearbeitung.



Ein Timekeeping ist ein Ereignis innerhalb des Arbeitszeiterfassungssystems.

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).

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>
 

Sub 1

Sub 2