You are on page 1of 12

Universidad Mariano Glvez de Guatemala

Ingeniera En Sistemas De Informacin


VIII Semestre
Sistemas de Informacin Gerencial
Ing. Marvin Xiloj

Manual Tcnico y Manual de usuario sobre el


sistema de cadena hotelera Westin Palace Hotels
(Reportes)

Integrantes
Balam Denis Rigoberto Saloj Saloj 1290-11-4039
Eduardo lvarez Njera
1290-11-4331
Edwin Ral de Len Mndez
1290-11-4030

La Antigua Guatemala 31 de octubre de 2014

Manual
Tcnico

La finalidad de este manual es el proporcionarle a usted la lgica con la que se


ha desarrollado el sistema cadena Hotelera Westin Palace enfocado a los
reportes que se puede obtener en dicho sistema, la cual se sabe que es propia
de cada programador; por lo que es necesario ser documentada. Para un
mayor detalle acerca de cada una de las herramientas utilizadas y su forma de
operacin. Es por ello que es recomendable consultar los diferentes manuales
que les brindara.
Nota: los cambios generados en el sistema hotelera fue en las tablas de
reservacin y hospedaje donde se agreg una nueva columna llamada total. Y
as mismo tener la opcin de cancelar reservacin y el campo para dar la razn
de la cancelacin valga la redundancia.
cancelar.php
Conjunto de cdigo para la cancelacin de reservaciones generadas en el
sistema. Cuenta con un campo para especificar el motivo de la cancelacin.
reportes.php
Es el formulario donde cuenta con las diferentes opciones de reportes que
deseamos visualizar. Reportes como:

Tipo de habitacin ms frecuente


Disponibilidad de cada hotel segn el hospedaje
Detalles de huspedes (nios y adultos)
Total de ingresos (Q) para el hotel
Huspedes con mayor frecuencia de hospedaje
Mes con ms hospedajes al ao
Forma de hospedaje ms utilizada
Porcentaje de disponibilidad del hotel
Motivos de cancelaciones de reservaciones
Hoteles con mayor registro de hospedaje
Reporte1.php

Lnea de cdigo que contiene el formulario habitacin ms usada para el


ingreso de rango de fecha y si la consulta es para un cierto hotel o para todo
los hotelesl.
generar_reporte1.php
En estas lneas de cdigo, lo que se puede apreciar es la utilizacin de la clase
fpdf que nos permite generar archivos PDF con php. FPDF se utiliz para
representar los diferentes reportes.
<?php
require ('fpdf/fpdf.php');

