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)
sum_reduction_planned integer Summe an geplantem Überstundenabbau (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) Wird nicht für Tage in der Zukunft ausgegeben
hours_without_ compensation integer Geleistete Arbeitszeit bei Ignorierung tageweiser automatischer Kompensierung (in Sekunden) Wird nicht für Tage in der Zukunft ausgegeben
diff integer Errechnete Differenz des Stundenkontos (in Sekunden) Wird nicht für Tage in der Zukunft ausgegeben
work_start string Beginn der Arbeitszeit im Format "YYYY-MM-DD HH:II:SS" Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben
work_end string Ende der Arbeitszeit im Format "YYYY-MM-DD HH:II:SS" Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben
breaks array Durchgeführte Pausen (Unter-Array-Schlüssel: [string] since, [string] until, [integer] length) Nur falls der Berichtstyp „4“ angefragt wird; wird nicht für Tage in der Zukunft ausgegeben

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