REST-API

Die clockodo-API ermöglicht die Anbindung von clockodo an andere Systeme. Rechnungs- und Projektmanagement-Anwendungen oder eigene Shell-Skripte sind Beispiele für nützliche Mash-Ups mit clockodo.

api/userreports: Mitarbeiterberichte auslesen

Über diese Ressource können Sie alle Informationen auslesen, die Sie aus den Mitarbeiterberichten von clockodo kennen.

Dies sind alle Details der Mitarbeiter-Stundenkonten bishin zu den Soll- und Ist-Stunden zu jedem einzelnen Tag, aber auch der Status der Urlaubskonten.


Objekttyp „userreport“

Bitte beachten Sie, dass der Objekttyp "userreport" in seiner Eigenschaft "month_details" ein Array von weiteren Objekten des Typs "userreport_month" enthalten kann, sodass sich eine verschachtelte Array-Struktur ergibt.

Vergleichen Sie dazu auch dieses Beispiel einer Rückgabe.

Parameter Typ Beschreibung
users_id integer Die ID des zugehörigen Mitarbeiters
users_name string Name des zugehörigen Mitarbeiters
sum_target integer Soll-Arbeitszeit für das Jahr (in Sekunden)
sum_hours integer Geleistete Arbeitszeit im Jahr (in Sekunden)
sum_reduction integer Summe abgefeierter Überstunden (in Sekunden)
overtime_carryover integer Überstundenübertrag der für das Jahr gilt (in Sekunden)
overtime_reduced integer Für das Jahr gestrichende Überstunden (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
holidays_quota float Urlaubskontingent
holidays_carry float Urlaubsübertrag der für das Jahr gilt
holidays_used float Anzahl genutzter Urlaubstage aus dem Kontingent
special_holidays float Anzahl Tage Sonderurlaub
sickdays float Anzahl Krankheitstage
month_details Array von Objekten des Typen "userreport_month" Nur wenn Monatsdetails angefragt werden

Objekttyp „userreport_month“

Dieser Objekttyp wird innerhalb der Eigenschaft "month_details" im Hauptobjekt vom Typ "userreport" verwendet.

Parameter Typ Beschreibung
nr integer Monatsnummer (1 bis 12)
sum_target integer Soll-Arbeitszeit (in Sekunden)
sum_hours integer Geleistete Arbeitszeit (in Sekunden)
sum_hours_without_ compensation integer Geleistete Arbeitszeit bei Ignorierung monatsweiser automatischer Kompensierung (in Sekunden)
sum_reduction integer Summe abgefeierter Überstunden (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
week_details Array von Objekten des Typen "userreport_week" Nur wenn Wochendetails angefragt werden

Objekttyp „userreport_week“

Dieser Objekttyp wird innerhalb der Eigenschaft "week_details" im Objekt vom Typ "userreport_month" verwendet.

Parameter Typ Beschreibung
nr integer Wochennummer nach ISO 8601
sum_target integer Soll-Arbeitszeit (in Sekunden)
sum_hours integer Geleistete Arbeitszeit (in Sekunden)
sum_reduction integer Summe abgefeierter Überstunden (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
day_details Array von Objekten des Typen "userreport_day" Nur wenn Tagesdetails angefragt werden

Objekttyp „userreport_day“

Dieser Objekttyp wird innerhalb der Eigenschaft "day_details" im Objekt vom Typ "userreport_week" verwendet.

Parameter Typ Beschreibung
date string Datum
weekday integer Nummer, welchen den Wochentag identifiziert
nonbusiness boolean Ist der Tag ein Feiertag?
count_sick float Abwesenheit wegen Krankheit an diesem Tag (0, 0.5 oder 1)
count_regular_holidays float Genutzter regulärer Urlaub (aus dem Kontingent) für diesen Tag (0, 0.5 oder 1)
count_special_leaves float Genutzter Sonderurlaub an diesem Tag (0, 0.5 oder 1)
count_holidays float Genutzter regulärer Urlaub (aus dem Kontingent) oder Sonderurlaub an diesem Tag (0, 0.5 oder 1) = "count_regular_holidays" + "count_special_leaves"
count_ot_reduction integer Summe des Überstundenabbaus für diesen Tag (in Sekunden)
target integer Soll-Arbeitszeit (in Sekunden)
target_raw integer Soll-Arbeitszeit die sich ergeben hätte, wenn diese nicht durch einen Feiertag oder eine Abwesenheit (Urlaub, Überstundenabbau, ...) reduziert worden wäre (in Sekunden)
hours integer Geleistete Arbeitszeit (in Sekunden)
hours_without_ compensation integer Geleistete Arbeitszeit bei Ignorierung tageweiser automatischer Kompensierung (in Sekunden)
diff integer Errechnete Differenz des Stundenkontos (in Sekunden)
work_start string Beginn der Arbeitszeit im Format "YYYY-MM-DD HH:II:SS" Nur falls der Berichtstyp „4“ angefragt wird
work_end string Ende der Arbeitszeit im Format "YYYY-MM-DD HH:II:SS" Nur falls der Berichtstyp „4“ angefragt wird
breaks array Durchgeführte Pausen (Unter-Array-Schlüssel: [string] since, [string] until, [integer] length) Nur falls der Berichtstyp „4“ angefragt wird

Berichte zu allen Mitarbeitern abrufen

Anfrage
GET /api/userreports
Notwendige Parameter year (integer)
Optionale Parameter type 0: Es werden nur Kennzahlen zum Jahr ausgegeben (default)
1: Es werden auch Kennzahlen zu Monaten ausgeben
2: Es werden auch Monats-und Wochen-Kennzahlen ausgeben
3: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben
4: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben, sowie tageweise die Beginn- und Endzeit der Arbeit und Pausen
Antwort
{
  "userreports": 
  [
    [object of type userreport],
    [object of type userreport], 
    ...
  ]
}
Beispielhafte verschachtelte Antwort bei Nutzung der vollen Details (Anfragetyp 3):
{
  "userreports": 
  [
    {
      'id' : 123,
      'name': 'Max Mustermann',
      'sum_target': 1419,
      ...
      'month_details' : 
      [
      	{
          'nr': 1,
          'sum_target': 142,
          ...,
          'week_details': 
          [
            {
              'nr': 1,
              'sum_target': 40,
              ...
              'day_details': 
              [
                {
                  'date': '2016-01-01',
                  'weekday': 5,
                  ...
                },
                {
                  'date': '2016-01-01',
                  'weekday': 6,
                  ...
                },
                ...
                [WEITERE TAGE DER WOCHE]
              ]
            },
            {
              'nr': 2,
              'sum_target': 40,
              ...
              'day_details': 
              [
                {
                  'date': '2016-01-04',
                  'weekday': 1,
                  ...
                },
                {
                  'date': '2016-01-05',
                  'weekday': 2,
                  ...
                },
                ...
                [WEITERE TAGE DER WOCHE]
              ]
            },
            ... 
            [WEITERE WOCHEN]
          ]
      	},
      	...
      	[WEITERE MONATE]
      ]
    },
    ...
    [WEITERE BERICHTE ZU MITARBEITERN]
  ]
}

Mitarbeiterbericht zu einem einzelnen Mitarbeiter abrufen

Anfrage
GET /api/userreports/[Users-ID]
Notwendige Parameter year (integer)
Optionale Parameter type 0: Es werden nur Kennzahlen zum Jahr ausgegeben (default)
1: Es werden auch Kennzahlen zu Monaten ausgeben
2: Es werden auch Monats-und Wochen-Kennzahlen ausgeben
3: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben
4: Es werden auch Monats-, Wochen- und Tageskennzahlen ausgegeben, sowie tageweise die Beginn- und Endzeit der Arbeit und Pausen
Antwort
{
  "userreport": [object of type userreport]
}

Vergleichen Sie hierzu auch die weiteren Erklärungen im Bereich "Berichte zu allen Mitarbeitern abrufen".