Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    ragionamento prenotazione albergo.

    Amici! (ahrarharha)
    Quuuesta volta vi chiedo un aiuto "teorico" che non riguarda il mio progetto ma per un lavoro che deve fare mio suocero per un albergo!!

    Lui sta preparando un DB in Access, ma utilizzando delle query SQL e da quanto ho visto è paro paro che si fa in PHP (select * from blablabla... )

    Ieri pomeriggio, dopo aver sistemato due tabelle (camere e prenotazioni) ci siamo incagliati sul tipo di "ragionamento" che bisogna fare per prenotare una stanza.

    Nel form prenotazioni ho fatto prevedere dei campi come nome, telefono, data contatto... e per la prenotazione vera e propria: numero stanza, data checkin, numero notti.

    come faccio a farmi risultare solo le camere che nel periodo sono libere?

    Grazie mille, da parte mie e di mio suocero (mia moglie me ne sarà grata )
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Dipende tutto da come gestisci le prenotazioni. Cosa fai quando una camera viene prenotata? Immagino che venga impostato un qualche valore in qualche tabella (camere, prenotazione o qualche tabella di relazione), per cui quando selezioni le camere disponibili devi eseguire una query ch eti restituisca tutte le che non hanno quel particolare valore impostato.
    Se ad esempio la tabella camere ha un aqualche campo che viene valorizzato in fase di prenotazione con valori che potrebbero essere 0 = camera libera e 1 = camera prenotata, devi fare una select sulle camere che come condizione hanno il valore di quel campo = 0, cioè non prenotate.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ciao Satifal!
    Si effettivamente il procedimento che mi proponi è abbastanza semplice, ma il discorso è più complesso credo.

    Io sono il cliente Rossi e voglio prenotare una camera matrimoniale per il periodo che va dal 10 febbraio per 5 notti.

    Nella tabella prenotazioni andrò a creare un record con i dati come di seguito (per es.):

    ID -> 86
    nome_cl : Rossi Mario
    camera : 101
    checkin : 10-02-2011
    notti: 5
    telefono : ...
    ...
    ...

    Io sono il Sig. Bianchi e voglio prenotare una stanza matrimoniale per il periodo che va dal 13 febbraio per 7 notti.
    Come faccio a escludere la camera 101?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  4. #4
    Ciao,
    se ho ben capito ogni riga della tabella corrisponde ad un singolo periodo di prenotazione, cioè se una camera è prenotata per più periodi in tabella ci saranno più righe.

    Se è cosi, credo che il problema si risolva solo con una subquery, selezionando nella select interna i numeri di camera che risultano occupati nel periodo richiesto dal cliente in arrivo e limitando l'estrazione della query esterna alle camere non presenti nella query interna.

    Ammettendo allora che:

    - data_inizio/data_fine siano le date entro cui ogni camera risulta occupata (da quanto hai detto data_fine non ce l'hai ma la puoi calcolare come data_inizio + numero_di_giorni)

    - data_ingresso/data_uscita siano le date della prenotazione in arrivo (anche in questo caso, se preferisci puoi usare la sola data_ingresso e calcolare la data_uscita conoscendo la durata della prenotazione).

    La cosa si dovrebbe risolvere così:

    codice:
    select numero_camera
      from tabella
     where numero_camera NOT IN
             (select numero_camera
                from tabella 
               where data_inizio <= data_uscita
                 and data_fine   >= data_ingresso)
    Così, a occhio, mi sembra che possa funzionare.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  5. #5
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ho fatto seguire questa discussione a mio suocero e mi ha appena inviato una mail dove mi dice che lo script funziona.
    Grazie mille, siete stati gentilissimi!
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  6. #6
    Ciao bANART (e suocero),
    oggi ci ripensavo e mi sono accorto che ho commesso un piccolo errore e cioè quei test su >= e su <= credo che debbano diventare > e < perché c'è da tener presente il discorso che le camere d'albergo vanno lasciate entro le 11 e date al nuovo cliente alle 16 per cui le giornate di inizio e fine di ciascun soggiorno possono essere condivise da due prenotazioni.

    In altre parole se io vado via il giorno 10 da una certa camera quella camera il giorno 10 deve risultare libera per un nuovo occupante mentre con i test che ti ho indicato risulterebbe occupata.

    Ma questo è solo un particolare che ho voluto puntualizzare per amor di precisione, l'albergo committente se ne sarebbe sicuramente accorto in fase di test.

    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Si, effettivamente nella mail che mi ha mandato mi dice che ha dovuto apportare questa correzione. Ad ogni modo l'importante è l'impostazione del ragionamento.
    Grazie ancora! (anche per la precisione )
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  8. #8
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Ciao " NonCeLaFaccio+"!!!

    Posso farti un'altra domandina?

    E' sorto un altro dubbio... l'albergatore vuole avere la possibilità di vedere le prenotazioni parziali delle camere.
    Questo significa che se una camera è prenotata il martedì e basta, l'albergatore deve visualizzare che la camera è libera lunedì e da mercoledì a domenica (scusa per l'esempio approssimativo, ma è per rendere l'idea )

    Dici che è una cosa che si può fare?
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  9. #9
    Non ho capito cosa intendi, una specie di planning con le camere sulle righe, le date sulle colonne e le crocette nelle caselline se la coppia camera/data è già prenotata?

    Oppure vuole poter chiedere al sistema qual è la situazione della camera x e avere in risposta la sequenza dei periodi liberi e prenotati?

    O cos'altro?

    E tutto questo entro che limiti temporali (la prossima settimana, il prossimo mese, da sempre...per sempre)?

    P.S. mi sa che la prossima richiesta dell'albergatore sarà di ottimizzare i turni delle cameriere al piano in base all'occupazione delle camere, per ridurre i tempi di inattività e poi vorrà anche gestire i rifornimenti in cucina... Tuo suocero si è trovato una bella gatta da pelare

    P.S. ho visto il tuo sito, è bellissimo, complimenti!
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  10. #10
    Ciao, sono specializzato nella creazione di software alberghieri (vedi freebeachclub.com, hotelroccaruja.it). In questi sistemi è creata ad hoc una pianificazione per giorni, praticamente devi avere una tabella che contiene i giorni (gg/mm) per 2 anni (2 anni per motivi di prenotazioni a cavallo di capodanno) ma il software ragionerà per un anno solo, in base a questa tabella fai ruotare disponibilità delle stanze, stagionalità ecc ecc. Diciamo che questo è l'albero maestro di un software di gestione disponibilità

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.