Korat
Funktion

Hotel, Pension und Dauermieter auf einem Board

Hotel- und Mietverwaltung in einem Modul: Es deckt Hotel, Resort, Apartmenthaus und Mietshaus ab, weil das außerhalb der großen Ketten häufig derselbe Eigentümer ist — und zunehmend dasselbe Gebäude. Kostenlos und ohne Monatsgebühr, für die Pension mit sechs Zimmern wie für das ganze Haus.

Software für Hotel- und Mietverwaltung teilt sich üblicherweise an der Linie zwischen Nacht und Monat: auf der einen Seite ein Hotelsystem, auf der anderen eine Mietbuchhaltung, und dazwischen ein Eigentümer, der beides von Hand in Einklang hält. Korats Modul verweigert diese Teilung. Hotel, Resort, Apartment, Eigentumswohnung, Haus und Pension sind ein Betriebstyp mit einem gemeinsamen Katalog von Zimmertypen. Ein Objekt kann aus demselben Raster eine Buchung über zwei Nächte und ein Mietverhältnis über ein Jahr aufnehmen, und die Monatsberichte decken beides.

Die Einheit ist der Zimmertyp, nicht das einzelne Zimmer

Ein Objekt wird als Menge von Zimmertypen beschrieben — jeder mit Fotos, Nachtpreis, Anzahl, Beschreibung und Ausstattung — statt als Liste einzeln eingerichteter Zimmer. So sehen Preisbildung und Verfügbarkeit tatsächlich aus: Acht identische Doppelzimmer sind ein Produkt mit der Anzahl acht, und sie als acht Produkte zu führen heißt acht Stellen für eine Preisänderung und acht Gelegenheiten, eine zu vergessen. Beim Stöbern zeigt ein Raster oder eine Liste einen „ab“-Preis, die Bewertung und ein Typabzeichen, sodass Pension und Eigentumswohnung schon vor dem Tippen unterscheidbar sind.

Die Bewertung stammt von Gästen mit nachgewiesenem Aufenthalt

Die Bewertung auf dieser Karte ist keine Zahl, die der Eigentümer gesetzt hat. Wie jede Bewertung in Korat wird sie von einem Datenbank-Trigger aus den Bewertungszeilen berechnet, und schreiben darf nur, wessen Aufenthalt die Plattform belegen kann — Übernachten zählt zu den anerkannten Arten in der Berechtigungssicht.

Saison- und Aktionspreise: einmal gerechnet, zweimal benutzt

Preise ändern sich: Songkran (das thailändische Neujahrsfest Mitte April, mit Reisehochsaison), lange Wochenenden, Nebensaison, eine Aktion über vierzehn Tage. Ein Zimmertyp trägt deshalb Preisregeln, jede ein Datumsbereich plus eine Anpassung in Prozent oder als fester Betrag in der Währung der jeweiligen Unterkunft (meist Baht, aber nicht immer — jeder Betrieb legt seine eigene fest). Das Wichtige ist nicht, dass es die Regeln gibt — das hat jedes Buchungssystem in irgendeiner Form. Wichtig ist, dass die Zahl in der Übersicht und die Zahl, die der Buchung berechnet wird, aus derselben Rechenstelle kommen. Es gibt keine separate Anzeigepreis-Berechnung, die hinterherhinken könnte.

Der klassische Fehler dieser Funktion ist ein Suchergebnis, das ein Codepfad bepreist, und eine Buchung, die ein anderer bepreist: Dem Gast wird ein Preis gezeigt, dem das Haus nie zugestimmt hat, und dann ein anderer berechnet. Die gemeinsame Rechenstelle macht diesen Widerspruch strukturell unmöglich statt zu einer Sache, auf die man testet. Greift eine Aktionsregel, zeigt die Karte den durchgestrichenen Grundpreis mit Abzeichen, sodass die Größe der Anpassung sichtbar ist und nicht nur eine niedrigere Zahl.

