Kostenstellen¶
Kostenstellen sind Elemente zur Kategorisierung von Buchungen und Anlagen.
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,
"counter_inventories": 0
},
{
"id": 4513,
"name": "Solaris Datentechnik",
"position": 1,
"counter_booked_bookings": 1,
"counter_open_bookings": 1,
"counter_deleted_bookings": 0,
"counter_bookingtemplates": 0,
"counter_inventories": 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
- counter_inventories:
Anzahl Anlagen
- Format
Filter¶
- has_bookings:
Buchungen vorhanden
- Format
- Boolean
- Beispiele
- has_bookings=true
- has_inventories:
Anlagen vorhanden
- Format
- Boolean
- Beispiele
- has_inventories=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,
"counter_inventories": 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,
"counter_inventories": 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 oder Anlagen zugeordnet sind. Bei zugeordneten Buchungsvorlagen wird die Kostenstelle aus der Vorlage gelöscht.
/preferences/costcentres/{id}/
Response¶
HTTP/1.0 204 NO CONTENT