
###########################################################
#                                                         #
# Php-residence no ofrece ABSOLUTAMENTE NINGUNA GARANTIA; #
#        ver el archivo COPYING para los detalles.        #
#                                                         #
###########################################################

PHP-RESIDENCE versiòn 1.2
Programa para la gestiòn de hoteles y de alquileres semanales o 
diarios.

http://www.digitaldruid.net/php-residence/es/


SEGURIDAD
Si php-residence es utilizado en un ambiente de red inseguro es 
aconsejable activar la contraseña del usuario administrador y 
eventualmente utilizar conexiones ssl.
No deberìa haber problemas si varios ordenadores acceden 
contemporaneamente a la base de datos y los usuarios normales no 
deberìan poder hacer acciones no permitidas por los privilegios 
a ellos asignados.


ATENCIòN
Es aconsejable guardar todos los datos tambièn en maneras màs 
seguras y hacer frecuentes backups sobre archivo de la base de 
datos utilizando el sistema de backup de php-residence.


REQUISITOS SOFTWARE
-apache (>=1.3.26) o otro servidor de web que soporte php
-php (>=3.0.18) con estensiòn para postgresql, mysql o sqlite
-postgresql (>=7.4.7) o mysql (>=4.1.11) o sqlite
-un navegador que soporte html 4.01 con encoding utf-8

Las versiones indicadas son las que se han probado, podrìa 
funcionar tambièn sobre las anteriores. El programa ha sido 
provado solo bajo Linux, en teorìa tendrìa que funcionar tambièn 
sobre otros sistemas operativos que soporten los programas 
precedentes.
CONFIGURACIòN DE APACHE: Apache tiene que tener el soporte para 
php y ejecutar con este las pàginas con extensiòn .php. Esto 
normalmente està ya predispuesto para php4, mientras que para 
php3 tendrìa que añadirse la lìnea:

AddType application/x-httpd-php3 .php

en el archivo de configuraciòn de Apache (httpd.conf o srm.conf).
CONFIGURACIòN DE MYSQL: Para crear un usuario en mysql 
conctarse a la base de datos mysql como root (comando 
"mysql --user=root mysql") y ejecutar la query: 

GRANT ALL PRIVILEGES on nombredatabase.* to usuario@localhost IDENTIFIED BY 'pass';

substituyendo respectivamente nombredatabase, usuario y pass con 
vuestros datos.
CONFIGURACIòN DE POSTGRESQL: asegurarse que el servidor postgres 
sea arrancado con la opciòn "-i" para permitir conexiones por 
TCP/IP (en Debian 2.2 poner "PGALLOWTCPIP=yes" en 
/etc/postgresql/postmaster.init, en Red Hat 7.2 poner 
"tcpip_socket = true" en /var/lib/pgsql/data/postgresql.conf). 
Ademàs tienen que estar atribuidos los permisos justos en el 
archivo pg_hba.conf (normalmente van bièn los de default). Para 
crear un usuario en postgresql utilizar el comando 
"createuser nombre_usuario" desde usuario postgres ("su postgres" 
desde root) y responder si cuando es preguntado si podrà crear 
bases de datos.
CONFIGURACIòN DE SQLITE: la base de datos sqlite en realidad es 
un archivo creado en el directorio dati, asì que si se utiliza 
una versiòn 5 o superior de php no hace falta ninguna 
configuraciòn especial. Entre los datos para conectarse a la 
base de datos no hace falta insertar ni el nombre de usuario, ni 
la contraseña ni el nombre del servidor.


