Projekte

Folgende HTTP-Methoden stehen für Projekte zur Verfügung:

Zugriff ab Benutzergruppe Zeiterfasser 2.
Lesender Zugriff auf »meine Projekte« für Benutzergruppen bis Zeiterfasser 1.

alle Projekte auflisten

GET /api/v1/projects

Antwort:

{
  "meta": {
    "status": 200,
    "perPage": 100,
    "page": 1,
    "totalCount": 64,
    "requestUserID": 1,
    "requestUsername": "Admin1",
    "usergroupName": "Administrator",
    "apiLimitRemaining": 498,
    "apiLimitReset": 883
  },
  "data": [
    {
      "projectID": 1,
      "projectNo": "19-12-001",
      "projectName": "Kundenmailing",
      "customerID": 12,
      "customerName": "Versandmode Becker",
      "contactID": 53,
      "firstName": "Christiane",
      "lastName": "Maier",
      "projectDate": "2019-01-18",
      ...
    },
    ...
  ]
}

Filterung/Suche

Über Parameter kann gefiltert werden:

GET /api/v1/projects?projectName=Testprojekt
Parameter Beschreibung
projectNo Projektnummer
projectName Bezeichnung des Projekts
customerID ID des Kunden (Firma/Gruppe)
customerName Bezeichnung des Kunden (Firma/Gruppe)
contactID ID des Kunden Ansprechpartners
lastName Nachname des Kunden Ansprechpartners
userID zugeordnete Projekte des Benutzers mit der ID,
Sonderwert: String »myself« für Projekte des anfragenden Benutzeraccounts
projectStatus Status des Projekts:
0 = offen
1 = in Abrechnung
2 = abgeschlossen
3 = abgebrochen
4 = bereit zur Abrechnung
financeStatus Faktura-Status des Projekts:
0 = kein Angebot/Rechnung
1 = Angebot
2 = Rechnung
3 = 1. Mahnung
4 = 2. Mahnung
5 = 3. Mahnung
activeStatus Aktiv-Status des Projekts:
0 = inaktiv
1 = aktiv
projectDate Datum des Projekts
durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen
projectDateEnd Enddatum des Projekts
durch Angabe von > oder < vor dem Datum kann eine Suche ab dem bzw. bis zum Datum erfolgen
projectQuickInfo Kurzinfo zum Projekt
internalDepartment interne Abteilung (0 bis 9)
recurringProject wiederkehrendes Projekt:
0 = nicht wiederkehrend
1 = monatlich
2 = zweimonatlich
3 = quartalsweise
4 = halbjährlich
5 = jährlich
6 = zweijährlich
userResponsibleID ID des verantwortlichen Benutzers

 

Sortierung

Nach folgenden Parametern kann sortiert werden (Sortierrichtung ggf. mit ASC bzw. DESC ergänzen):

projectID, projectName, customerID, customerName, contactID, lastName, projectDate, projectDateEnd, projectStatus, timeNeeded

ein Projekt aufrufen

GET /api/v1/projects/{id}

Antwort:

{
  "meta": {
    "status": 200,
    "requestUserID": 1,
    "requestUsername": "Admin1",
    "usergroupName": "Administrator",
    "apiLimitRemaining": 491,
    "apiLimitReset": 493
  },
  "data": {
    "projectID": 45,
    "projectNo": "19-11-001",
    "projectName": "Frühstücks-Flyer",
    "customerID": 11,
    "customerName": "Bäckerei Back",
    "contactID": 50,
    "firstName": "Hans",
    "lastName": "Back",
    "projectDate": "2019-01-13",
    "projectDateEnd": null,
    "recurringProject": 0,
    "createdByUserID": 4,
    "userResponsibleID": null,
    "projectStatus": 1,
    "financeStatus": 3,
    "activeStatus": 1,
    "projectInfo": "",
    "projectQuickInfo": "",
    "timePlanned": 20,
    "timeNeeded": 15.25,
    "projectCostRate": null,
    "internalDepartment": 0,
    "projectGroupID": null,
    "isProjectTemplate": 0,
    "usersAssigned": [
      {
        "userID": 2,
        "username": "Designer2",
        "userFirstName": "",
        "userLastName": ""
      },
      {
        "userID": 3,
        "username": "Admin2",
        "userFirstName": "Max",
        "userLastName": "Mustermann"
      }
    ]
  }
}

ein Projekt erstellen

POST /api/v1/projects

Die Projektnummer (projectNo) wird beim Anlegen automatisch generiert!

Notwendige und mögliche Parameter im Body:

Parameter Beschreibung Typ Default-Wert Pflichtfeld
projectName Bezeichnung des Projekts String   ja
customerID ID des Kunden (Firma/Gruppe) Int   ja
contactID ID des Kunden Ansprechpartners Int   ja
activeStatus Aktiv-Status des Projekts:
0 = inaktiv
1 = aktiv
Int 1  
projectDate Datum Projektstart Date aktueller Tag  
projectDateEnd Datum Projektende Date null  
recurringProject wiederkehrendes Projekt:
0 = nicht wiederkehrend
1 = monatlich
2 = zweimonatlich
3 = quartalsweise
4 = halbjährlich
5 = jährlich
6 = zweijährlich
Int 0  
userResponsibleID ID des verantwortlichen Benutzers Int null  
projectQuickInfo Kurzinfo zum Projekt String    
projektInfo erweiterte Infos zum Projekt String    
timePlanned geplante Zeit (in Std.) für das Projekt Dec 0.00  
projectCostRate Stundensatz des Projekts Dec null  
internalDepartment interne Abteilung (0 bis 9) Int 0  
projectGroupID ID der zugeordneten Projektgruppe Int null  
isProjectTemplate Projekt als Vorlage markieren Int 0  
usersAssigned zugeordnete Benutzer speichern
(ein Array der userID(s) kann übergeben werden)
Array []
leeres Array
 

Angabe von Dezimalwerten mit Punkt als Trennzeichen.

Beispiel:

{
    "projectName": "Muster Projekt",
    "customerID": 10,
    "contactID": 49,
    "projectDateEnd": "25.06.2019",
    "userResponsibleID": 2,
    "projectInfo": "Hier stehen erweiterte Infos zum Projekt",
    "projectQuickInfo": "eine Kurzinfo zum Projekt",
    "timePlanned": 20,
    "projectCostRate": 80.00,
    "internalDepartment": 2,
    "usersAssigned": [
      {
        "userID": 2
      },
      {
        "userID": 3
      }
    ]
}

ein Projekt bearbeiten

PUT /api/v1/projects/{id}

Es müssen nicht alle Parameter für eine Bearbeitung übergeben werden.

Ergänzend zum Erstellen der Ressource stehen weitere Parameter zur Verfügung:

Parameter Beschreibung Typ
projectNo Projektnummer String
projectStatus Status des Projekts:
0 = offen
1 = in Abrechnung
2 = abgeschlossen
3 = abgebrochen
4 = bereit zur Abrechnung
Int
financeStatus Faktura-Status des Projekts:
0 = kein Angebot/Rechnung
1 = Angebot
2 = Rechnung
3 = 1. Mahnung
4 = 2. Mahnung
5 = 3. Mahnung
Int