in welcher Saison liegt eine Buchung?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • in welcher Saison liegt eine Buchung?

    Hallo zusammen,
    da mir dieses Forum schon so oft geholfen hat und ich einfach nicht weiterkomme frage ich nun hier einmal öffentlich nach.

    Ich habe folgendes Problem:
    In meinem Buchungssystem muss ich für eine potenzielle Buchung überprüfen, in welche Saison sie fällt, da für die vermietbaren Objekte je nach Saison unterschiedliche Preise anfallen.

    Ein Jahr ist also in unterschiedliche Zeiträume (e.g. 01.01-15.02 Hauptsaison (50 euro/übernachtung), 15.02-30.03 Nebensaison(30Euro/Übernachtung) aufgeteilt.

    will jemand nun etwas zum Beispiel vom 10.02 - 15.02 mieten, so muss, um den Preis festzustellen, zuerst irgendwie geschaut werden, wieviele Übernachtungen in welche Saison fallen. in der sql DB werden jeweils anfangs und enddaten der Saisons gespeichert.

    Welches ist wohl theoretisch der einfachste Weg, um hier ranzugehen? Ich habe alles möglich versucht, hab aber keine ahnung wie ich das am besten löse.

    Vielen Dank für Eure Tipps.

  • #2
    Hallo,

    anderes Beispiel, zu meinem Verständnis:

    Ein Jahr hat Quartale (4). Wenn jmd was zb für den Feb bestellt, soll geprüft werden, in welches Quartal oder eben in welche Saison diese fällt?

    (Ist auch relevant, wenn man Saisonübergreifend bucht? Die ersten 3Tage fallen in die Haupt, die letzen 5 fallen in die Nebensaison. Spezifisch hierzu soll dann der Preis berechnet werden)

    Dann würde ich das mit date() und Vergleichsoperatoren anstellen.

    Kommentar


    • #3
      *move* to BRAINSTORMING

      Kommentar


      • #4
        Buchung 100 sql abfragen.

        @Zine:

        <Das Beispiel mit den Quartalen ist genau richtig. Es geht eben um diese quartalsübergreifenden Buchungen. Und insbesondere auch darum, das eine Buchung auch 3 Quartale berühren kann. Da für jedes Quartalpro Nacht andere Preise gelten ist es ein bischen komplizierter.

        Ich komme jedenfalls nicht gescheit weiter. DIe letzrte Idee war alle Tage einzeln in einen Array zu schreiben und füpr jeden zu prüfen in welche Saison er fällt. Leider ergibt das natürlich bei einer 100 Tage Buchung 100 sql Abfragen. Und das geht natürlich nicht. Zumal das ganze für hunderte von verschiedenen WOhnungen abgefragt werden muss.

        Ich schnalls nicht..

        Kommentar


        • #5
          Leider ergibt das natürlich bei einer 100 Tage Buchung 100 sql Abfragen
          Quatsch! Wenn ich 100 Einträge aus der DB lesen will, brauche ich auch keine 100 queries.

          Kommentar


          • #6
            hast ja recht

            falsch ausgedrückt.

            Trotzdem raff ich nicht, wie man es am besten macht. Hat denn keiner hier schon mal was ähnliches gemacht?

            Dank euch

            Kommentar


            • #7
              Weiß zwar nicht, was daran falsch ausdrücken konnte, aber ne ganz einfache möglichkeit haben wir doch schon.

              einfach für alle tage die entsprechende saison rausziehen. das ist eine query. fettisch.

              In dem Zusammenhang solltest du dann auch noch SUM() nutzen können.

              Kommentar


              • #8
                Mein Problem ist doch auch, dass ich nicht weiss, wie ich aus dem Zeitraum den ich bekomme (z.B. 01.01.04 - 23.03.04) einzelne Tage mache.

                -->Alle in einem Array speichern und dann mit sql für diese 100 einträge jeweils die Saison ziehen?.
                a la:

                -------------
                $anreisedatum="01.01.04" ;
                $abreisedatum="23.03.04";
                $datumswerte=$anreisedatum;
                $differenz= $abreisedatum-$anreisedatum
                for($count = 1; $count <= $differenz; $count++)
                {
                array_push($datumswerte,$datumswerte+(1 Tag));
                }
                ------------
                Dann würde der für alle 300 WOhnungen diese 100 Tage abfragen müssen. Dauert das nicht ein wenig lang?

                Kommentar


                • #9
                  mk_time

                  Dann würde der für alle 300 WOhnungen diese 100 Tage abfragen müssen.
                  ich dachte, die sache mit den 100 queries hätten wir erledigt?

                  Kommentar


                  • #10
                    Re: in welcher Saison liegt eine Buchung?

                    Original geschrieben von Phantomas
                    will jemand nun etwas zum Beispiel vom 10.02 - 15.02 mieten, so muss, um den Preis festzustellen, zuerst irgendwie geschaut werden, wieviele Übernachtungen in welche Saison fallen. in der sql DB werden jeweils anfangs und enddaten der Saisons gespeichert.
                    hello,

                    ich bin nun nicht der sql-spezi.
                    aber...
                    angenommen, du hättest ne DB in der pro datum ein preis steht:
                    20050101 55
                    20050102 55
                    ...
                    20050201 60
                    ..
                    usw..

                    dann genügt doch EIN SQL-Satement um den Endpreis für einen bestimmten Zeitraum zu bekommen:

                    / free sql code
                    select sum(preis) from DB where datum >= VONDATUM AND datum <= BISDATUM....
                    / ende free sql code


                    wurde hier aber schon geschrieben.

                    in diesem sinne

                    have fun

                    k.

                    Kommentar


                    • #11
                      naja, vom db layout aber sicher nicht die schönste möglichkeit.

                      Kommentar


                      • #12
                        Hallo, sitze an genau dem selben Problem.

                        Die Idee von kuempivonstein war schon nicht schlecht, allerdings möchte ich den Preis erst am Schluss ausrechnen, deshalb versuche ich folgendes:

                        Habe mir für 4 Saisons eine Table mit 5 Spalten angelegen: einer Datumsspalte und 4 Saisonspalten. Für jedes Datum (also jede Zeile) steht eine 1 in der Spalte der entsprechenden Saison.


                        Code:
                        Datum    |  A  |  B  |  C  |  D
                        -----------------------------------
                        15-03-06  |  1  |  0  |  0  |  0
                        16-03-06  |  1  |  0  |  0  |  0
                        17-06-06  |  0  |  1  |  0  |  0
                        18-06-06  |  0  |  1  |  0  |  0
                        Wenn sich jetzt die einzelnen Spalten vom Anreisedatum bis zum Abreisedatum-1 (weil der Abreisetag nicht als Übernachtung zählt) addiere, bekomme ich die Tage für jede Saison.

                        Kommentar


                        • #13
                          und warum nicht

                          datum | saison

                          ???

                          Kommentar


                          • #14
                            ich würde so vorgehen:

                            1. DB-Design:

                            Tabelle: season
                            lid, season, dtfrom, dtto

                            2. prüfen:

                            select * from season where ($dt_book_from between dtfrom and dtto) or ($dt_book_to between dtfrom and dtto)

                            3. Ergebnisauswertung:
                            bekomme ich 1 DS -> liegt die Buchung in der selben Saison, bekomme ich dagegen 2 DS -> na ... wat nu

                            Kommentar


                            • #15
                              Original geschrieben von TobiaZ
                              naja, vom db layout aber sicher nicht die schönste möglichkeit.
                              *lach*

                              DA könnte man drüber diskutieren.

                              Aber so grundsätzlich stimme ich Dir zu, dass mit der DB die Anwendung steht und fällt.
                              Im DB-Design steckt die grösste Arbeit.
                              Wer an dieser Stelle schludert, hat hinterher in der Anwendung den (Mehr-)Aufwand.

                              Manchmal hat man ja auch das Problem, dass man auf eine laufende Anwendung stösst und gezwungen ist zuzuschustern...
                              sowas ist meistens undankbar.

                              k.

                              Kommentar

                              Lädt...
                              X