INSTALACIòN
Copiar el directorio php-residence bajo un directorio 
alcanzable desde el web (DocumentRoot en los archivos de 
configuraciòn de apache), y puntar el navegador sobre
http://localhost/php-residence/inizio.php (o donde habeis 
puesto el directorio). El directorio dati dentro de php-residence 
tiene que ser accesible en escritura al usuario con el que 
funciona el servidor web (usuario www-data en Debian), tambièn 
despuès de la instalaciòn. Asì que si se usa un servicio de 
hosting podrìa ser necesario cambiarlos atravès de ftp: por 
ejemplo con cuteftp (win) o gftp (linux) conectarse y pinchar 
con el botòn derecho sobre el directorio dati sobre el servidor 
(columna de la derecha), escoger la opciòn CHMOD y añadir los 
permisos de escritura (755 o 777).
Despuès de la pantalla inicial, donde se podrà escoger el idioma 
español, se tendràn que insertar los datos para conctarse a la 
base de datos, de los que algunos ya estàn presentes con valores 
que tendrìan que estar bièn para la mayorìa de los casos. La 
contraseña es necesaria solo si activada en el servidor postgres 
o mysql. En Debian con php3 responder si a la pregunta sobre la 
extensiòn "pgsql.so". Despuèn haber insertado los datos sobre 
los apartamentos (por lo menos el nùmero), se tendrà que crear 
el año que se quiere gestionar (màs tarde se podràn añadir al 
perìodo escogido meses al final pero no quitar). Si existe el 
año anterior se pueden importar eventuales precios y reservas de 
meses en comùn. Al final se llega al menù principal, que creo 
sea bastante intuitivo. Antes de poder insertar reservas se 
tendràn que insertrar los precios de los perìodos relativos.

Para la desinstalaciòn borrar el directorio php-residence y 
destruir la base de datos creada (destroydb nombredatabase o 
dropdb nombredatabase segùn la versiòn para postgresql).


ACTUALIZACIòN DESDE VERSIONES PRECEDENTES
Antes de actualizar es oportuno hacer un backup de la base de 
datos con el sistema de backup de php-residence y guardar el
backup.php, en caso contrario se podrìan PERDER TODOS LOS DATOS! 
Controlar tambièn que los nuevos requisitos software sean 
compatibles con los actuales.
Dejar en el directorio donde està instalado php-residence solo 
el directorio dati (siempre con los permisos de escritura para el 
servidor web), borrando todo el resto. Despuès copiar allì los 
archivos de la nueva versiòn (menos el directorios dati 
naturalmente) y POR PRIMERA COSA acceder al menù principal (como 
usuario administrador si està activado el login) y pulsar el 
boton "actualiza" esperando que se acabe de cargar la pàgina. Si 
se utilizan mòdulos o temas añadidos recordar copiar ellos 
tambièn con los archivos de la nueva versiòn.
Es posible pasar del utilizo de una base de datos postgresql a 
una mysql o viceversa utilizando el sistema de backup.

Si se està actualizando desde una versiòn anterior a la 1.1 
entonces los modelos para internet eventualmente presentes en 
los lugares predefinidos seràn renombrados. Archivos con los 
viejos nombres incluyendo los contenidos de los archivos con los 
nuevos nombres seràn creados tambièn, pero se recomienda 
actualizar los enlaces en el resto de su sitio para apuntar a 
los nuevos nombres.

Si se utiliza sqlite como base de datos entonces no se podrà 
actualizar a una nueva versiòn, habrà primero que cambiar de 
base de datos pasando a mysql o postgresql con el sistema de 
backup.

Si se utiliza una versiòn de mysql anterior a la 4.1 se 
recomienda crear un archivo de backup antes de actualizar mysql 
a una versiòn igual o superior a la 4.1 y restaurar ese archivo 
justo despuès.


CONSEJOS
-Utilizar los botones del navegador para volver atràs despès de
 haber visto un documento.
-Insertar siempre nùmeros con al màximo 2 decimales como dinero. 
 Para separar los decimales se puede utilizar la coma o el punto,
 pero NO separar nunca los miles.
-Si no se inserta ningùn método para la asignaciòn de un 
 apartamento en una reserva el programa asignarà automaticamente 
 el apartamento teniendo en cuenta el nùmero de personas y la 
 prioridad de los apartamentos (cuanto màs baja antes es 
 asignado).
-Las reservas ya empezadas y las que han registrado el horario de
 entrada son consideradas fijas. Para desplazar las ya empezadas 
 hay una opciòn cuando se intenta moverlas en apartamentos que no
 estan libres. 
