# Buchung

### Installation

Installieren Sie die App im BuildingPro Suites Store.

### Konfiguration \[optional]

Nach der Installation können Sie die Konfiguration im generischen Frontend ändern: Es gibt eine Standardkonfiguration, die über `GET` `/config`abgerufen werden kann. Sie können diese Konfiguration ändern und sie über `POST` an den `/config` Endpunkt senden. Hier ist ein Beispiel für eine Konfiguration:

```json
{
    "dayStartHours": 8,
    "dayStartMinutes": 0,
    "middayStartHours": 12,
    "middayStartMinutes": 0,
    "middayEndHours": 13,
    "middayEndMinutes": 0,
    "dayEndHours": 17,
    "dayEndMinutes": 0,
    "noShowMins": 15,
    "adHocBookAfterMins": 15,
    "adHocBookForMins": 30,
    "presenceAttributeName": "presence"
}
```

Diese Konfiguration wird verwendet, um die Grenzen der Schnellbuchung festzulegen – wenn Sie beispielsweise eine Ressource für den Vormittag buchen, ergibt sich eine Buchung von 8:00 bis 12:00 Uhr.

`noShowMins` legt die Zeit fest, nach der die Buchung automatisch storniert wird. Eine negative Zahl deaktiviert diese Funktion. (weitere Details im Abschnitt „No Show“)

Beachten Sie, dass beim Abrufen der Konfiguration Felder mit Nullwerten weggelassen werden.

#### Einrichtung buchbarer Ressourcen

> Wenn Sie eine Synchronisierungs-App für externe Dienste mit CAC verwenden (z. B. EWS-App), überspringen Sie diesen Schritt. Die Ressourcentypen und Ressourcen werden automatisch erstellt.

Damit eine Ressource buchbar ist, muss sie sowohl im Ressourcentyp als auch in der konkreten Ressource definiert sein.

Der Ressourcentyp muss das Attribut „bookable“ vom Subtyp „property“ haben, und die Ressource muss diese Eigenschaft auf „1“ setzen.

Außerdem sollte der Ressourcentyp das Eingabeattribut „occupancy“ haben, in das Informationen über den aktuellen Buchungsstatus geschrieben werden.

Diese Ressourcen müssen dann auf einer Etage entweder als Polygon (z. B. Räume) oder als interessanter Punkt platziert werden. Setzen Sie „Occupied“ als Attribut, setzen Sie eine wertbasierte Farbe (0 für frei, 1 für belegt) und setzen Sie die Eigenschaft „Resource can be booked“.

Unter Dashboard -> Widgets erstellen Sie einen neuen Widget-Typ und fügen einen „Booking“-Block hinzu.

Nachdem Sie den Widget-Typ erstellt haben, erstellen Sie ein neues Dashboard und verwenden diesen Widget-Typ. Konfigurieren Sie die gewünschte Etage und die einzuschließenden Ressourcen.

In diesem Dashboard können die Benutzer die Ressourcen buchen.

### Buchung

Klicken Sie auf die Ressource, die Sie buchen möchten, und folgen Sie dem Formular, um die Ressource für die gewünschte Zeit zu buchen.

Das Formular ermöglicht Buchungen auf zwei Arten: Schnellbuchung und erweiterte Buchung. Die Schnellbuchung ermöglicht es dem Benutzer, die Ressource schnell für einen vordefinierten Teil des Tages zu buchen (in der Konfiguration angegeben), während die erweiterte Buchung es dem Benutzer ermöglicht, die genaue Zeit für die Buchung anzugeben.

Die Ressourcen werden für einen bestimmten Benutzer gebucht, und Benutzer können ihre Buchungen an demselben Ort verwalten, an dem sie die Ressourcen buchen können.

Wenn ein externer Dienst verbunden ist und die Ressource damit verknüpft ist, wird diese Buchung an den externen Dienst weitergeleitet. Umgekehrt werden in diesem externen Dienst erstellte Buchungen ebenfalls mit BuildingPro Suites synchronisiert.

### No Show

Die App kann Buchungen automatisch stornieren, wenn keine Person im Raum erscheint. Diese Funktion wird durch den `noShowMins` Parameter in der Konfiguration festgelegt.

Der Raum oder seine untergeordneten Orte müssen genau ein Attribut haben, das so benannt ist wie in `presenceAttributeName`konfiguriert. Das bedeutet, dass der Raum ein virtuelles Attribut haben könnte, das auf Informationen anderer Sensoren verweist, oder es könnte ein Personen- oder Anwesenheitssensor installiert sein, der die Anwesenheitsinformationen liefert.

Sobald die App Informationen über die Anwesenheit hat und `noShowMins >= 0`ist, überwacht sie die kürzlich begonnenen Buchungen auf Anwesenheit. Wenn innerhalb der ersten noShowMins der Buchung keine Anwesenheit erkannt wird, wird die Buchung storniert.

Wenn der Raum keinen Anwesenheitssensor hat, wird keine Aktion ausgeführt.

### Ad-hoc-Buchung

Die App kann automatisch Räume buchen, die für eine bestimmte Zeit belegt sind. Die Anforderungen sind dieselben wie für No Show.

Ad-hoc-Buchungen werden automatisch für Räume aktiviert, die jemals gebucht wurden. Sie kann vollständig deaktiviert werden, indem `adHocBookAfterMins < 0`.

Wenn jemand im Raum kontinuierlich für `adHocBookAfterMins` anwesend ist und der Raum während dieser Zeit keine Buchung hat (oder in `adHocBookForMins` seit dem Beginn), wird der Raum gebucht für `adHocBookForMins` seit dem Beginn.

### Externe Dienste

Die Booking-App kann mit externen Buchungsdiensten verbunden werden. Derzeit bieten wir eine Verbindung mit Microsoft Exchange / Outlook Calendar über die [Exchange-App](https://doc.eliona.io/collection/apps/apps/exchange-app)an. Bitte kontaktieren Sie uns für Informationen zu weiteren Integrationen.