Eine Buchung ist eine Anfrage, die das Haus bestätigt

Die Onlinebuchung erfasst An- und Abreisedatum, den Gast und eine Telefonnummer und landet im Buchungseingang des Hauses. Der Eigentümer bestätigt. Die Zahl der offenen Buchungen steht als Live-Zähler auf der Übersicht der Konsole, im Sekundentakt aktualisiert, neben allem anderen, das auf einen Menschen wartet — die Warteschlange muss also niemand aus Gewohnheit öffnen.

Zimmerservice-Anfragen landen in derselben Konsole

Während des Aufenthalts kann ein Gast Anfragen an den Zimmerservice aus der App senden; sie kommen in derselben Konsole an. Eine kleine Funktion mit großer Wirkung für ein kleines Haus, denn die Alternative ist ein Telefon im Zimmer, an das niemand geht, oder der Weg zur Rezeption.

Eine Buchung ist eine Reservierung, keine Vorauszahlung. Der Ablauf erfasst Daten, Gast und Telefonnummer, und das Haus bestätigt. Korat nimmt bei der Buchung keine Karte, hält keine Kaution und verarbeitet den Zimmerpreis nicht — abgerechnet wird beim Haus.

Dasselbe gilt für eine Monatsrechnung: Sie wird erzeugt, dem Mieter gezeigt und trägt ein Bezahlt-Kennzeichen, das der Eigentümer setzt. Das Kennzeichen hält fest, dass Geld angekommen ist; es bewegt keines.

Zimmerraster und Konsole des Betriebs

Die Konsole gibt einem Haus vier Kacheln: ein Zimmerraster mit Ein- und Auschecken, eine Verwaltung der Zimmertypen samt Saisonregeln, den Buchungseingang und die Monatsmieten. Das Raster ist der Bildschirm, in dem eine Rezeption lebt — Belegung auf einen Blick und die zwei Handlungen, die sie ändern —, während in der Zimmertypverwaltung Preise, Anzahl, Ausstattung und Regeln einmal gepflegt werden.

Berichte, Kundenliste und Personal — für jeden Betriebstyp

Darum herum liegt, was jeder Betriebstyp bekommt. Berichte über Umsatz, Anzahl, durchschnittlichen Bon, die Aufteilung auf Bar, PromptPay und Sonstiges, die fünf meistverkauften Positionen, ein Sieben-Tage-Diagramm und die Zeiträume heute, sieben Tage, dreißig Tage oder gesamt, dazu Belegdruck und teilbarer Belegtext. Eine Steuerrechnung kann nicht ausgestellt werden: Nur umsatzsteuerlich registrierte Betriebe dürfen das, und nichts in diesem System erfasst bisher die Registrierung irgendeines Betriebs. Die Kundenliste entsteht aus dem Verkaufsjournal, mit Notizen, Tags, Historie und Punkten, die zu einer vom Betrieb in der eigenen Währung festgelegten Rate anfallen — für ein Haus mit wiederkehrenden Geschäftsreisenden ist gerade diese Historie der nützliche Teil. Die Personalverwaltung deckt Stempeln mit GPS und Notiz, Urlaubsanträge, Schichten und Lohn mit gearbeiteten Minuten und Überstunden ab acht Stunden am Tag, Aushänge und Aufgaben.

Monatsmiete: aus Zählerständen wird eine Rechnung

Bei der Monatsmiete hört das Modul auf, einem Hotelsystem zu ähneln. Ein Zimmertyp trägt eigene Miet- und Nebenkosteneinstellungen, ein Zimmer trägt Mieter und Kaution, und jeden Monat trägt der Eigentümer die Zählerstände für Wasser und Strom ein. Die Rechnung entsteht aus diesen Ständen — der Stand ist die Eingabe, die Rechnung die Ausgabe, und die Rechnerei passiert nicht auf Papier, um dann als Summe eingetippt zu werden, die später niemand prüfen kann. Jede erzeugte Rechnung trägt ein Bezahlt-Kennzeichen, sodass die Liste der offenen eine Abfrage ist und keine Gedächtnisleistung.