-La regla de asignaciòn 1 puede ser usada para apartamentos
 reservados a agencias que tienen que ser avisadas en caso de 
 reserva.
-Con la regla de asignaciòn 2 se puede por ejemplo asociar una  
 tarifa llamada "4 personas" a los apartamentos que puerden 
 acojer 4 personas.
-Si no se quiere que el programa asigne automaticamente los 
 apartamentos basta con asignar siempre a todas las reservas un 
 apartamento fijo.
-Hacer una intalaciòn de prueba para ver como funciona antes de 
 insertar datos reales.
-Se puede asignar un precio distinto para cada perìodo a pesar de 
 que en la pàgina de inserciòn de precios hay solo 8 (se insertan 
 8 cada vez).
-Si se opera entre 2 años no crear el nuevo año hasta cuando no 
 empieze, sino continuar a insertar las reservas del año 
 siguiente desde el menù del año corriente, eventualmente se 
 pueden añadir los perìodos necesarios. Despuès cuando llega el 
 nuevo año crearlo importando las reservas del año anteriòr (para 
 poder hacerlo hay que utilizar el mismo tipo de perìodos del año 
 anterior y si los perìodos son semanales tambièn el mismo dìa de 
 principio/fin de semana). Se aconseja dejar activada la opciòn 
 en "configurar y personalizar" para crear el nuevo año en 
 automàtico el 10 de Enero.
-Para el nombre de los apartamentos utilizar por ejemplo 07 o 007 
 en lugar de 7 para tener las tablas de los meses ordenadas.
-El navegador recomendado para el back-office es mozilla firefox 
 o cualquier otro navegador basado sobre mozilla 
 (www.mozilla.org).
-Se pueden añadir nuevos usuarios desactivados y cambiar sus 
 columnas seleccionadas en la pàgina de personalizaciones para 
 tener distintos perfiles en la tabla con todas las reservas.
-Si php-residence es usado por internet con una conexiòn a tiempo 
 se puede instalarlo tambièn en el ordenador de casa y 
 subordenarlo (desde configura --> interconexiones) a la 
 instalaciòn de internet para ahorrar.


INSERCIòN DE LOS DOCUMENTOS
Desde "configura y personaliza", haciendo clic sobre sus nùmeros 
se pueden editar los textos de los documentos para imprimir, 
salvar o enviar por correo electrònico. Los textos han de ser 
insertados en formato HTML, RTF, o en texto simple para enviar 
correos electrònicos. Despuès haber instalado php-residence se 
encontraràn algunos ejemplos de documentos ya utilizables. Para 
insertar facilmente un documento RTF escribir primero el texto 
en el programa preferido (por ejemplo Word u OpenOffice), salvar 
el archivo en formato RTF y volver a abrirlo con un editor de 
textos, despuès copiar todo el texto y pegarlo en el documento.
En los documentos se pueden utilizar unas variables predefinidas 
que, en caso de que sean vacìas, seràn substituidas por espacios 
a rellenar. Las partes del documento dentro de los tags [r][/r] 
seràn repetidas para cada reserva (si los tags no son presentes 
todo el documento serà repetido). Dentro de estas partes se 
pueden insertar listas con los tags [r2][/r2] (para huèspedes) o 
[r3][/r3] (para costes añadidos). Por ejemplo para la lista con 
los datos de los huèspedes las variables acaban todas con el 
sufijo "_huesped".
Algunas de las variables disponibles para insertar son (la lista 
completa està en la pàgina para modificar los documentos):

Dato del cliente:
[apellido]		apellido
[nombre]		nombre
[fecha_nacimiento]	fecha de nacimiento
[el]			'el' (masculino) o 'la' (femenino)
[El]			'El' (masculino) o 'La' (femenino)
[al3]			'al' (masculino) o 'a la' (femenino)
[a]			'' (masculino) o 'a' (femenino)
[o3]			'o' (masculino) o 'a' (femenino)
[Mr]			'' (masculino) o 's' (femenino)
[nacion]		naciòn de proveniencia
[ciudad]		ciudad de residencia
[calle]			calle
[calle2]		como $calle pero inserta la palabra calle
			delante de los espacios si no es definida
