Kostenstellen

Kostenstellen sind Elemente zur Kategorisierung von Buchungen.

Mit der bookamat–API können Kostenstellen abgefragt, hinzugefügt, geändert und gelöscht werden. Es sind also GET, POST, PUT/PATCH und DELETE Requests möglich.

Liste der Kostenstellen

Die Liste aller Kostenstellen wird mit einem GET Request auf die Listen URL abgefragt.

/preferences/costcentres/

Response

HTTP/1.0 200 OK
Content-Type: application/json; charset=utf-8

{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 4512,
            "name": "Architekturbüro Holzbau",
            "position": 0,
            "counter_booked_bookings": 2,
            "counter_open_bookings": 0,
            "counter_deleted_bookings": 0,
            "counter_bookingtemplates": 0
        },
        {
            "id": 4513,
            "name": "Solaris Datentechnik",
            "position": 1,
            "counter_booked_bookings": 1,
            "counter_open_bookings": 1,
            "counter_deleted_bookings": 0,
            "counter_bookingtemplates": 0
        },
    ]
}

Felder

id

Eindeutige Identifikationsnummer

Format
name

Name

Format
String (max. 40 Zeichen)
position

Position

Format
counter_booked_bookings

Anzahl gebuchter Buchungen

Format
counter_open_bookings

Anzahl offener Buchungen

Format
counter_deleted_bookings

Anzahl gelöschter Buchungen

Format
counter_bookingtemplates

Anzahl Buchungsvorlagen

Format

Filter

has_bookings

Buchungen vorhanden

Format
Boolean
Beispiele
has_bookings=true

Sortierung

ordering

Sortierung

Möglichkeiten
id, name, position
Beispiele
ordering=id

Kostenstelle Detail

Eine einzelne Kostenstelle wird mit einem GET Request auf die Detail URL abgefragt. Es sind dieselben Felder verfügbar wie bei der Listenansicht.

/preferences/costcentres/{id}/

Kostenstelle hinzufügen

Ein neuer Kostenstelle wird mit einem POST Request auf die Listen URL hinzugefügt. Der Request Body muss alle notwendigen Felder beinhalten, als Response wird die neue Kostenstelle zurückgegeben.

/preferences/costcentres/

Request

Content-Type: application/json; charset=utf-8

{
    "name": "Filmfonds Schweiz"
}

Response

HTTP/1.0 201 CREATED
Content-Type: application/json; charset=utf-8

{
    "id": 4514,
    "name": "Filmfonds Schweiz",
    "position": 2,
    "counter_booked_bookings": 0,
    "counter_open_bookings": 0,
    "counter_deleted_bookings": 0,
    "counter_bookingtemplates": 0
}

Felder

Notwendige Felder sind mit * gekennzeichnet.

name *

Name

Format
String (max. 40 Zeichen)
position

Position

Format
Anmerkung
Abhängig vom Positionswert ändern sich die Positionen aller anderen Kostenstellen (siehe Grundlagen Positionsfelder)
Default
Letzte Position (falls keine Position angegeben wird)

Kostenstelle ändern

Eine bestehende Kostenstelle kann mit einem PATCH oder PUT Request auf die Detail URL geändert werden.

/preferences/costcentres/{id}/

Request (PATCH)

Content-Type: application/json; charset=utf-8

{
    "position": -1
}

Request (PUT)

Content-Type: application/json; charset=utf-8

{
    "name": "Solaris Datentechnik",
    "position": -1
}

Response

Als Response wird die Kostenstelle zurückgegeben.

HTTP/1.0 202 ACCEPTED
Content-Type: application/json; charset=utf-8

{
    "id": 4513,
    "name": "Solaris Datentechnik",
    "position": 2,  // Ende der Liste (-1)
    "counter_booked_bookings": 1,
    "counter_open_bookings": 1,
    "counter_deleted_bookings": 0,
    "counter_bookingtemplates": 0
}

Felder

Die Felder sind deckungsgleich mit dem POST Request (siehe Felder beim Hinzufügen einer Kostenstelle). Beim PATCH Request sind nur die geänderten Felder anzugeben, beim PUT Request sind alle Felder notwendig. Beim Verändern einer Position werden die Positionen aller anderen Kostenstellen verändert (siehe Grundlagen Positionsfelder).

Kostenstelle löschen

Eine Kostenstelle kann mit einem DELETE Request auf die Detail URL gelöscht werden.

Bemerkung

Es können nur Kostenstellen gelöscht werden, denen keine Buchungen zugeordnet sind. Bei zugeordneten Buchungsvorlagen wird die Kostenstelle aus der Vorlage gelöscht.

/preferences/costcentres/{id}/

Response

HTTP/1.0 204 NO CONTENT