Das ist der Teil eines kleinen Apartmenthauses, der die meisten Streitigkeiten erzeugt, gerade weil er üblicherweise im Notizbuch stattfindet. Die Stände neben dem Mietverhältnis zu halten heißt, dass eine Rechnung auf die zwei Zahlen zurückführbar ist, aus denen sie stammt — eine bessere Antwort auf „warum ist es diesen Monat höher“ als eine neue Rechnung von vorn. Die Miete eines Zimmers und der Verleih eines Gegenstands gegen Kaution teilen sich ein Modul: siehe Vermietung.

Zwei Module tauchen in einem Objekt besonders oft auf. Die Terminbuchung, wenn dazu ein Spa oder ein Behandlungsraum gehört, und das Parken, das Monatskarten nach Kennzeichen an Dauermieter ausgibt.

Rechte im Team, und was der Gast nie sieht

Der Zugriff auf die Konsole läuft über eine Rechtematrix: dreizehn Kernberechtigungen plus alles, was installierte Module hinzufügen, Rollenvorlagen für Eigentümer, Manager, Service, Küche und Personal sowie Ausnahmen je Person. Kacheln verschwinden, wenn eine Berechtigung fehlt, und wer noch gar keine hat, sieht ausdrücklich „du hast noch keine Rechte“ statt eines leeren Bildschirms, der wie ein Defekt aussieht.

In der Android-App laufen diese Prüfungen auf dem Gerät. Dieselbe Matrix existiert in der Datenbank als has_capability(business_id, capability), wird von Row-Level-Security-Regeln genutzt und serverseitig aufgelöst, sodass der Server der Rollenangabe des Clients nie glaubt — aber es wäre übertrieben zu sagen, die gesamte Konsole sei heute serverseitig durchgesetzt, also sagen wir es nicht.

Häufige Fragen

Kann ich Übernachtungen und Monatsmieter im selben Objekt führen?

Ja — dafür ist das Modul so gebaut. Hotel, Resort, Apartment, Eigentumswohnung, Haus und Pension sind ein Betriebstyp, und die Kachel für Monatsmieten liegt im selben Objekt neben dem Buchungseingang.

Wie funktionieren Hochsaison- und Aktionspreise?

Ein Zimmertyp trägt Preisregeln, jede ein Datumsbereich plus eine Anpassung in Prozent oder als fester Betrag in der Währung der Unterkunft. Übersicht und Buchung werden von derselben Rechenstelle bepreist, der gezeigte Preis ist also der berechnete. Bei einer Aktionsregel zeigt die Karte den durchgestrichenen Grundpreis mit Abzeichen.

Zahlt ein Gast bei der Buchung?

Nein. Die Buchung erfasst Daten, Gast und Telefonnummer, und das Haus bestätigt sie im Buchungseingang. Bezahlt wird beim Haus; Korat nimmt bei der Buchung weder Karte noch Kaution.

Wie werden Wasser und Strom einem Mieter berechnet?

Der Eigentümer trägt die Zählerstände des Monats ein, und die Rechnung entsteht daraus, nach den Miet- und Nebenkosteneinstellungen des Zimmertyps. Jede Rechnung trägt ein Bezahlt-Kennzeichen, offene bleiben also als Liste sichtbar statt als etwas, das man sich merken muss.

Wer darf mein Haus bewerten?

Nur wer nachweislich dort übernachtet hat. Übernachten zählt zu den anerkannten Arten in der Berechtigungssicht; alle anderen sehen eine Karte mit der Erklärung, warum der Schreibknopf fehlt. Der Sternedurchschnitt wird von einem Trigger aus den Bewertungszeilen berechnet.

Ein Objekt einrichten

Zimmertypen anlegen, eine Saisonregel schreiben und denselben Preis in Liste und Buchung wiederfinden.