[numero_calle]		nùmero en la calle
[codigo_postal]		codigo postal
[telefono]		nùmero de teléfono
[telefono2]		segundo teléfono
[telefono3]		tercer teléfono
[fax]			nùmero de fax

Datos de la reserva:
[num_personas]		nùmero de personas
[num_camas_extras]	camas extras de los costes
[num_personas_tot]	nùmero de personas + camas extras
[precio_tot]		precio total
[fianza]		fianza
[resto_fianza]		precio total - fianza
[fecha_inicial]		fecha de legada
[fecha_final]		fecha de llegada
[nombre_tarifa]		nombre de la tarifa
[precio_tarifa]		precio sin costes añadidos y descuento
[descuento]		descuento
[comentario]		comentario
[apartmento]		nùmero del apartamento
[lista_apartamentos]	lista de los apartamentos asignables 
			separados por comas
[pagado]		quanto ha sido pagado hasta ahora
[todos_costes_agnadidos]lista con todos los costes añadidos con 
			los respectivos valores
[nombre_coste_agna_sel]	nobre del coste añadido seleccionado 
			antes de ver el documento
[valor_coste_agna_sel]	valor del coste añadido seleccionado
			antes de ver el documento
[hoy]			fecha de hoy
[precio_tot_p],		como los precedentes sin _p final pero 
[fianza_p],[pagado_p],	formateados con puntos y comas para 
[resto_fianza_p],	decimales y miles
[precio_tarifa_p],
[descuento_p],
[todos_costes_agnadidos_p],
[valor_coste_agna_sel_p]


MODELOS PARA INTERNET
Es posible crear unos modelos a insertar en un sitio internet, 
por ejemplo para permitir a los visitantes de controlar la 
disponibilidad y eventualmente pedir reservar por correo 
electrònico. Se accede a la creaciòn de los modellos desde 
"Configura y personaliza". El modelo que se crea podrà despuès 
ser desplazado al proprio sitio internet (siempre con 
soporte para php) desde donde tendrà que poder acceder 
igualmente a la base de datos atravès de los datos insertados al 
momento de la creaciòn del modelo.
Una vez creado el modelo podrà ser editado a mano para insertar 
el proprio html. Se puede insertar el html al principio y al 
final del archivo, podiendo asì por ejemplo encerrar el 
formulario de disponibilidad al interior de una tabla. Editando 
el archivo se pueden ademàs cambiar todas las variables 
insertadas al momento de la creaciòn y tambièn las frases del 
formulario.
Se recomienda no mover a mano y renombrar los archivos, en 
cambio se pueden crear directamente en su posiciòn final 
ajustando el directorio donde so creados en "configurar y 
personalizar". De este modo los modelos seràn automaticamente 
actualizados cuando se crea un nuevo año o cuando se actualiza 
la base de datos.


GESTIòN DE USUARIOS
Se puede acceder a la gestiòn de usuarios desde la pàgina 
"Configura y personaliza". Nuevos usuarios pueden ser utilizados 
para dar acceso directo a agencias por parte del proprietario, o 
por una agencia para dar la posibilidad a los proprietarios de 
controlar la disponibilidad y bloquear perìodos.
Se pueden limitar los apartamentos que un usuario puede utilizar 
de dos maneras: haciendo que se puedan insertar reservas solo en 
perìodos seleccionados de la regla de asignaciòn 1, o haciendo 
que se puedan utilizar solo tarifas asociadas a determinados 
apartamentos através de la regla de asignaciòn 2 y que no se 
pueda ni insertar ni modificar la asignaciòn de los 
apartamentos.
Si se olvida la contraseña del usuario administrador se puede 
borrar el archivo abilita_login al interior del directorio dati,
de esta manera serà desactivado el login inicial y cualquiera 
podrà acceder con los privilegios del usuario administrador.


LICENCIA DE USO
Mirar el archivo COPYING.


AUTOR
Marco M. F. De Santis 
Email: marco@digitaldruid.net
