In der LINA Third Party API (TPAPI) können Arbeitszeiten und Personalkosten pro Zeit gelesen werden.
Nach der Freigabe für den Zugriff und erfolgreiche Anmeldung werden diese konfigurierten Daten zurück übermittelt oder beim Schreiben der Erfolg der Änderung gemeldet.
Der Aufruf für die LINA Data API ist geändert, die alte URL amadeus360 ist noch erreichbar. Bitte auf die neue URL umstellen. https://api.lina.de/ ...
Voraussetzung | Konfiguration | Ergebnis |
---|---|---|
Lizenzierung LINA | Endpunkt "Personal" | monatliche Buchung |
Client Schnittstelle | mit URI | Client-ID und Access-Token |
Client-Berechtigung | Daten lesen/schreiben | Lese- /Schreibberechtigung Client |
Scope | personal_read | |
Nutzer-Berechtigung | Anmeldung mit Benutzer | Abfrage der Daten mit den Berechtigungen des Benutzers |
Personaldaten allgemein
Um die Endpunkte der Personaldaten abzufragen lautet die Basis-URL personal wie folgt:
GET ... /extern/personal
Alle Daten können erst nach erfolgreicher Authentifizierung abgefragt werden. Antwort ist immer ein JSON-Objekt.
Die Berechnung der Effizienzen ist erst exakt, wenn die Schichtzeiten bestätigt sind.
API-Doku: https://documenter.getpostman.com/'id personal'
Personalkosten pro Stunde
Mit businessdate wird der Geschäftstag übergeben, vom Beginn bis zum Tagesabschluss (nicht Kalendertag)
Aufruf mit Datum:
GET ... /extern/personal/personalkostenprostunde?businessdate=25.11.2020
Beispiel-Antwort Tagesübersicht:
{ "eff": { "12": 1, "13": 1, "14": 1, "15": 1, "19": 1, "20": 1, "21": 1, "22": 1, "23": 1, "0": 1, "1": 1 }, "kost": { "12": 11.09, "13": 11.09, "14": 11.09, "15": 11.09, "19": 11.09, "20": 0, "21": 0, "22": 0, "23": 0, "0": 0, "1": 0 }, "kostUser": { "12": [ 11.09 ], "13": [ 11.09 ], "14": [ 11.09 ], "15": [ 11.09 ], "19": [ 11.09 ], "20": [ 0 ], "21": [ 0 ], "22": [ 0 ], "23": [ 0 ], "0": [ 0 ], "1": [ 0 ] } }
Personalkosten pro Tag und Mitarbeiter
Aufruf Tag:
GET ... /extern/personal/personalkostenprotag?businessdate=25.11.2020
Beispiel-Antwort Tag:
[ { "h_brutto": 9, "h_zuschl_25": 4, "h_zuschl_40": 1, "h_zuschl_50": 0, "brutto": 82.71, "lohnkosten": 300.66 } ]
Arbeitszeiten pro Tag und Mitarbeiter
Aufruf:
GET ... /extern/personal/acceptedworkingtimes?businessdate=25.11.2020
Beispiel-Antwort Mitarbeiter:
[ { "von": 1606474800, "bis": 1606485600, "von2": 1606500000, "bis2": 1606521600, "pause": 0, "tage": 0, "bereich": 1 } ]
Komplettdaten pro User und Tag
Aufruf:
GET ... /extern/personal/userdataperday?businessdate=25.11.2020
Beispiel-Antwort Zeiten und Kosten:
[ { "von": 1606476600, "bis": 1606485600, "von2": 1606500000, "bis2": 1606523400, "pause": 0, "tage": 0, "bereich": 1, "h_brutto": 9, "h_zuschl_25": 4, "h_zuschl_40": 1.5, "h_zuschl_50": 0, "brutto": 82.71, "lohnkosten": 111.22, "stundenkosten": { "12": 5.54, "13": 11.09, "14": 11.09, "15": 11.09, "19": 11.09, "20": 13.39, "21": 13.39, "22": 13.39, "23": 13.39, "0": 12.01, "1": 6 } } ]
Komplettdaten pro User und Tag Delta
Mit der Abfrage des Deltas können die Differenzen (maximal der letzten 3 Monate) abgefragt werden.
Aufruf Komplettdaten:
GET ... /extern/personal/userdataperdaydelta?updatedSince=25.11.2020
Beispiel-Antwort Komplettdaten:
[ { "datum": "21.06.2021", "schichten": [ { "von": 0, "bis": 0, "von2": 1624262400, "bis2": 1624293000, "pause": 30, "tage": 0, "bereich": 0, "h_brutto": 8, "h_zuschl_25": 0, "h_zuschl_40": 0, "h_zuschl_50": 0, "h_zuschl_51": 0, "brutto": 9.6, "lohnkosten": 13.47, "stundenkosten": { "10": 1.58, "11": 1.58, "12": 1.58, "13": 1.58, "14": 1.58, "15": 1.58, "16": 1.58, "17": 1.58, "18": 0.79 } } ] }, { "datum": "13.04.2020", "schichten": [] } ]
Datenfelder in den Endpunkten Personal
Für alle Antworten in den verschiedenen Endpunkten Personal gelten die folgenden Felder /Werte
Feldname | Feldtyp | Beschreibung |
---|---|---|
businessdate | string (##.##.####) | Geschäftstag (bis Tagesabschluss) |
eff | float | Effektivität (Umsatz pro Personalstunde) pro Uhrzeit |
kost | float | Personalkosten pro Stunde |
kostUser | float | Personalkosten pro Mitarbeiter und Stunde |
von | int | Unix-Timestamp Arbeitsbeginn erste Schicht |
bis | int | Unix-Timestamp Arbeitsende erste Schicht |
von2 | int | Unix-Timestamp Arbeitsbeginn zweite Schicht |
bis2 | int | Unix-Timestamp Arbeitsende zweite Schicht |
pause | int | Pause in Minuten |
tage | float | Tage bei Urlaub/Krank |
bereich | int | Bereiche, wie im Betrieb angelegt. Feste Bereiche in LINA:
Standard-Bereiche (können verändert werden):
|
h_brutto | float | Stunden gearbeitet |
h_zuschlag_25 | float | Stunden im ersten SFN-Zuschlagsbereich |
h_zuschlag_40 | float | Stunden im zweiten SFN-Zuschlagsbereich |
h_zuschlag_50 | float | Stunden im dritten SFN-Zuschlagsbereich (Sonntag) |
h_zuschlag_51 | float | Stunden im vierten SFN-Zuschlagsbereich (Feiertage) |
brutto | float | SV-Pflichtiger Bruttolohn |
lohnkosten | float | Lohnkosten AG |
stundenkosten | array | Lohnkosten pro Stunde, Format "Uhrzeit": "Kosten (float) |
Persönliche Daten (nur nach Zustimmung)
Um persönliche Daten der Mitarbeiter abzurufen, muss der Mitarbeiter der Weitergabe der Daten zustimmen. Diese Zustimmung wird beim Registrieren eines Webhooks abgefragt: Webhooks registrieren, bearbeiten und löschen (TPAPI).
Eine Liste der Mitarbeiter, die aktuell zugestimmt haben, ist abrufbar:
GET ... /extern/personal/getPersonalData
Die Antwort enthält ein Array mit den Daten aller Mitarbeiter, die der Weitergabe zugestimmt haben:
[ { "userUuid": "4647b780-a4ab-4ca7-a977-2e00d78a8a28", "userVorname": "vyhpboqL", "userName": "hSRHIvca", "userEmail": "te@gastro-mis.de", "bereich": "Service" }, { "userUuid": "196b3002-a8ae-4e2c-9de5-a317ef5c893c", "userVorname": "Joe", "userName": "Test", "userEmail": "j@gastro-mis.de", "bereich": "Küche" } ]
Die Mitarbeiter können die Zustimmung verändern: Webhooks Personal (TPAPI) - Zustimmung
Die Zuordnung zu einem Bereich ergibt sich aus dem Nutzerrecht "Teilnehmen" in dem Abschnitt "Dienstpläne und Bereiche" in den Stammdaten des Mitarbeiters.
Beispiel aus dem Bild: Mitarbeiter Joe Test hat das "Teilnehmen"- Recht für "Küche", Leserechte für Service und Leitung Büro.
Beim Aufruf ../getPersonalData wird nur der Bereich "bereich": "Küche" ausgeben.
Mitarbeiter in mehreren Läden
Die Zustimmung zur Datenweitergabe kann immer nur im Hauptladen erfolgen. Für die geforderte Zustimmung zur Datenweitergabe muss der Mitarbeiter kurzzeitig den Hauptladen wechseln, zustimmen und kann sofort wieder zurückwechseln.
Lohnschicht eintragen (nur nach Zustimmung)
Mit der userUuid eines Mitarbeiters kann man eine Schicht für den Mitarbeiter speichern. Diese zählen als bestätigte Arbeitszeiten zur Abrechnung.
Eine einmal gespeicherte Schicht kann über die TPAPI nicht mehr bearbeitet oder gelöscht werden, sondern nur über die Oberfläche in LINA. Wird die gleiche Schicht mehrfach geschickt, so wird diese auch mehrfach für den Mitarbeiter gespeichert.
POST ... /extern/personal/saveShift
Als POST Body muss ein JSON-Objekt mit den Daten der Schicht übergeben werden:
{ "userUuid": "c6425258-a870-498d-8173-6c2341c934e", "datum": 1694210400, "von": 1694260800, "bis": 1694300400 "von2": 1694260800, "bis2": 1694300400 "pause": 0 }
Optionale Werte: um Teildienste abbilden zu können gibt es optionale Werte von2 und bis2. Die Pause wird ebenfalls optional als pause in Minuten angegeben.
Dateiupload für User - Personalakte
mit der userUuid eines Mitarbeiters können für den Mitarbeiter Dateien hochgeladen werden. Die Dateigröße ist auf 1 MB beschränkt.
POST ... /extern/personal/addUserCert
Die Datei und die userUuid müssen als POST - Parameter angegeben werden.
Die Mitarbeiter können die Zustimmung zurückziehen: Webhooks Personal (TPAPI) - Zustimmung . Dann ist das Schreiben von Schichten nicht mehr möglich.