0

Verfügbarkeit von Zimmern checken

Hallo,

ich würde gern folgendes umstzen, ich habe eine Tabelle mit Buchungen (Name / Anreise mit Uhrzeit / Abreise mit Uhrzeit ...), dann eine Tabelle Zimmer (Zi1, Zi2 usw.). Weiterhin habe ich eine Zwischentabelle (ZimmerZT) um m:n Verknüpfungen zwischen Zimmer und Buchungen herstellen zu können. In der Zwischentabelle übernehme ich die Abreise als auch die Abreise und das Zimmer. 

Im Verknüpfungsfeld von ZimmerZT -> Zimmer N:1 lasse ich mir per Einschränkung

->  not contains(a.'schon gewählte Zimmer', b.text(ZiNr))  die noch nicht gewählten Zimmer anzeigen, was auch wunderbar klappt. 

Aber wie bekomme ich es hin dass er mir nur die Zimmer anzeigt, die tatsächlich frei sind und nicht durch eine andere Buchung im selben Zeitraum blockiert sind??

13 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo, spontane Idee:

     

    let Von := a.Buchungen.Anreise;
    let Bis := a.Buchungen.Abreise;
    b.ZimmerZT.Buchungen.Anreise >= Bis or b.ZimmerZT.Buchungen.Abreise <= Von

     

    Wobei ich bei den Original-Tabellenbezeichnungen geblieben bin. Wenn 'schon gewählte Zimmer' der Name der Verknüpfung zu 'ZimmerZT' ist, dann müsste man den Namen entsprechend ersetzen. 'Anreise' und 'Abreise' sind hier Felder vom Typ "Datum + Uhrzeit".

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke, ich probiers mal aus. 'schon gewählte Zimmer' ist ein Funktionsfeld concat(ZiNr) mit dem Ninox checkt welches Zimmer schon in der ZT ist.

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Die Prüfung, welche Zimmer für diesen Gast schon augewählt wurden, sollte man sich eigentlich schenken können, wenn man auf die Datumswerte abfragt. Denn in dem Augenblick, wo diese Zimmer gebucht sind, stehen sie ja auch in der Tabelle ZimmerZT, dürften also schon deshalb nicht mit erscheinen. 

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ja stimmt, auf den ersten Blick klappt es mit dem Code:

    let Von := a.'Anreise:';
    let Bis := a.Abreise;
    b.ZimmerZT.'Anreise:' >= Bis or b.ZimmerZT.Abreise <= Von

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Irgendwie scheint noch ein Wurm drin zu sein.

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Es gibt Termine da ist in der Tabell ZimmerZT definitiv nichts drin, er zeigt mir aber trotzdem nicht alle Zimmer an.

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Warum heißt es in bei "b.ZimmerZT.Buchungen.Anreise >= Bis or b.ZimmerZT.Buchungen.Abreise <= Von" or und nicht and? Es muss doch beide Kriterien erfüllen?

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Moin. Wenn ein Zimmer vom 05.04. bis zum 09.04. belegt ist, dann ist es für jedes zu prüfende ABreisedatum bis zum 05.04. verfügbar, unabhängig vom Anreisedatum. Ebenso verfügbar ist es für jedes ANreisedatum ab dem 09.04., egal, wie lange der Aufenthalt dauert. Es muss also eines der beiden Kriterien erfüllt sein. Beide gleichzeitig können ja gar nicht zutreffen.

     

    Das war meine Überlegung. Es kann aber selbstverständlich sein, dass ich dabei irgendwas übersehen habe. Wenn du also sagst, dass die Formel in manchen Fällen nicht funktioniert, dann wäre ein konkretes Beispiel hilfreich, das auf die Spur des falschen Gedankens führt.

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich hab mal kurz eine leere Datenbank genommen und alles neu aufgesetzt um Fehler in der laufenden DB auszuschließen. Dann habe ich Zimmer vergeben und folgendes festgestellt ,was ich mir nicht erklären kann,  da die Daten sich nicht überschneiden.

    Bildschirmfoto 2021-03-08 um 13.49.13

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hier mal das Datenbankmodell

    Bildschirmfoto 2021-03-08 um 13.53.34

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Da man seinen Beitrag nicht editieren kann hier nochmal zur Erklärung. Ich hab die Zimmer ausgewählt wie in Auflisten von Zimmer ersichtlich. Wenn ich dann ein neues Zimmer auswählen möchte habe ich die Zimmer in Anmerkung nicht in der Liste gefunden.

    Bildschirmfoto 2021-03-08 um 14.00.47

    Bitte entschuldigt die vielen Screenshots

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Die Einschränkung bei der Verknüpfung sieht folgendermaßen aus:

    let Von := a.Anreise;
    let Bis := a.Abreise;
    b.ZimmerZT.Anreise >= Bis or b.ZimmerZT.Abreise <= Von

    • Ferienanlage am Grenzbach
    • RHartung
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hat jemand eine Idee?

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 13Antworten
  • 755Ansichten