Reservierungen und Standorte¶
Die Leih- und Standortverwaltung in calServer v2 ist vollständig aus v1 übernommen: Jeder Standort-/Leiheintrag ist eine Bewegung des Geräts, genau ein Eintrag pro Gerät ist der aktuelle Standort, und Leihzeiträume können gegen Überschneidungen geprüft werden.
Standortliste¶
Die Standortliste unter /v2/location zeigt alle erfassten Standorte und Leihvorgänge. Über „Neue Ausleihe / Standort" wird ein Eintrag mit dem konfigurierbaren Formular aus der Feldverwaltung angelegt; die Spalten des Grids stammen ebenfalls aus der Feldkonfiguration.
Aktueller Standort (Current Record)¶
- Beim Speichern eines Eintrags mit gesetztem Aktiv-Flag werden alle anderen Einträge desselben Geräts automatisch zurückgestuft — es gibt immer genau einen aktuellen Standort.
- Wird der aktuelle Eintrag gelöscht, rückt automatisch der neueste verbleibende Eintrag nach.
- Der aktuelle Standort ist auf der Inventar-Detailseite im Tab Standorte mit einem „Aktuell"-Tag markiert.
Ausleihe und Rückgabe¶
Aus der Inventar-Detailseite (Tab Standorte):
- Ausleihen — legt einen neuen Leiheintrag an (Leihbeginn, optional Leihende); der Eintrag wird zum aktuellen Standort.
- Rückgabe — setzt das Leihende auf heute (wie die v1-Rückgabe).
- Die Historie zeigt Leihbeginn/-ende aller früheren Einträge.
Massenausleihe aus dem Inventar-Grid¶
Im Inventar-Grid können mehrere Geräte markiert und über die Massenaktion „Standort/Leihe" gemeinsam verliehen/umgezogen werden (v1: „Add to Location"):
- Der Dialog zeigt das vollständige Standort-Formular aus der Feldkonfiguration.
- „Werte vom letzten Standort-Eintrag übernehmen": sperrt die zum Kopieren markierten Felder (
allow_copyin der Feldverwaltung); sie werden beim Speichern je Gerät aus dessen letztem Eintrag gefüllt. - „Verfügbarkeit prüfen": Geräte mit überschneidendem Leihzeitraum werden übersprungen und gemeldet.
- Je Gerät entsteht ein neuer Eintrag, der zum aktuellen Standort wird.
Verfügbarkeit und Reservierung¶
GET /api/v2/inventories/{id}/rented-datesliefert die belegten Leihzeiträume eines Geräts (Basis für Reservierungs-UIs).- Beim Anlegen/Bearbeiten kann optional die Verfügbarkeitsprüfung aktiviert werden: Überschneidet sich der Zeitraum mit einem bestehenden Leihzeitraum, wird der Eintrag mit der Meldung „Zeitraum belegt" abgelehnt (inkl. Konfliktdetails).
- Offene Einträge ohne Leihende blockieren nur den Starttag.
Reservierungskalender¶
Der Reservierungskalender unter /v2/reservation (Menü Reservierungen) stellt alle Leihen und Reservierungen als Kalenderansicht dar (Monat/Woche/Tag) — die v1-Kalenderbuchung über das Location-Modul:
- Events sind die Leiheinträge des sichtbaren Zeitfensters; Titel im v1-Format
[Kunde] Seriennummer - Hersteller - Bezeichnung, Farben aus dem Status (Typ „location"), eine Legende zeigt die Statusfarben. - Filter: nach Status; der Feed (
GET /api/v2/reservations/calendar) unterstützt zusätzlich Gerät und Kunde. - Buchen: Zeitraum im Kalender aufziehen → die Geräteauswahl öffnet sich mit genau diesem Zeitraum, und aus ihr heraus wird gebucht. Der Kalender führt bewusst nicht mehr ins allgemeine Standortformular: Dessen Gerätefeld reicht über den gesamten Bestand, damit ließ sich aus dem Leihkalender heraus jedes Gerät ausleihen — auch eines, das in keiner verleihbaren Kategorie hängt. Standort buchen und ausleihen sind zwei verschiedene Vorgänge; die Schaltfläche „Standort anlegen" (Recht
location_edit) führt weiterhin dorthin. - Gerät per Drag & Drop platzieren: Ein Treffer aus der Geräteauswahl lässt sich auf einen Kalendertag ziehen. Der Ablagetag wird zum Leihbeginn, ein in der Auswahl eingestellter Zeitraum behält seine Länge (aus „5. bis 9." wird beim Ablegen auf den 12. also „12. bis 16."). Der Kalender legt dabei nichts an, sondern öffnet den Buchungsdialog — die Buchung läuft in jedem Fall über
POST /api/v2/reservationsbzw.POST /api/v2/reservations/sets, wo die Verfügbarkeitsprüfung immer aktiv ist. Überschneidungen kann der Kalender damit nicht umgehen, egal aus welcher Geste die Buchung entsteht. Beim Buchen kann der Leihschein-Versand abgewählt werden (Checkbox, Standard: an); nötig istreservation_edit(V1-Parität). - Verschieben/Verlängern per Drag & Drop (benötigt
reservation_edit): geänderte Zeiträume werden immer gegen Überschneidungen geprüft — bei Konflikt springt das Event zurück und die belegte Periode wird gemeldet. Offene Leihen ohne Leihende bleiben beim Verschieben offen. - Details: Klick auf ein Event öffnet den Leiheintrag.
Geräteauswahl: Ausleiheinheiten¶
Wer ein Gerät ausleihen will, muss es finden können. Die Geräteauswahl gibt es an zwei Stellen:
- Im Kalender über „Geräteauswahl einblenden" als einklappbare Seitenleiste (auf schmalen Bildschirmen als eingeschobene Leiste).
- Als eigene Seite unter
/v2/reservation/search(Menü Gerät ausleihen).
Beide zeigen dieselbe Auswahl, nur mit vertauschten Rollen: Im Reservierungs-Tab führt der Kalender und die Geräteauswahl steht als schmale Spalte daneben; unter Gerät ausleihen führt die Suche und der Kalender steht rechts daneben als Kontext — er zeigt, was im gewählten Zeitraum ohnehin schon läuft. Wird dort ein Leihbeginn gesetzt, schwenkt der Kalender auf diesen Monat. Nach einer Buchung bleibt die Suche stehen und der Kalender lädt neu, damit sich mehrere Geräte hintereinander ausleihen lassen. Auf schmalen Bildschirmen entfällt der Kalender auf dieser Seite — die Auswahl allein braucht dort die volle Breite.
Breite anpassen: Zwischen Geräteauswahl und Kalender sitzt ein Ziehgriff — die schmale Leiste in der Lücke. Damit lässt sich verschieben, wie viel Platz jede Seite bekommt: breiter, solange nach Geräten gesucht wird, schmaler, sobald der Monat im Vordergrund steht. Die eingestellte Breite bleibt erhalten und gilt beim nächsten Aufruf wieder; Kalender und Suchseite merken sie sich getrennt, weil die Auswahl dort einmal Neben- und einmal Hauptfläche ist. Ohne Maus geht es genauso: den Griff mit der Tabulatortaste anspringen, dann Pfeil links/rechts (mit Umschalt in größeren Schritten) oder Pos1/Ende für die schmalste bzw. breiteste Einstellung. Wie weit sich der Griff ziehen lässt, begrenzt der Platz — beide Seiten behalten ihre Mindestbreite.
Ausgewählt wird nicht ein Gerät, sondern eine Ausleiheinheit:
| Art | Bedeutung |
|---|---|
| Einzelgerät | Ein verleihbares Gerät ohne Untergeräte. |
| Set | Ein verleihbares Gerät mit Untergeräten — Testkoffer, Messplatz, Prüfsystem, Rollwagen. Die Teile erscheinen nicht als eigene Treffer. |
Ein Gerät mit Untergeräten ist ein Set — es wird als Ganzes ausgeliehen. Solche Treffer tragen neben dem Titel die Marke Set; die Schaltfläche „Set mit N Teilen" zeigt den Inhalt als Kurzinfo mit der Verfügbarkeit jedes Teils. Ein Set mit fünf Teilen ist damit eine Zeile statt sechs. Über „Einzelteile anzeigen" lassen sich die Teile bei Bedarf trotzdem als eigene Treffer einblenden.
Welche Geräte erscheinen: Ein Gerät ist verleihbar, wenn es mindestens einer Kategorie mit dem Kennzeichen verleihbar angehört (Kategorien). Das Kennzeichen wird nicht an Unterkategorien vererbt — hängt das Gerät nur in einer Unterkategorie, muss auch diese markiert sein. Geräte, deren Status inaktiv oder ausgeblendet ist, erscheinen nicht — ein Gerät in Reparatur wird weder angeboten noch als Teil eines Sets mitverliehen.
Sets kommen aus der Gerätehierarchie, nicht aus Kategorien: maßgeblich ist das übergeordnete Gerät (Feld „Zubehör zu" bzw. parent_asset_number). Wo die Hierarchie nicht gepflegt ist, gibt es schlicht keine Sets und die Suche zeigt Einzelgeräte.
Die Freigabe gilt nach unten: Ist das übergeordnete Gerät nicht verleihbar, sind die Geräte darunter es auch nicht — auch dann nicht, wenn ihre eigene Kategorie markiert ist. Ein Multimeter aus einem Set auszugeben hieße, das nicht freigegebene übergeordnete Gerät mit auszugeben. Die Freigabe des Elterngeräts reicht also aus, um seinen Inhalt zu sperren; das gilt über beliebig viele Ebenen und lässt sich auch über „Einzelteile anzeigen" nicht umgehen.
Nach unten vererbt sich nur die Freigabe, nicht der Betriebszustand: Ein ausgemustertes übergeordnetes Gerät nimmt seinem Inhalt nicht die Freigabe, es ist nur selbst keine Einheit mehr. Sein verleihbarer Inhalt steht dann als eigene Einheit in der Liste — genauso, wenn es für den Benutzer nicht sichtbar ist oder „Zubehör zu" auf eine Gerätenummer zeigt, die es gar nicht gibt.
Suchen und filtern¶
- Volltextsuche über Gerätenummer, Seriennummer, Bezeichnung, Hersteller, Modell und Kategoriename. Wer die Gerätenummer kennt, tippt sie; wer nur „Zangenamperemeter" weiß, findet es über die Kategorie.
- Zeitraum (von/bis). Ohne Zeitraum wird keine Verfügbarkeit angezeigt. Im Kalender übernimmt die Auswahl automatisch das sichtbare Kalenderfenster; eine eigene Eingabe hat Vorrang.
-
Kategorien über die Schaltfläche „Kategorien": ein Baum mit Zählern, der sich über die Liste legt statt dauerhaft Platz zu belegen.
3/12heißt: von zwölf Einheiten der Kategorie sind drei im gewählten Zeitraum frei. Gezählt werden genau die Einheiten, die die Liste auch zeigt — ein Set zählt als eine, seine Teile nicht zusätzlich. Was gewählt ist, steht als Chip mit vollem Pfad über der Trefferliste („Leihgeräte France › DMM France"), auch wenn der Baum wieder zu ist.Eine übergeordnete Kategorie wählt alles darunter mit aus, und ihr Zähler zählt den ganzen Ast. So findet „Leihgeräte France" auch die Geräte, die an „DMM France" darunter hängen.
Damit das trägt, steht im Baum auch die Zwischenebene, die selbst kein Kennzeichen „verleihbar" trägt — sie gliedert nur und wird gedämpft dargestellt. Dass sich das Kennzeichen nicht vererbt, bleibt davon unberührt: Der Ast entscheidet, wie gruppiert wird, das Kennzeichen weiterhin allein, was verliehen werden darf. Kategorien, unter denen kein einziges verleihbares Gerät hängt, werden ausgeblendet.
Bis Version 5.64 anders
Der Baum zeigte nur Kategorien mit dem Kennzeichen „verleihbar". Wo das Kennzeichen — wie üblich — an der untersten Ebene hing, fehlte die Ebene darüber, und die Unterkategorien rutschten nebeneinander auf die oberste Ebene: Aus „Leihgeräte France › DMM France" wurde ein bloßes „DMM France" ohne Standort. Der Baum stand außerdem dauerhaft über der Trefferliste, statt sich bei Bedarf darüberzulegen.
- „Nur verfügbare", „Einzelteile anzeigen", „Nur übergeordnete Geräte" und „Gesperrte anzeigen" stehen hinter der Schaltfläche „Filter"; ist einer davon gesetzt, steht die Anzahl am Knopf. „Nur verfügbare" blendet belegte Einheiten aus. Der Filter wirkt serverseitig, die Trefferzahl ist also die tatsächliche.
- „Nur übergeordnete Geräte" zeigt ausschließlich Geräte, unter denen weitere Geräte hängen — also Sets: Messplätze, Prüfsysteme, Testkoffer. Freistehende Einzelgeräte ohne Zubehör fallen weg. Ein Untergerät, das selbst wieder Untergeräte hat, ist ebenfalls ein Set; zusammen mit „Einzelteile anzeigen" liest sich der Schalter als „alle Sets, auf jeder Ebene". Nicht mitgezählt werden Untergeräte, die ausgemustert oder für den Benutzer nicht sichtbar sind — ein Gerät, dessen einziges Teil in Reparatur ist, ist gerade kein Set. Der Schalter wirkt auch auf die Kategoriezähler.
Bis Version 5.64 anders
Der Schalter meinte zuvor „Spitze der Hierarchie" und ließ damit auch jedes Einzelgerät stehen — in den meisten Beständen fast die ganze Liste, was wie ein wirkungsloser Filter aussah. Wer Geräte ausblenden will, deren übergeordnetes Gerät ausgemustert oder unsichtbar ist, erreicht das jetzt über den Sperrgrund statt über diesen Schalter.
- „Gesperrte anzeigen" holt die Geräte in die Liste, die normalerweise gar nicht auftauchen, weil sie derzeit nicht verliehen werden dürfen (siehe Gesperrte Geräte sehen). Der Schalter schließt „Nur verfügbare" aus — was gesperrt ist, ist nie verfügbar.
Gesperrte Geräte sehen¶
„Warum steht Gerät X nicht in der Liste?" ist ohne Hilfe schwer zu beantworten: Es kann an der Kategorie liegen, am Status oder am übergeordneten Gerät. „Gesperrte anzeigen" macht die Geräte sichtbar, die es bis in den Leihpool geschafft haben, aber gerade nicht verliehen werden dürfen. Sie stehen nur lesend in der Liste — grau hinterlegt, mit Schloss-Symbol und Sperrgrund, ohne Ausleihen-Schaltfläche:
| Sperrgrund | Bedeutung | Was hilft |
|---|---|---|
| Gesperrt (Gerätestatus) | Der Status des Geräts ist inaktiv oder ausgeblendet — ausgemustert, in Reparatur. | Status ändern (Statusverwaltung) |
| Übergeordnetes Gerät nicht freigegeben | Das Gerät hängt unter einem Gerät, dessen Kategorie nicht als verleihbar markiert ist. | Kategorie des übergeordneten Geräts freigeben |
| Enthält Geräte außerhalb Ihrer Sichtbarkeit | Im Set stecken Geräte eines Kunden, für den Sie nicht freigeschaltet sind. Dieser Grund erscheint immer, auch ohne den Schalter. | Kundenzuordnung des Benutzers erweitern |
Nicht ins Bild kommen Geräte, die keiner verleihbaren Kategorie angehören: Die sind nicht gesperrt, sie sind gar nicht Teil des Leihpools — der Schalter würde sonst das gesamte Inventar auflisten. Geräte, die für den Benutzer nicht sichtbar sind, bleiben ebenfalls unsichtbar; Sichtbarkeit ist eine Berechtigung, keine Anzeigeoption.
Wenn gar nichts zur Auswahl steht¶
Steht im Kategorie-Aufklapper nichts und in der Trefferliste ebenso, nennt die Auswahl den Grund. Fünf Zustände sehen von außen gleich aus, verlangen aber verschiedene Schritte; geprüft wird in dieser Reihenfolge, und der erste Treffer ist die Antwort:
| Meldung | Was fehlt | Was hilft |
|---|---|---|
| Keine Kategorie trägt das Kennzeichen „verleihbar". | Der Leihpool ist nie eröffnet worden. | Haken Vermietbar an einer Inventar-Kategorie setzen (Kategorien) |
| … Kategorien tragen das Kennzeichen (Namen), aber kein Gerät ist ihnen zugeordnet. | Das Kennzeichen steht, die Geräte fehlen. | Geräte über ihr Feld Kategorie zuordnen, im Datensatz oder per Mehrfachauswahl im Inventar |
| … dieselbe Meldung, mit dem Zusatz „An diesen Kategorien hängen nur Gerätetypen". | An den Kategorien hängen Gerätetypen statt Geräten. | Kategorie am Gerät selbst setzen (siehe unten) |
| … Geräte hängen an verleihbaren Kategorien, aber keines liegt in Ihrem Sichtbarkeitsbereich. | Die Geräte gehören Kunden, für die der Benutzer nicht freigeschaltet ist. | Kundenzuordnung des Benutzers erweitern |
| … aber alle sind über ihren Status aus dem Verkehr genommen. | Ausgemustert, in Reparatur. | Status ändern, oder „Gesperrte anzeigen" zum Nachsehen |
| … aber alle hängen unter einem Gerät, dessen Kategorie nicht verleihbar ist. | Die Freigabe nach unten fehlt. | Kategorie des übergeordneten Geräts freigeben |
Wo es etwas zu tun gibt, steht die Schaltfläche daneben: „Kategorien verwalten" (nur mit dem Recht category_edit) und „Gesperrte anzeigen".
Gerätetyp ist nicht Gerät
Gerätetypen wählen aus demselben Kategoriekatalog wie Geräte. Ordnet man die Kategorie dem Gerätetyp zu, sieht in der Kategorieverwaltung alles gepflegt aus, und das Leihmodul bleibt trotzdem leer: Ein Gerätetyp beschreibt eine Bauart, verliehen wird das einzelne Gerät. Verleihbar wird ein Gerät nur über seine eigene Kategoriezuordnung.
Das ist kein Versehen der Oberfläche, sondern der Datenmodell-Unterschied: Beide Zuordnungen landen in derselben Tabelle und unterscheiden sich nur in ihrer Art (inventory gegenüber types). Wer über die Vorlage eines Gerätetyps neue Geräte anlegt, kann die Kategorien mitgeben lassen — dann trägt jedes so erzeugte Gerät sie selbst.
Bis Version 5.64 anders
Alle fünf Zustände teilten sich einen Satz („Keine verleihbaren Kategorien …"). Wer gerade den Haken Vermietbar gesetzt hatte und trotzdem einen leeren Aufklapper sah, konnte daraus nicht schließen, dass die Zuordnung der Geräte noch fehlte — und suchte den Fehler beim Kennzeichen.
Technisch liefert GET /api/v2/rental-units/categories die Zähler dieser Kette unter meta.diagnosis, und zwar nur, wenn data leer ist.
Sets und Kundensichtbarkeit¶
Ein Set ist ein physisches Objekt, seine Teile tragen aber jeweils eine eigene Kundenzuordnung. Für Benutzer ohne globale Inventar-Sichtbarkeit heißt das:
- Teile fremder Kunden werden nicht angezeigt. Sie fehlen in der Kurzinfo zum Set, und der Zähler („Set mit 3 Teilen") zählt nur, was auch zu sehen ist.
- Das Set bleibt trotzdem korrekt belegt. Ist ein nicht sichtbares Teil verliehen, gilt das ganze Set im Zeitraum als belegt — Verfügbarkeit ist eine Aussage über das Gerät, keine über die Berechtigung.
- Buchen ist nicht möglich. Ein Set wird immer vollständig ausgeliehen, verschoben und storniert. Geräte auszuleihen, die man nicht sehen darf, ist keine Option — und Teile stillschweigend zurückzulassen ebenso wenig, weil das Set dann nicht mehr zu seinem Leihschein passt. Die API antwortet auf
POST /reservations/sets,PATCH …/scheduleundDELETE …in dem Fall mit 403 und nennt nur die Anzahl der betroffenen Geräte, nicht deren Daten.
Verliehene Geräte sind ein anderer Fall und ohnehin immer sichtbar: Sie tragen die Ampel „Belegt bis …" plus „Wieder frei ab …". Ist eine Einheit im gewählten Zeitraum vollständig belegt, verschwindet ebenfalls die Ausleihen-Schaltfläche — statt eines Buttons, den das Speichern nur abweisen würde, steht dort „Im Zeitraum nicht frei". Der Unterschied zum Sperrgrund ist Absicht: „belegt" heißt später wieder zu haben, „gesperrt" heißt gar nicht.
Verfügbarkeitsampel¶
Je Einheit zeigt ein Tag den Zustand im gewählten Zeitraum:
| Zustand | Bedeutung |
|---|---|
| Frei | Die Einheit ist im gesamten Zeitraum verfügbar. |
| … Teile belegt | Bei Sets: einzelne Teile sind belegt, das Wurzelgerät nicht. |
| Belegt bis TT.MM.JJJJ | Die Einheit ist belegt; darunter steht, ab wann sie wieder frei ist. |
Die Ampel ist eine Vorschau, keine Reservierung
Verbindlich geprüft wird beim Buchen. Buchen zwei Personen gleichzeitig, bekommt die zweite eine Konfliktmeldung — eine Doppelbuchung entsteht nicht.
Set-Buchung¶
Über „Ausleihen" an einer Einheit öffnet sich der Buchungsdialog mit vorbelegtem Gerät und Zeitraum. Bei einem Set listet der Dialog die Teile auf, die mitgehen.
Die Set-Buchung ist atomar: Es entsteht ein Leiheintrag je Teil, alle in einem Vorgang. Ist auch nur ein Teil im gewünschten Zeitraum belegt, wird die gesamte Buchung abgelehnt und die blockierende Gerätenummer genannt. Ein halb verliehenes Set wäre ein Zustand, den die Rückgabe nicht mehr sauber auflösen könnte.
Gebuchte Sets bleiben zusammen:
- Verschieben im Kalender bewegt immer das ganze Set. Wird ein Teil per Drag & Drop verschoben, wandern die übrigen mit.
- Stornieren entfernt alle Leiheinträge des Sets gemeinsam (
DELETE /api/v2/reservations/sets/{id}, benötigtreservation_delete). - Der Leihschein wird einmal für das ganze Set versendet, nicht je Teil.
Keine Teilbuchung
Einzelne Teile eines Sets lassen sich nicht abwählen. Wird ein Teil separat gebraucht, kann es über „Einzelteile anzeigen" als eigene Einheit gebucht werden.
Endpunkte¶
| Endpunkt | Zweck | Recht |
|---|---|---|
GET /api/v2/rental-units |
Ausleiheinheiten suchen (Zeitraum, Volltext, Kategorien, only_available, include_parts, only_sets, include_blocked) |
reservation_view |
GET /api/v2/rental-units/categories |
Verleihbarer Kategoriebaum mit Zählern (only_sets und include_blocked wirken auch hier) |
reservation_view |
POST /api/v2/reservations/sets |
Set atomar buchen | reservation_edit |
PATCH /api/v2/reservations/sets/{id}/schedule |
Set gemeinsam verschieben | reservation_edit |
DELETE /api/v2/reservations/sets/{id} |
Set stornieren | reservation_delete |
Leihschein per E-Mail¶
Wie in v1 werden Entleiher und Lieferkontakt bei Buchung und Änderungen automatisch benachrichtigt — der Leihschein hängt als PDF an:
- Schalter ist die Existenz der Mailer-Templates
location_create/location_update(E-Mail-Verwaltung → Vorlagen; auf v1-migrierten Systemen bereits vorhanden). Ohne Template wird nichts versendet. - Empfänger (v1-Logik): Lieferkontakt — oder, wenn keiner gewählt ist, die E-Mail des Lieferkunden — plus Entleiher-Kontakt (sonst Entleiher-Kunde) und der Eigentümer-Kunde des Geräts. Dubletten werden entfernt; der erste Empfänger steht im An, die übrigen im CC. Die Lieferadresse ist wie in v1 eine eigene Wahl: Lieferkunde und Lieferkontakt sind separate Felder im Buchungsformular.
- Kontaktauswahl folgt dem Kunden: Ein Kontakt gehört zu genau einem Kunden, deshalb bietet jedes Kontaktfeld nur dessen Kontakte an — der Lieferkontakt folgt dem Lieferkunden, nicht dem Entleiher. Ist kein eigener Lieferkunde gesetzt, gilt wie in v1 der Entleiher-Kunde. Solange gar kein Kunde gewählt ist, bleibt das Kontaktfeld gesperrt: jeder wählbare Kontakt gehörte jemand anderem.
- Fehlt der Kontakt, wird er hier angelegt: Neben jedem Kontaktfeld steht ein +, sobald ein Kunde gewählt ist und die Berechtigung
contact_editvorliegt (wie in v1). Der Dialog legt den Kontakt am gewählten Kunden an — mit der passenden Adressart, alsoDeliveryam Lieferkontakt undBillingam Rechnungskontakt — und trägt ihn sofort ins Feld ein. Das ausgefüllte Buchungsformular bleibt dabei stehen. - Anhang: der Leihschein — ein normaler Jasper-Bericht aus der Berichtsverwaltung. Dafür gibt es auf jedem System die feste, nicht löschbare Zeile Leihschein (Etikett „Systembericht", Grid
location); dort wird das Bundle hochgeladen, empfohlenLOCATION-JSON-SAMPLE. Solange nichts hochgeladen ist — oder wenn die Generierung fehlschlägt — geht die Mail ohne Anhang raus. Auf v1-migrierten Systemen hat ein direkt in der Vorlage zugewiesener Bericht (Anhang „PDF Master-Report" + Berichtswahl) weiterhin Vorrang. - Versandanlässe: Buchung über den Kalender (
location_create), Verschieben/Verlängern im Kalender und Statuswechsel (location_update). Einfache Feldänderungen lösen — anders als in v1 — bewusst keine Mail aus. - Opt-out: Der Buchende kann den Versand pro Vorgang abwählen (Checkbox im Formular bzw. API-Parameter
send_receipt = false). In v1 gab es dieses Opt-out nicht. - Vorschau vor dem Buchen: Die Schaltfläche Leihschein-Vorschau unter dem Häkchen rendert den Leihschein aus den aktuell eingetragenen Formularwerten (
POST /api/v2/reservations/receipt-preview, benötigtreservation_edit). Es wird dabei nichts angelegt und kein Nummernkreis verbraucht. Bei einer Set-Buchung zeigt die Vorschau das Hauptgerät. Voraussetzung ist eine V2-Vorlage mit JSON-Datenquelle — eine klassische SQL-Vorlage liest den noch nicht existierenden Leiheintrag und wird deshalb mit einem Hinweis abgelehnt statt leer gerendert.
Standortdetails¶
Die Detailansicht eines Standorts (/v2/location/[id]) zeigt die vollständigen Standortdaten, das verknüpfte Inventar und die Historie. Für Standorte konfigurierte Berichte (z. B. Leihscheine) stehen im Grid über das Berichts-Menü zur Verfügung.
Berechtigungen¶
| Permission | Beschreibung |
|---|---|
location_view |
Standortliste und Details ansehen, belegte Zeiträume abfragen |
location_edit |
Standorte anlegen und bearbeiten, Massenausleihe aus dem Inventar-Grid |
location_delete |
Standorte löschen (einzeln und als Massenaktion) |
reservation_view |
Reservierungskalender und Geräteauswahl ansehen (Menüpunkte Reservierungen und Gerät ausleihen) |
reservation_edit |
Reservierungen buchen (POST /reservations, POST /reservations/sets) sowie im Kalender verschieben/verlängern (Drag & Drop) |
reservation_delete |
Gebuchte Sets stornieren (DELETE /reservations/sets/{id}) |
inventory_rental_view / inventory_rental_edit / inventory_rental_delete |
Leih-Einträge im Standorte-Tab der Inventar-Detailseite |
Leihmanagement ist optional und rollenbasiert
Alle Leih-Operationen gehören zur Operationsgruppe Rental Management. Rollen ohne diese Rechte sehen weder Leihliste noch Kalender — das Leihmanagement lässt sich damit pro Rolle aktivieren. Zusätzlich kann die Gruppe über Pläne einem Abo-Modul zugeordnet und installationsweit ab-/zugeschaltet werden.
Verfügbarkeitsprüfung ist Opt-in
Wie in v1 sind normale Standortwechsel uneingeschränkt möglich — die Überschneidungsprüfung greift nur, wenn sie beim Anlegen/Bearbeiten bzw. in der Massenausleihe aktiviert ist.
