
PHP-RESIDENCE versione 0.1
Programma per la gestione di affitti settimanali.


ATTENZIONE
Questi script non sono stati testati approfonditamente, 
sono quindi altamente inaffidabili. E' consigliabile 
custodire tutti i dati anche in modi pi sicuri.


IMPORTANTE
php-residence non  stato pensato per funzionare in rete.
Infatti non ha nessun sistema di autenticazione, non 
effettua alcun controllo sui dati immessi e soprattutto
l'accesso contemporaneo di pi persone potrebbe portare
ad un malfunzionamento e/o danneggiamento dei dati del 
database.
  

REQUISITI SOFTWARE
-apache (>=1.3.9)
-php (>=3.0.16) con estensione per postgres
-postgresql (>=6.5.3)
-un browser che supporti le form

Le versioni indicate sono quelle da me utilizzate, potrebbe 
funzionare anche su quelle anteriori. Inoltre il programma
 stato provato solo su Linux, in teoria dovrebbe funzionare
anche su altri sistemi operativi che supportino i programmi
precedenti.
Apache deve avere php come modulo ed eseguire con esso le 
pagine con estensione .php. Ci normalmente  gi predisposto 
per php4, mentre per php3 si dovrebbe aggiungere la riga:

AddType application/x-httpd-php3 .php

nei file di configurazione di Apache (httpd.conf o srm.conf).
Assicurarsi che il server postgres sia avviato con l'opzione 
"-i" per permettere collegamenti via TCP/IP (in Debian porre 
"PGALLOWTCPIP=yes" in /etc/postgresql/postmaster.init). Per
creare un utente in postgresql utilizzare il comando 
"createuser nome_utente" da utente postgres ("su postgres" da
root) e rispondere si quando viene chiesto se potr creare 
database.


INSTALLAZIONE
Copiare la cartella php-residence sotto una directory 
raggiungibile dal web (DocumentRoot nei file di configurazione 
di apache), e puntare il browser su 
http://localhost/php-residence/inizio.php . La directory 
php-residence deve essere accessibile in scrittura 
dall'utente con cui gira il server web (utente www-data in 
Debian). Dopo la schermata iniziale si dovranno inserire i 
dati per collegarsi al database, alcuni dei quali sono gi
presenti con valori che dovrebbero andar bene nella maggior
parte dei casi. La password  necessaria solo se abilitata nel
server postgres. In Debian con php3 rispondere si alla domanda
riguardante l'estensione "pgsql.so". Dopo aver inserito i dati 
sugli appartamenti (almeno il numero che non si potr cambiare
in seguito), si dovr creare l'anno che si intende gestire (si
potranno in seguito aggiungere al periodo scelto dei mesi alla 
fine ma non toglierne). Se esiste l'anno precedente si possono
importare eventuali prezzi e prenotazioni riguardanti mesi in 
comune. Alla fine si arriva alla facciata principale, che 
penso sia abbastanza intuitiva. Prima di poter inserire delle 
prenotazioni si dovranno inserire i prezzi dei relativi 
periodi.

Per la disinstallazione cancellare la directory php-residence
e distruggere il database creato (destroydb nomedatabase).


CONSIGLI
-Non utilizzare mai i tasti del browser, tranne che per
 tornare indietro dopo la visualizzazione di un contratto. 
-Inserire sempre numeri interi, non decimali, come soldi.
-Se non si inserisce nessun metodo per l'assegnazione di un 
 appartamento in una prenotazione il programma assegner
 automaticamente l' appartamento tenendo conto del numero di 
 persone e delle priorit degli appartamenti.
-Se non si vuole che il programma assegni automaticamente 
 gli appartamenti basta assegnare sempre a tutte le 
 prenotazioni un numero fisso di appartamento.
-Fare una installazione di prova per vedere il funzionamento
 prima di inserire i dati reali.


INSERIMENTO DEI CONTRATTI
Nella cartella includes sono disponibili 8 file per tipi 
diversi di contratto o altri generi di testi da editare per
inserire i propri testi. I testi vanno inseriti in formato 
html nello spazio lasciato tra le due virgolette avendo 
l' accortezza di mettere il simbolo \ davanti ad ogni 
virgoletta del tipo ". Un esempio si pu vedere nel primo
contratto. Si possono utilizzare delle variabili predefinite
che se vuote verranno sostituite da spazi da riempire. Le 
variabili disponibili che si possono inserire sono:

Dati del cliente:
$cognome		cognome
$nome			nome
$datanascita		data di nascita
$il			'il' (maschile) o 'la' (femminile)
$al			'al' (maschile) o 'alla' (femminile)
$e			'e' (maschile) o 'a' (femminile)
$o			'o' (maschile) o 'a' (femminile)
$Mr			'' (maschile) o 's' (femminile)
$nazione		nazione di provenienza
$citta			citt di residenza
$via			via
$via2			come $via ma inserisce la parola via
			davanti agli spazi se non  definita
$numcivico		numero civico
$cap			codice di avviamento postale
$telefono		numero di telefono
$telefono2		secondo telefono
$telefono3		terzo telefono
$fax			numero di fax

Dati delle seconda persona di riferimento:
$cognome2, $nome2, 	come per la prima persona di riferimento
$datanascita2, $il2, 
$al2, $e2, $o2, $Mr2

Dati della prenotazione:
$num_persone		numero di persone
$n_letti_agg		letti aggiuntivi del costo percentuale
$num_persone_tot	numero di persone + letti aggiuntivi
$costo_tot		tariffa totale
$caparra		caparra
$resto_caparra		tariffa totale - caparra
$data_inizio		data di arrivo
$data_fine		data di partenza
$nome_tariffa		nome della tariffa
$costo_tariffa		tariffa senza costi aggiuntivi e sconto
$sconto			sconto
$commento		commento
$appartamento		numero dell' appartamento
$app_assegnabili	lista degli appartamenti assegnabili 
			separati da virgole
$pagato			quanto  stato pagato finora
$oggi			data odierna
$costo_tot_p,		come i precedenti senza _p finale ma con
$caparra_p,$pagato_p,	punti ogni 3 cifre
$resto_caparra_p,
$costo_tariffa_p


AUTORE
Marco M. F. De Santis, studente di ingegneria meccanica alla 
Sapienza di Roma. Email: marcods@gmx.it