Descrizione dell'Assegnazione Automatica
Che php-residence
possa assegnare automaticamente le prenotazioni significa che si
può inserire una prentotazione associandole una lista di
appartamenti, piuttosto che uno unico fisso, e poi php-residence le
assegnerà un appartamento della lista considerando le
caratteristiche di tali appartamenti e massimizzando la
disponibilità.
Le caratteristiche degli appartamenti che vengono considerate
sono il massimo numero di persone che si possono ospitare e la loro
priorità, valori che vengono inseriti alla creazione del
database e possono essere modificati dalla tabella con tutti gli
appartamenti. Il numero massimo di persone è considerato in
quanto non può essere più basso del numero di persone
della prenotazione. Si può comunque inserire una prenotazione
con più persone del massimo dell'appartamento nel quale viene
inserita utilizzando un costo aggiuntivo che sia considerato come
numero di letti aggiuntivi. La priorità è considerata in
quanto gli appartamenti con quella più bassa sono assegnati per
primi. Infine, se si inseriscono più prenotazioni in contemporanea, è
possibile inserirle in appartamenti vicini tra loro.
Per massimizzare la disponibilità php-residence
sposterà le prenotazioni tra i loro appartamenti assegnati se
è necessario per liberare un appartamento in un periodo
richiesto. Assumiamo per esempio che abbiamo questa situazione in un
residence con 4 appartamenti:
| 01 --- 02 |
02 --- 03 |
03 --- 04 |
04 --- 05 |
05 --- 06 |
06 --- 07 |
07 --- 08 |
08 --- 09 |
09 --- 10 |
10 --- 11 |
11 --- 12 |
12 --- 13 |
|
| 1 | 10 |
12 |
||||||||||
| 2 | 11 |
1 | 2 | 4 |
13 | |||||||
| 3 | 8 |
7 |
5 |
|||||||||
| 4 | 9 |
3 | 6 | |||||||||
dove per semplicità ci sono solo prenotazioni che possono essere
assegnate a tutti e 4 gli appartamenti, in verde, e prenotazioni che
sono assegnate ad un solo appartamento fisso, in rosso. Se ora viene
inserita una nuova prenotazione, la numero 14, nel periodo dal giorno 8
al 10, php-residence sposterà le prenotazioni 10, 1, 2 e 7 per
liberare un appartamento e questa sarà la nuova situazione:
| 01 --- 02 |
02 --- 03 |
03 --- 04 |
04 --- 05 |
05 --- 06 |
06 --- 07 |
07 --- 08 |
08 --- 09 |
09 --- 10 |
10 --- 11 |
11 --- 12 |
12 --- 13 |
|
| 1 | 1 | 12 | ||||||||||
| 2 | 11 | 7 | 4 |
13 | ||||||||
| 3 | 8 |
2 | 14 | 5 |
||||||||
| 4 | 10 | 9 |
3 | 6 | ||||||||
Se si fosse provato ad inserire la prenotazione 14 in un appartamento
differente dal numero 3 php-residence avrebbe risposto che non era
possibile inserire la prenotazione in un appartamento tra quelli
richiesti. Naturalmente le prenotazioni che sono già iniziate
non verranno mosse dall'appartamento in cui sono, a meno che non
vengano spostate manualmente ad una ad una. Così nell'esempio
precedente se oggi fosse stato il giorno 2 non si sarebbe potuto
inserire la prenotazione 14 a meno di non spostare prima la
prenotazione 10 nell'appartamento 4.
Quando si inserisce una prenotazione si può scegliere la
lista di appartamenti direttamente, specificando i loro numeri o le
loro caratteristiche (casa, piano, numero di persone), o scegliendo la
tariffa con la regola di assegnazione 2. Questa regola assegna ad ogni
tariffa una lista di appartamenti che sono automaticamente selezionati
quando viene scelta la tariffa e non si dà nessuna lista
direttamente. Con la regola di assegnazione 2 si può per esempio
associare la tariffa "camera doppia" a tutti gli appartamenti che
possono ospitare 2 persone.
La regola di assegnazione 1 invece può essere utilizzata
per riservare alcuni periodi di un appartamento a delle agenzie. In
questo modo php-residence proverà a non occupare questi periodi
fino a quando non si renda necessario, dopodichè vi
avvertirà prima di inserirvi una prenotazione.