include ('configuracion.php');
$fecha_entrada = str_replace('T', ' ', $_POST['checkin']);
$fecha_salida = str_replace('T', ' ', $_POST['checkout']);
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 11);
$Hora = Time() + (60 *60 * -7);
$fecha=date("Y-m-d")." ".date("H:i:s",$Hora);
$pdf->Cell(330,5,date('d-m-Y H:i',strtotime($fecha)),0,0,'L');
Lnea de cdigo que sirve para check ear la fecha de entrada ingresada por la
persona autorizada y la fecha de salida.
$fecha_entrada = str_replace('T', ' ', $_POST['checkin']);
$fecha_salida = str_replace('T', ' ', $_POST['checkout']);
En la siguiente lnea de cdigo contiene las diferentes consultas que se
realizan para mostrar los datos requeridos para el primer reporte. Se utiliza el
cdigo de UNION ALL para unir dos tablas con sus respectivos datos, en este
caso la tabla reservacin y el hospedaje para saber el tipo de habitacin con
ms reservaciones realizadas en un determinado rango de fechas.
$query = "SELECT count(*) cantidad, th.descripcion
FROM tipo_habitacion th, (Select ha.tipo_id as tipo
FROM reservaciones re, reservacion_habitacion rh, habitaciones ha
WHERE ha.hotel_id = '".$row_datos['hotels_id']."'
AND rh.habitacion_id = ha.habitacion_id
AND rh.reservacion_id = re.reservacion_id
AND re.estado = 2
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'
UNION ALL
select ha.tipo_id as tipo
from habitaciones ha, hospedaje ho, detalle_hospedaje dh
WHERE ha.hotel_id = '".$row_datos['hotels_id']."'
AND dh.habitacion_id = ha.habitacion_id
AND dh.hospedaje_id = ho.hospedaje_id
AND ho.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."' )
AS GRUPOS WHERE GRUPOS.tipo = th.tipo_habitacion_id
GROUP BY tipo";
Reporte2.php
Lnea de cdigo que contiene el formulario de cuantos ingresaron al hotel para
hospedarse, para realizar la consulta se ingresa el ao y el hotel para saber
cuntas personas se hospedaron.

generar_reporte2.php
generar_reporte2.php contiene el cdigo para mostrar toda informacin de
cuantos ingresaron al hotel para hospedarse. Toda informacin a mostrar ser
por mes para as apreciar con mucha facilidad los datos requeridos.
if ($_POST['hotel']=="Todos")
$query = "SELECT count(*) cantidad, MONTH(fecha) as mes
FROM (Select re.fecha_ingreso as fecha
FROM reservaciones re
WHERE re.hotel_id = '".$row_datos['hotels_id']."'
AND re.estado = 2
UNION ALL
select ho.fecha_ingreso as fecha
from hospedaje ho WHERE ho.hotel_id = '".$row_datos['hotels_id']."'
) AS GRUPOS
WHERE YEAR(GRUPOS.fecha) = '".$_POST['ano']."'
GROUP BY MONTH(fecha)
ORDER BY MONTH(fecha) ASC;";
Reporte3.php
Contiene la lnea de cdigo para el formulario de disponibilidad de cada hotel,
tiene la lnea de cdigo para el ingreso de la fecha y la opcin de escoger un
hotel o la opcin de todos los hoteles.
generar_reporte3.php
generar_reporte3.php contiene la lnea de cdigo para el reporte de la
disponibilidad de cada hotel para x fecha. Ingresemos el da desde el formulario
de reporte.
Lnea de cdigo para el control de la fecha ingresada
$fecha=date("Y-m-d")." ".date("H:i:s",$Hora);
$pdf->Cell(330,5,date('d-m-Y H:i',strtotime($fecha)),0,0,'L');
En la siguiente lnea de cdigo se puede apreciar las consultas realizadas para
la obtencin de la disponibilidad de cada hotel en cierto da.
Las
consultas
fueron
desde
las
tablas
de
reservaciones,
reservacin_habitacion y habitaciones como se aprecia en la siguiente lnea de
cdigo.
$query = "SELECT count(*) cantidad, th.descripcion
FROM tipo_habitacion th, (Select ha.tipo_id as tipo
FROM reservaciones re, reservacion_habitacion rh, habitaciones ha

WHERE ha.hotel_id = '".$row_datos['hotels_id']."'


AND rh.habitacion_id = ha.habitacion_id
AND rh.reservacion_id = re.reservacion_id
AND re.estado = 2
AND re.fecha_ingreso = '".$fecha_entrada."'
UNION ALL
select ha.tipo_id as tipo
from habitaciones ha, hospedaje ho, detalle_hospedaje dh
WHERE ha.hotel_id = '".$row_datos['hotels_id']."'
AND dh.habitacion_id = ha.habitacion_id
AND dh.hospedaje_id = ho.hospedaje_id
AND ho.fecha_ingreso = '".$fecha_entrada."'
) AS GRUPOS
WHERE GRUPOS.tipo = th.tipo_habitacion_id
GROUP BY tipo";
Reporte4.php
Contiene la lnea de cdigo para el formulario de que mtodo es ms utilizado
al momento de hospedarse, tiene la lnea de cdigo para el ingreso de la fecha
y la opcin de escoger un hotel o la opcin de todos los hoteles.
generar_reporte4.php
generar_reporte4.php contiene la lnea de cdigo para la siguiente consulta, de
que mtodo es ms utilizado al momento de hospedarse en los diferentes
hoteles que cuenta la cadena hotelera. Ya sea reservar las habitaciones desde
la pgina que cuenta Westin Palace o la reservacin directa (en las
instalaciones de cada hotel).
Al momento de realizar la consulta se realiza atraves de un rango de fechas.
Las consultas se pueden generar para todos los hoteles o para cierto hotel.
Lnea de cdigo para las consultas realizadas desde la tabla reservaciones y
hospedaje.
Tabla de reservaciones = las reservaciones generadas desde el sistema.
Tabla de hospedaje = reservaciones generadas directamente en las
instalaciones de cierto hotel.
$query = "SELECT count(*) cantidad
FROM reservaciones re
WHERE re.hotel_id = '".$row_datos['hotels_id']."'
AND re.estado = 2
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'";
$query = "SELECT count(*) cantidad
FROM hospedaje ho
WHERE ho.hotel_id = '".$row_datos['hotels_id']."'
AND ho.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'";

Reporte5.php
Contiene la lnea de cdigo para el formulario de detalle de hospedaje para
llevar el control de nio o adulto que se hospedan, tiene la lnea de cdigo para
el ingreso de la fecha y la opcin de escoger un hotel o la opcin de todos los
hoteles.
generar_reporte5.php
Cdigo para la consulta de detalle de hospedaje nio o adultos.
Las consultas se realizan desde las tablas de reservacin, huspedes y
hospedaje. Toda consulta se genera a partir de un rango de fechas.
$query = "SELECT ninos, adultos, nombre, apellido, fecha
FROM (Select re.ninos ninos, re.adultos adultos, hu.nombre nombre,
hu.apellido apellido, re.fecha_ingreso fecha
FROM reservaciones re, huespedes hu
WHERE re.hotel_id = '".$row_datos['hotels_id']."'
AND re.estado = 2
AND hu.huesped_id = re.huesped_id
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'
UNION ALL
Select ho.ninos ninos, ho.adultos adultos, hu.nombre nombre, hu.apellido
apellido, ho.fecha_ingreso fecha
FROM hospedaje ho, huespedes hu
WHERE ho.hotel_id = '".$row_datos['hotels_id']."'
AND hu.huesped_id = ho.huesped_id
AND ho.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."' )
AS GRUPOS";
Se cuenta con una lnea de cdigo para el control total de nios y adultos que
se hospedan en cada hotel.
$totalninos=0;
$totaladultos=0;
Reporte6.php
Contiene la lnea de cdigo para el formulario del porcentaje de disponibilidad
de cada hotel, tiene la lnea de cdigo para el ingreso de la fecha y la opcin de
escoger un hotel o la opcin de todos los hoteles.
generar_reporte6.php
Lnea de cdigo para la consulta del porcentaje de disponibilidad de cada hotel
desde un rango de fecha.
Las
consultas
son
generadas
desde
la
tabla
reservaciones,
reservacion_habitacion y habitaciones. Se puede apreciar las diferentes

comparaciones de cada atributo. Y la UNION ALL que realiza con las tablas de
habitaciones, hospedaje y detalle_hospedaje.
La consulta se mostrara por medio de una fecha, y si se desea apreciar el
porcentaje de disponibilidad, de todos los hoteles o de un hotel especifico.
$query = "SELECT count(*) as cantidad
FROM (Select ha.tipo_id as tipo
FROM reservaciones re, reservacion_habitacion rh, habitaciones ha
WHERE ha.hotel_id = '".$row_datos['hotels_id']."'
AND rh.habitacion_id = ha.habitacion_id
AND rh.reservacion_id = re.reservacion_id
AND re.estado = 2
AND re.fecha_ingreso = '".$fecha_entrada."'
UNION ALL
select ha.tipo_id as tipo
from habitaciones ha, hospedaje ho, detalle_hospedaje dh
WHERE ha.hotel_id = '".$row_datos['hotels_id']."'
AND dh.habitacion_id = ha.habitacion_id
AND dh.hospedaje_id = ho.hospedaje_id
AND ho.fecha_ingreso = '".$fecha_entrada."' ) AS GRUPOS";
Reporte7.php
Contiene la lnea de cdigo para el formulario total de ingreso (Q) para todos
los hoteles, tiene la lnea de cdigo para el ingreso del da para ver todo los
ingresos que se obtuvo y la opcin de escoger un hotel o la opcin de todos
los hoteles.
<?php
$query3 = "SELECT nombre
FROM hoteles
ORDER BY nombre";
$result3 = mysql_query($query3) or die("Error en la instruccion SQL 2");
if ($row3 = mysql_fetch_array($result3)){
do {
echo "<option>".$row3['nombre']."</option>";
}while ($row3 = mysql_fetch_array($result3));
}echo "<option>Todos</option>";?>
generar_reporte7.php
Cdigo para la consulta: Total de ingreso (Q) para todos los hoteles. La
consulta se puede realizar para un determinado hotel o para todos los hoteles.
$query = "SELECT sum(total) cantidad, fecha as fecha
FROM (Select total as total, fecha_ingreso as fecha
FROM reservaciones re

WHERE re.hotel_id = '".$row_datos['hotels_id']."'


AND re.estado = 2
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'
UNION ALL
select total as total, fecha_ingreso as fecha
from hospedaje ho
WHERE ho.hotel_id = '".$row_datos['hotels_id']."'
AND ho.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."') AS
GRUPOS
GROUP BY DAY(fecha)
ORDER BY DAY(fecha), MONTH(fecha) ASC";
Reporte8.php
Contiene la lnea de cdigo para el formulario motivos de cancelacin de
reservaciones, tiene la lnea de cdigo para el ingreso de la fecha de inicio y fin
y la opcin de elegir un hotel o la opcin de todos los hoteles.
<?php
include ("configuracion.php");
$fecha_actual=date("Y-m-d")."T".date("15:00");
$fecha_salida=date('Y-m-d',strtotime("$fecha_actual+1 day"))."T".date("15:00");
$query = "SELECT hotels_id, nombre, departamento, direccion, telefono,
imagen
FROM hoteles ";
$result = mysql_query($query) or die("Error en la instruccion SQL");
$row2 = mysql_fetch_array($result);?>
generar_reporte8.php
Cdigo para la consulta: Motivos de cancelacin de reservaciones.
Las consultas son generadas desde la tabla reservaciones y huspedes. Se
puede apreciar las diferentes comparaciones de cada atributo. La consulta que
se desea realizar va ser por el rango de fecha.
$query = "SELECT re.motivo_cancela, re.fecha_ingreso, re.fecha_salida,
hu.nombre, hu.apellido
FROM reservaciones re, huespedes hu
WHERE re.hotel_id = '".$row_datos['hotels_id']."'
AND re.estado = 0
AND hu.huesped_id = re.huesped_id
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'";
Cual quieres consulta est apegado con el manejo de errores de instrucciones.
$result = mysql_query($query) or die("Error en la instruccion SQL 2");
if ($row = mysql_fetch_array($result))

Reporte9.php
Contiene la lnea de cdigo para el formulario de clientes con mayor frecuencia
de hospedaje, contiene la lnea de cdigo para el ingreso de un rango de fecha
y la opcin de elegir un hotel o la opcin de todos los hoteles para mostrar la
consulta deseada.
<?php
include ("configuracion.php");
$fecha_actual=date("Y-m-d")."T".date("15:00");
$fecha_salida=date('Y-m-d',strtotime("$fecha_actual+1
day"))."T".date("15:00");
$query = "SELECT hotels_id, nombre, departamento,
direccion, telefono, imagen
FROM hoteles
";
$result = mysql_query($query) or die("Error en la
instruccion SQL");
$row2 = mysql_fetch_array($result);?>
generar_reporte9.php
Cdigo para la consulta: Clientes con mayor frecuencia de hospedaje.
Las consultas se realizan para las tablas de reservaciones, huspedes y
hospedaje. Se une las consultas realizadas de reservaciones con el de
hospedaje as como el de huspedes con huspedes de la consulta 1 con la
consulta 2.
$query = "SELECT count(*) cantidad, huesped, nombre, apellido, sum(total) as
total
FROM (Select hu.huesped_id as huesped, hu.nombre as nombre, hu.apellido
as apellido, re.total as total
FROM reservaciones re, huespedes hu
WHERE re.estado = 2
AND hu.huesped_id = re.huesped_id
AND re.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'
UNION ALL
Select hu.huesped_id as huesped, hu.nombre as nombre, hu.apellido as
apellido, ho.total as total
from hospedaje ho, huespedes hu
WHERE ho.huesped_id = hu.huesped_id
AND ho.fecha_ingreso between '".$fecha_entrada."' and '".$fecha_salida."'
) AS GRUPOS
GROUP BY huesped
ORDER BY cantidad DESC, nombre, apellido";

Reporte9.php
Contiene la lnea de cdigo para el formulario de hoteles con mayor registro de
hospedaje, contiene la lnea de cdigo para el ingreso de mes y ao as como
la opcin de elegir un hotel o la opcin de todos los hoteles para mostrar la
consulta deseada.
<div class="container_12">
<div class="grid_8">
<form class="formulario" method="POST" action="generar_reporte10.php"
target="_blank">
<br>
<table align="center" style="color:#fff;"><tr>
<td width="100px">Mes:</td>
<td>
<select name="mes">
<option>Enero</option>
<option>Febrero</option>
<option>Marzo</option>
<option>Abril</option>
<option>Mayo</option>
<option>Junio</option> </select>
</tr>
<tr>
<td>Anio:</td>
<td><select name="ano">
<option>2014</option>
<option>2013</option>
<option>2012</option>
<option>2011</option>
<option>2010</option>
</select></td>
</tr><tr><td>Hotel:</td><td><div class="select-1">
<select name="hotel" >
<?php
$query3 = "SELECT nombre
FROM hoteles
ORDER BY nombre";
$result3 = mysql_query($query3) or die("Error en la instruccion SQL 2");
if ($row3 = mysql_fetch_array($result3)){do {
echo "<option>".$row3['nombre']."</option>";
}while
($row3
=
mysql_fetch_array($result3));}echo
"<option>Todos</option>";?>

generar_reporte10.php
Cdigo de consulta: Hoteles con mayor hospedaje en cierto rango de fechas.
Las consultas se realizan en las tablas de reservaciones y hospedaje, se utiliza
el cdigo UNION ALL para la unin de las tablas.
$query = "SELECT count(*) cantidad, sum(total) as total
FROM (Select re.reservacion_id as hospedaje, re.total as total
FROM reservaciones re
WHERE re.hotel_id ='".$row_datos['hotels_id']."'
AND re.estado = 2
AND MONTH(re.fecha_ingreso) = '".$mes."'
AND YEAR(re.fecha_ingreso) = '".$ano."'
UNION ALL
select ho.hospedaje_id as hospedaje, ho.total as total
from hospedaje ho
WHERE ho.hotel_id = '".$row_datos['hotels_id']."'
AND MONTH(ho.fecha_ingreso) = '".$mes."'
AND YEAR(ho.fecha_ingreso) = '".$ano."') AS GRUPOS ";

You might also like