Está en la página 1de 88

TECNOLÓGICO DE ESTUDIOS SUPERIORES DE VALLE DE BRAVO

INGENIERÍA EN SISTEMAS COMPUTACIONALES

INGENIERIA DE SOFTWARE

MANUAL TÉCNICO

M EN ISC ARACELI GUERRERO ALONSO

JOSÉ MANUEL RODRÍGUEZ MANDUJANO

JORGE VARGAS ORTIZ.

RAMIRO GUTIÉRREZ DE PAZ

OSVALDO ARRIAGA GARDUÑO.

MELISA GARCIA BENITEZ

SERGIO ERNESTO ESQUIVEL DE LA CRUZ

Valle de Bravo, estado de México, julio de 2020.


Índice

Índice ................................................................................................................................................ 1

Índice de imágenes ........................................................................................................................... 5

Objetivos .......................................................................................................................................... 6

Objetivos específicos........................................................................................................................ 6

Alcance ............................................................................................................................................. 6

Requerimientos técnicos .................................................................................................................. 6

Software ....................................................................................................................................... 6

Hardware ...................................................................................................................................... 6

Requerimientos mínimos de hardware ............................................................................................. 6

Herramientas utilizadas para el desarrollo de la aplicación ............................................................. 7

Instalación ........................................................................................................................................ 7

Configuración ................................................................................................................................. 10

Análisis ........................................................................................................................................... 10

Introducción ............................................................................................................................... 10

Propósito..................................................................................................................................... 10

Alcance ....................................................................................................................................... 10

Referencias ................................................................................................................................. 10

Desarrollo ....................................................................................................................................... 11

1
Index ........................................................................................................................................... 11

Autoload ..................................................................................................................................... 12

Enrutador .................................................................................................................................... 13

Request ....................................................................................................................................... 14

clientesController ....................................................................................................................... 16

empleadosController .................................................................................................................. 18

habitacionesController ............................................................................................................... 20

preciosController ........................................................................................................................ 22

reservacionesController .............................................................................................................. 24

serviciosController ..................................................................................................................... 26

Models ............................................................................................................................................ 28

Cliente.php ................................................................................................................................. 28

Conexión.php ............................................................................................................................. 30

Empleado.php ............................................................................................................................. 31

Habitación.php ........................................................................................................................... 33

Precio.php ................................................................................................................................... 35

Reservacion.php ......................................................................................................................... 37

Servicio.php................................................................................................................................ 39

Views .............................................................................................................................................. 41

2
Clientes ....................................................................................................................................... 41

Agregar ................................................................................................................................... 41

Buscar.php .............................................................................................................................. 43

Editar.php ............................................................................................................................... 45

Index.php ................................................................................................................................ 47

Empleados .................................................................................................................................. 49

Agrega.php ............................................................................................................................. 49

Editar.php ............................................................................................................................... 51

Index ....................................................................................................................................... 53

Habitaciones ............................................................................................................................... 55

Agregar.php ............................................................................................................................ 55

Editar.php ............................................................................................................................... 57

Index.php ................................................................................................................................ 59

Inicio........................................................................................................................................... 61

Index.php ................................................................................................................................ 61

Precios ........................................................................................................................................ 62

Agregar.php ............................................................................................................................ 62

Editar.php ............................................................................................................................... 64

Index.php ................................................................................................................................ 66

3
Reservaciones ............................................................................................................................. 67

Agregar.php ............................................................................................................................ 67

Editar.php ............................................................................................................................... 70

Index.php ................................................................................................................................ 72

Reservacion..php .................................................................................................................... 74

Servicios ..................................................................................................................................... 76

Agregar.php ............................................................................................................................ 76

Editar.php ............................................................................................................................... 78

Index ....................................................................................................................................... 80

Template ..................................................................................................................................... 82

Template.php .......................................................................................................................... 82

Template.php .............................................................................................................................. 84

Privilegios de usuarios: Totales...................................................................................................... 87

4
Índice de imágenes

Figura 1 Panel de control de XAMPP .............................................................................................. 7

Figura 2 Mover proyecto .................................................................................................................. 8

Figura 3 Archivo descomprimido .................................................................................................... 9

Figura 4 Ingreso al programa ........................................................................................................... 9

5
Objetivos

Describir el proceso por el cual el software fue diseñado y creado con la finalidad de proporcionar
un medio de orientación dirigido al ingeniero a cargo del programa para que este pueda interactuar
o dar mantenimiento en caso de ser requerido.

Objetivos específicos

• Mostrar el código fuente de la aplicación para una posible actualización a futuro


• Requisitos para la ejecución del software

Alcance

Este documento se encuentra dirigido a: programador

Con conocimientos básicos en: programación de sitios web y administración de bases de datos

Requerimientos técnicos
Software

• Un emulador de servidor (XAMPP): Para el correcto funcionamiento de la base de datos


• Navegador web (Oracle, Mozilla, Chrome, etc.): Para el manejo de la aplicación
• Una aplicación de desarrollo de páginas web (Sublime text): Para reparar y/o actualizar el
sistema en caso de ser necesarios

Hardware

• Una computadora completa (bocinas no necesarias): Esto incluye periféricos como teclado
y ratón.
• En su defecto también se podría utilizar una laptop.

Requerimientos mínimos de hardware

• Procesador Intel Pentium 1,5 ghz


• Memoria RAM 256mb
• Disco duro 128mb

6
Herramientas utilizadas para el desarrollo de la aplicación

• Un emulador de servidor (XAMPP): Para el correcto funcionamiento de la base de datos


• Navegador web (Oracle, Mozilla, Chrome, etc.): Para el manejo de la aplicación
• Una aplicación de desarrollo de páginas web (Sublime text): Para reparar y/o actualizar el
sistema en caso de ser necesarios

Instalación

1. Se debe ejecutar XAMPP y dentro de este activar los módulos de apache y MySQL

Figura 1 Panel de control de XAMPP

7
2. Después se procederá a buscar el paquete y moverlo a la carpeta señalada, posterior a esto
se deberá descomprimir el archivo dentro de la carpeta

Figura 2 Mover proyecto

8
3. Se tiene que descomprimir dentro de la carpeta señalada

Figura 3 Archivo descomprimido

4. Después de esto nos movemos a nuestro explorador, en mi caso Opera GX en donde


escribiremos lo siguiente “localhost/Proyecto_Angeles/inicio/index

Figura 4 Ingreso al programa

9
Configuración

No hay configuraciones extras que se tengan que hacer al proyecto, viene totalmente funcional para
después de su instalación.

Análisis
Introducción

Este sistema ha sido analizado, diseñado, desarrollado y puesto a prueba de diversas maneras para
lograr la mayor viabilidad y velocidad al momento de que cualquier persona que tenga acceso a
este lo utilice.

Siempre se tuvo en mente la idea de proporcionar un medio digital para mantener en orden los
registros dentro de la posada, para que de esta manera se lograra agilizar los procesos durante la
asignación de habitaciones y demás procesos.

Propósito

Se intentó mantener la máxima sencillez durante la elaboración del software para que de esta
manera se logren agilizar los procesos presentes durante el funcionamiento de la posada.

Alcance

La posada ángeles, desde un principio se planteó el análisis, diseño y desarrollo de una base de
datos basada en las necesidades exclusivas de la posada.

Referencias

codigofacilito. (20 de Julio de 2015). YouTube . Obtenido de YouTube (curso):


https://www.youtube.com/watch?v=al-
IPuaJ2MQ&list=PLpOqH6AE0tNh2Hu2KWoXxTbhHzRgCaHxH&index=1

10
Desarrollo
Index

<?php

////Su función radica en darnos acceso a las distintas pantallas que componen el
proyecto

define('DS', DIRECTORY_SEPARATOR);
define('ROOT', realpath(dirname(__FILE__)) . DS);
define('URL', "http://localhost/Proyecto_Angeles/");

require_once "Config/Autoload.php";
Config\Autoload::run();
require_once "Views/template.php";
Config\Enrutador::run(new Config\Request());
?>

11
Autoload

<?php namespace Config;


//La función de la clase autoload es mantener separadas las clases y tratarlas de
manera individual//
class Autoload{

public static function run(){


spl_autoload_register(function($class){
$ruta = str_replace("\\", "/", $class) . ".php";
include_once $ruta;
});
}

?>

12
Enrutador

<?php namespace Config;


//La función de esta clase consiste en simplificar las direcciones URL para que e
l usuario tenga mayor facilidad al ingresar en las ventanas//
class Enrutador{

public static function run(Request $request){


$controlador = $request->getControlador() . "Controller";
$ruta = ROOT . "Controllers" . DS . $controlador .".php";
$metodo = $request->getMetodo();
if($metodo == "index.php"){
$metodo = "index";
}
$argumento = $request->getArgumento();
if(is_readable($ruta)){
require_once $ruta;
$mostrar = "Controllers\\" . $controlador;
$controlador = new $mostrar;
if(!isset($argumento)){
$datos = call_user_func(array($controlador, $metodo));
}else{
$datos = call_user_func_array(array($controlador, $metodo), $
argumento);
}
}

//Cargar vista
$ruta = ROOT . "Views" . DS . $request-
>getControlador() . DS . $request->getMetodo() . ".php";
if(is_readable($ruta)){
require_once $ruta;
}else{
print "No se encontro la vista";
}
}

}
?>

13
Request

<?php namespace Config;


//La función de una clase request es complementar a la clase enrutador, de esta m
anera la clase request solicita al enrutador una clave URL simplificada para
//direcciones que esta misma obtiene

class Request{

private $controlador;
private $metodo;
private $argumento;

public function __construct(){


if(isset($_GET['url'])){
$ruta = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL);
$ruta = explode("/", $ruta);

$ruta = array_filter($ruta);

if($ruta[0] == "index.php"){
$this->controlador = "clientes";
}else{
$this->controlador = strtolower(array_shift($ruta));
}

$this->metodo = strtolower(array_shift($ruta));

if(!$this->metodo){
$this->metodo = "index";

}
$this->argumento = $ruta;
}
else{
$this->controlador = "clientes";

$this->metodo = "index";

14
}

public function getControlador(){


return $this->controlador;
}

public function getMetodo(){


return $this->metodo;
}

public function getArgumento(){


return $this->argumento;
}
}
?>

15
clientesController

<?php namespace Controllers;


//La utilidad de esta clase es la de controlar las acciones que lleva a cabo la p
ágina
use Models\Cliente as Cliente;

class clientesController
{

private $cliente;

public function __construct()


{
$this->cliente=new Cliente();
}

public function index()


{
if($_POST){
$this->cliente->set("nombre",$_POST['busca']);
$datos = $this->cliente->buscar();
return $datos;
}else{
$datos=$this->cliente->listar();
return $datos;
}
}
//Acción de agregar
public function agregar(){
if($_POST){
$this->cliente->set("nombre", $_POST['nombre']);
$this->cliente->set("ap", $_POST['ap']);
$this->cliente->set("am", $_POST['am']);
$this->cliente->set("tel", $_POST['tel']);
$this->cliente->agregar();
header('Location: '. URL . "clientes");
}
}
public function buscar($busca){

16
$this->cliente->set("nombre", $busca);
$datos = $this->cliente->buscar();
return $datos;
}
//Acción de editar
public function editar($id_cliente){
if($_POST){
$this->cliente->set("id_cliente", $_POST['id_cliente']);
$this->cliente->set("nombre", $_POST['nombre']);
$this->cliente->set("ap", $_POST['ap']);
$this->cliente->set("am", $_POST['am']);
$this->cliente->set("tel", $_POST['tel']);
$this->cliente->editar();
header('Location: '. URL . "clientes");
}else{
$this->cliente->set("id_cliente", $id_cliente);
$datos = $this->cliente->ver();
return $datos;
}
}
//Acción de eliminar
public function eliminar($id_cliente){
$this->cliente->set("id_cliente", $id_cliente);
$this->cliente->eliminar();
header('Location: '. URL . "clientes");
}
}
?>

17
empleadosController

<?php namespace Controllers;


//Funciona de manera que ejecuta las acciones que se programen dentro de la inter
faz
use Models\Empleado as Empleado;

class empleadosController
{

private $empleado;

public function __construct()


{
$this->empleado=new Empleado();
}

public function index()


{
$datos=$this->empleado->listar();
return $datos;
}
//Acción agregar
public function agregar()
{
if($_POST){
$this->empleado->set("nombre", $_POST['nombre']);
$this->empleado->set("ap", $_POST['ap']);
$this->empleado->set("am", $_POST['am']);
$this->empleado->set("cargo", $_POST['cargo']);
$this->empleado->agregar();
header('Location: '. URL . "empleados");
}
}
//Acción editar
public function editar($id_empleado){
if($_POST){
$this->empleado->set("id_empleado", $_POST['id_empleado']);
$this->empleado->set("nombre", $_POST['nombre']);
$this->empleado->set("ap", $_POST['ap']);
$this->empleado->set("am", $_POST['am']);

18
$this->empleado->set("cargo", $_POST['cargo']);
$this->empleado->editar();
header('Location: '. URL . "empleados");
}else{
$this->empleado->set("id_empleado", $id_empleado);
$datos = $this->empleado->ver();
return $datos;
}
}
//Acción eliminar
public function eliminar($id_empleado){
$this->empleado->set("id_empleado", $id_empleado);
$this->empleado->eliminar();
header('Location: '. URL . "empleados");
}

?>

19
habitacionesController

<?php namespace Controllers;


//La función de esta clase es la de ejecutar las acciones especificadas dentro de
la interfaz de habitaciones
use Models\Habitacion as Habitacion;

class habitacionesController
{

private $habitacion;

public function __construct()


{
$this->habitacion=new Habitacion();
}

public function index()


{
$datos=$this->habitacion->listar();
return $datos;
}
//Agregar registro
public function agregar()
{
if($_POST){
$this->habitacion->set("tipo", $_POST['tipo']);
$this->habitacion->set("numero_per", $_POST['numero_per']);
$this->habitacion->set("descripcion", $_POST['descripcion']);
$this->habitacion->set("precio", $_POST['precio']);
$this->habitacion->agregar();
header('Location: '. URL . "habitaciones");
}
}
//Editar registro
public function editar($id_habitacion){
if($_POST){
$this->habitacion->set("id_habitacion", $_POST['id_habitacion']);
$this->habitacion->set("tipo", $_POST['tipo']);
$this->habitacion->set("numero_per", $_POST['numero_per']);
$this->habitacion->set("descripcion", $_POST['descripcion']);

20
$this->habitacion->set("precio", $_POST['precio']);
$this->habitacion->editar();
header('Location: '. URL . "habitaciones");
}else{
$this->habitacion->set("id_habitacion", $id_habitacion);
$datos = $this->habitacion->ver();
return $datos;
}
}
//Eliminar registro
public function eliminar($id_habitacion){
$this->habitacion->set("id_habitacion", $id_habitacion);
$this->habitacion->eliminar();
header('Location: '. URL . "habitaciones");
}

?>

21
preciosController

<?php namespace Controllers;


//La función de esta clase es la de ejecutar las acciones dadas en la interfaz de
precios
use Models\Precio as Precio;

class preciosController
{

private $precio;

public function __construct()


{
$this->precio=new Precio();
}

public function index()


{
$datos=$this->precio->listar();
return $datos;
}
//Acción de agregar
public function agregar()
{
if($_POST){
$this->precio->set("moneda", $_POST['moneda']);
$this->precio->set("precio", $_POST['precio']);
$this->precio->agregar();
header('Location: '. URL . "precios");
}
}
//Acción de editar
public function editar($id_precio){
if($_POST){
$this->precio->set("id_precio", $_POST['id_precio']);
$this->precio->set("moneda", $_POST['moneda']);
$this->precio->set("precio", $_POST['precio']);
$this->precio->editar();
header('Location: '. URL . "precios");
}else{

22
$this->precio->set("id_precio", $id_precio);
$datos = $this->precio->ver();
return $datos;
}
}
//Acción de eliminar
public function eliminar($id_precio){
$this->precio->set("id_precio", $id_precio);
$this->precio->eliminar();
header('Location: '. URL . "precios");
}

?>

23
reservacionesController

<?php namespace Controllers;


//La función de esta clase es la de ejecutar las opciones enlistadas dentro de la
interfz de reservaciones
use Models\Reservacion as Reservacion;

class reservacionesController
{

private $reservacion;

public function __construct()


{
$this->reservacion=new Reservacion();
}

public function index()


{
$datos=$this->reservacion->listar();
return $datos;
}
//Acción de agregar
public function agregar()
{
if($_POST){
$this->reservacion->set("nombre", $_POST['nombre']);
$this->reservacion->set("ap", $_POST['ap']);
$this->reservacion->set("am", $_POST['am']);
$this->reservacion->set("tel", $_POST['tel']);
$this->reservacion-
>set("id_habitacion", $_POST['id_habitacion']);
$this->reservacion->set("id_servicio", $_POST['id_servicio']);
$this->reservacion->set("fecha_inicio", $_POST['fecha_inicio']);
$this->reservacion->set("fecha_final", $_POST['fecha_final']);
$this->reservacion->agregar();
header('Location: '. URL . "reservaciones");
}
}
//Acción de editar
public function editar($id_reserva){

24
if($_POST){
$this->reservacion->set("id_reserva", $_POST['id_reserva']);
$this->reservacion->set("fecha_inicio", $_POST['fecha_inicio']);
$this->reservacion->set("fecha_final", $_POST['fecha_final']);
$this->reservacion-
>set("id_habitacion", $_POST['id_habitacion']);
$this->reservacion->set("id_cliente", $_POST['id_cliente']);
$this->reservacion->set("id_servicio", $_POST['id_servicio']);
$this->reservacion->editar();
header('Location: '. URL . "reservaciones");
}else{
$this->reservacion->set("id_reserva", $id_reserva);
$datos = $this->reservacion->ver();
return $datos;
}
}
//Acción de eliminar
public function eliminar($id_reserva){
$this->reservacion->set("id_reserva", $id_reserva);
$this->reservacion->eliminar();
header('Location: '. URL . "reservaciones");
}

public function ticket($id_reserva){


if($_POST){
$this->reservacion->set("id_reserva", $_POST['id_reserva']);
$this->reservacion->set("fecha_inicio", $_POST['fecha_inicio']);
$this->reservacion->set("fecha_final", $_POST['fecha_final']);
$this->reservacion-
>set("id_habitacion", $_POST['id_habitacion']);
$this->reservacion->set("id_cliente", $_POST['id_cliente']);
$this->reservacion->set("id_servicio", $_POST['id_servicio']);
$this->reservacion->editar();
header('Location: '. URL . "reservaciones");
}else{
$this->reservacion->set("id_reserva", $id_reserva);
$datos = $this->reservacion->ver();
return $datos;
}
}
}
?>

25
serviciosController

<?php namespace Controllers;


//Clase dedicada a ejecutar los comandos de las acciones establecidas dentro de l
a interfaz de servicios
use Models\Servicio as Servicio;

class serviciosController
{

private $servicio;

public function __construct()


{
$this->servicio=new Servicio();
}

public function index()


{
$datos=$this->servicio->listar();
return $datos;
}
//Acción de agregar
public function agregar(){
if($_POST){
$this->servicio->set("nombre_ser", $_POST['nombre_ser']);
$this->servicio->set("precio", $_POST['precio']);
$this->servicio->agregar();
header('Location: '. URL . "servicios");
}
}
//Acción de editar
public function editar($id_servicio){
if($_POST){
$this->servicio->set("id_servicio", $_POST['id_servicio']);
$this->servicio->set("nombre_ser", $_POST['nombre_ser']);
$this->servicio->set("precio", $_POST['precio']);
$this->servicio->editar();
header('Location: '. URL . "servicios");
}else{
$this->servicio->set("id_servicio", $id_servicio);

26
$datos = $this->servicio->ver();
return $datos;
}
}
//Acción de eliminar
public function eliminar($id_servicio){
$this->servicio->set("id_servicio", $id_servicio);
$this->servicio->eliminar();
header('Location: '. URL . "servicios");
}
}

?>

27
Models

Cliente.php

<?php namespace Models;


//Consultas y Retornos “Cliente”
class Cliente{

private $id_cliente;
private $nombre;
private $ap;
private $am;
private $tel;
private $busca;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql="SELECT * FROM clientes";
$datos=$this->con->consultaRetorno($sql);
return $datos;
}
public function buscar(){
$bus=$this->busca;
$sql = 'select * FROM clientes WHERE nombre = '.$bus;
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);

28
return $row;
}

public function agregar(){


$sql ="INSERT INTO clientes(id_cliente, nombre, ap, am, tel)
VALUES (null,'{$this->nombre}','{$this->ap}','{$this->am}','{$this-
>tel}')";
$this->con->consultaSimple($sql);
}

public function eliminar(){


$sql="DELETE FROM clientes WHERE id_cliente='{$this->id_cliente}'";
$this->con->consultaSimple($sql);
}

public function editar(){


$sql="UPDATE clientes SET nombre='{$this->nombre}', ap='{$this-
>ap}', am='{$this->am}', tel='{$this->tel}' WHERE id_cliente='{$this-
>id_cliente}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT * FROM clientes WHERE id_cliente = '{$this-
>id_cliente}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}
}

?>

29
Conexión.php

<?php namespace Models;


//Conexión a base de datos
class Conexion{

private $datos = array(


"host" => "localhost",
"user" => "root",
"pass" => "",
"db" => "habitaciones"
);
private $con;

public function __construct(){


$this->con = new \mysqli($this->datos['host'],
$this->datos['user'], $this->datos['pass'],
$this->datos['db']);
}

public function consultaSimple($sql){


$this->con->query($sql);

public function consultaRetorno($sql){


$datos = $this->con->query($sql);
return $datos;
}
}

?>

30
Empleado.php

<?php namespace Models;


//Consulta y Retorno “Empleado”
class Empleado{

private $id_empleado;
private $nombre;
private $ap;
private $am;
private $cargo;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql="SELECT * FROM empleados";
$datos=$this->con->consultaRetorno($sql);
return $datos;
}

public function agregar(){


$sql ="INSERT INTO empleados (id_empleado, nombre, ap, am,cargo)
VALUES (null,'{$this->nombre}','{$this->ap}','{$this->am}','{$this-
>cargo}')";
$this->con->consultaSimple($sql);
}

public function eliminar(){


$sql="DELETE FROM empleados WHERE id_empleado='{$this-
>id_empleado}'";

31
$this->con->consultaSimple($sql);
}

public function editar(){


$sql="UPDATE empleados SET nombre='{$this->nombre}', ap='{$this-
>ap}', am='{$this->am}',cargo='{$this->cargo}' WHERE id_empleado='{$this-
>id_empleado}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT * FROM empleados WHERE id_empleado = '{$this-
>id_empleado}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}

}
?>

32
Habitación.php

<?php namespace Models;


//Consultas y Retorno Habitación
class Habitacion{

private $id_habitacion;
private $tipo;
private $numero_per;
private $descripcion;
private $precio;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql="SELECT * FROM habitaciones";
$datos=$this->con->consultaRetorno($sql);
return $datos;
}

public function agregar(){


$sql ="INSERT INTO habitaciones (id_habitacion, tipo, numero_per, des
cripcion,precio,estado)
VALUES (null,'{$this->tipo}','{$this->numero_per}','{$this-
>descripcion}','{$this->precio}','Disponible')";
$this->con->consultaSimple($sql);
}

public function eliminar(){

33
$sql="DELETE FROM habitaciones WHERE id_habitacion='{$this-
>id_habitacion}'";
$this->con->consultaSimple($sql);
}

public function editar(){


$sql="UPDATE habitaciones SET tipo='{$this-
>tipo}', numero_per='{$this->numero_per}', descripcion='{$this-
>descripcion}',precio='{$this->precio}' WHERE id_habitacion='{$this-
>id_habitacion}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT * FROM habitaciones WHERE id_habitacion = '{$this-
>id_habitacion}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}

}
?>

34
Precio.php

<?php namespace Models;


//Consulta, acciones y retorno “Precio.php”
class Precio{

private $id_precio;
private $moneda;
private $precio;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql="SELECT * FROM precios";
$datos=$this->con->consultaRetorno($sql);
return $datos;
}

public function agregar(){


$sql ="INSERT INTO precios (id_precio,moneda,precio)
VALUES (null,'{$this->moneda}','{$this->precio}')";
$this->con->consultaSimple($sql);
}

public function eliminar(){


$sql="DELETE FROM precios WHERE id_precio='{$this->id_precio}'";
$this->con->consultaSimple($sql);
}

public function editar(){

35
$sql="UPDATE precios SET moneda='{$this->moneda}', precio='{$this-
>precio}' WHERE id_precio='{$this->id_precio}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT * FROM precios WHERE id_precio = '{$this-
>id_precio}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}

}
?>

36
Reservacion.php

<?php namespace Models;


// Consulta, acciones y retornos “Reservacion”
class Reservacion{

private $id_reserva;
private $fecha_inicio;
private $fecha_final;
private $id_habitacion;
private $id_cliente;
private $id_servicio;
private $nombre;
private $ap;
private $am;
private $tel;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql = "SELECT r.id_reserva,r.fecha_inicio,r.fecha_final,h.tipo,c.nom
bre,c.ap,c.am,s.nombre_ser FROM reservaciones r,habitaciones h,clientes c,servici
os s where r.id_habitacion=h.id_habitacion and r.id_cliente=c.id_cliente and r.id
_servicio=s.id_servicio";
$datos = $this->con->consultaRetorno($sql);
return $datos;
}

public function agregar(){

37
//$sql ="INSERT INTO reservaciones (id_reserva, fecha_inicio,fecha_fi
nal, id_habitacion, id_cliente, id_servicio)
//VALUES (null,'{$this->fecha_inicio}','{$this-
>fecha_final}','{$this->id_habitacion}','{$this->id_cliente}','{$this-
>id_servicio}')";
$sql="call Reservarciones ('{$this->nombre}','{$this->ap}','{$this-
>am}','{$this->tel}','{$this->id_habitacion}','{$this->id_servicio}','{$this-
>fecha_inicio}','{$this->fecha_final}')";
$dato = $this->con->consultaRetorno($sql);
return $dato;
}

public function eliminar(){


$sql="DELETE FROM reservaciones WHERE id_reserva='{$this-
>id_reserva}'";
$this->con->consultaSimple($sql);
}

public function editar(){


$sql="UPDATE reservaciones SET fecha='{$this->fecha_inicio}','{$this-
>fecha_final}', id_habitacion='{$this->id_habitacion}', id_cliente='{$this-
>id_cliente}', id_servicio='{$this->id_servicio}' WHERE id_reserva='{$this-
>id_reserva}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT r.id_reserva,r.fecha_inicio,r.fecha_final,h.tipo,h.pre
cio,c.nombre,c.ap,c.am,c.tel,s.nombre_ser,s.precio_ser FROM reservaciones r,habit
aciones h,clientes c,servicios s where r.id_habitacion=h.id_habitacion and r.id_c
liente=c.id_cliente and r.id_servicio=s.id_servicio and id_reserva = '{$this-
>id_reserva}'";
// $sql = "SELECT * FROM reservaciones WHERE id_reserva = '{$this-
>id_reserva}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}
}

?>

38
Servicio.php

<?php namespace Models;


//Consultas acciones y retornos “Servicio”
class Servicio{

private $id_servicio;
private $nombre_ser;
private $con;

public function __construct(){


$this->con=new Conexion();
}

public function set($atributo,$contenido){


$this->$atributo=$contenido;
}

public function get($atributo){


return $this->$atributo;
}

public function listar(){


$sql="SELECT * FROM servicios";
$datos=$this->con->consultaRetorno($sql);
return $datos;
}

public function agregar(){


$sql ="INSERT INTO servicios(id_servicio, nombre_ser, precio_ser)
VALUES (null,'{$this->nombre_ser}','{$this->precio}')";
$this->con->consultaSimple($sql);
}

public function eliminar(){


$sql="DELETE FROM servicios WHERE id_servicio='{$this-
>id_servicio}'";
$this->con->consultaSimple($sql);
}

public function editar(){

39
$sql="UPDATE servicios SET nombre_ser='{$this-
>nombre_ser}',precio_ser='{$this->precio}' WHERE id_servicio='{$this-
>id_servicio}'";
$this->con->consultaSimple($sql);
}

public function ver(){


$sql = "SELECT * FROM servicios WHERE id_servicio = '{$this-
>id_servicio}'";
$datos = $this->con->consultaRetorno($sql);
$row = mysqli_fetch_assoc($datos);
return $row;
}
}

?>

40
Views

Clientes

Agregar

<div class="box-principal">
//Vista agregar
<h3 class="titulo">Agregar Clientes<hr></h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Agregar un nuevo cliente</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del cliente</label>
<input class="form-
control" name="nombre" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" name="am" type="text" required>

41
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Telefono</label>
<input class="form-
control" name="tel" type="text" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

42
Buscar.php

<div class="box-principal">
//Visto Buscar
<h3 class="titulo">Listado de Clientes
<hr>
</h3>
<div class="row">
<div class="input-group mb-3">
<form class="form-
inline" action="<?php echo URL; ?>clientes" method="POST" >
<input type="text" name="busca" placeholder="Nombre de cliente" r
equire>
<button class="btn btn-primary btn-
sm" type="submit">Buscar</button>
</form>
</div>
</div>
<br>
<div class="row">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Listado de Clientes</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Apellido Paterno</th>
<th>Apellido Materno</th>
<th>Telefono</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php
$total_datos = mysqli_num_rows($datos);
if ($total_datos > 0)
{
foreach ($datos as $row )
{?>

43
<tr>
<td><?php echo $row['id_cliente']; ?></td>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['ap']; ?></td>
<td><?php echo $row['am']; ?></td>
<td><?php echo $row['tel']; ?></td>
<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>clientes/editar/<?php echo $row['id_cliente']; ?
>">Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>clientes/eliminar/<?php echo $row['id_cliente'];
?>">Eliminar</a>
</td>
</tr>
<?php } ?>
<?php }else{ ?>
<tr>
<td>No hay registros</td>
<td>No hay registros</td>
<td>No hay registros</td>
<td>No hay registros</td>
<td>No hay registros</td>

<td>No hay registros</td>

</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>

44
Editar.php

//vista editar
<div class="box-principal">
<h3 class="titulo">Editar Clientes<hr></h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Editar un cliente</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del cliente</label>
<input class="form-
control" value="<?php echo $datos['nombre']; ?>" name="nombre" type="text" requir
ed>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" value="<?php echo $datos['ap']; ?>"name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" value="<?php echo $datos['am']; ?>"name="am" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Telefono</label>
<input class="form-
control" value="<?php echo $datos['tel']; ?>"name="tel" type="number" required>
</div>

45
<input value="<?php echo $datos['id_cliente']; ?>" name="id_c
liente" type="hidden">
<div class="form-group">
<button type="submit" class="btn btn-
success">MODIFICAR</button>
<button type="reset" class="btn btn-
warning">BORRAR</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

46
Index.php

// index muestreo de datos


<div class="box-principal">
<h3 class="titulo">Listado de Clientes
<hr>
</h3>
<!--div class="row">
<div class="input-group mb-3">
<form class="form-
inline" action="<?php echo URL; ?>clientes" method="POST">
<input type="text" name="busca" placeholder="Nombre de cliente" r
equire>
<button class="btn btn-primary btn-
sm" type="submit">Buscar</button>
</form>
</div>
</div-->
<br>
<div class="row">
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Listado de Clientes</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Nombre</th>
<th>Apellido Paterno</th>
<th>Apellido Materno</th>
<th>Telefono</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['ap']; ?></td>
<td><?php echo $row['am']; ?></td>

47
<td><?php echo $row['tel']; ?></td>
<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>clientes/editar/<?php echo $row['id_cliente']; ?
>">Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>clientes/eliminar/<?php echo $row['id_cliente'];
?>">Eliminar</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>
</div>

48
Empleados
Agrega.php

//agregar empleados
<div class="box-principal">
<h3 class="titulo">Agregar Empleado<hr></h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Agregar un nuevo cliente</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del Empleado</label>
<input class="form-
control" name="nombre" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" name="am" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-label">cargo</label>
<input class="form-
control" name="cargo" type="text" required>
</div>
<div class="form-group">

49
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

50
Editar.php

//editar registros tabla empleados


<div class="box-principal">
<h3 class="titulo">Editar Empleados</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Editar un Empleado </h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del Empleado</label>
<input class="form-
control" value="<?php echo $datos['nombre']; ?>" name="nombre" type="text" requir
ed>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" value="<?php echo $datos['ap']; ?>"name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" value="<?php echo $datos['am']; ?>"name="am" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-label">Cargo</label>
<input class="form-
control" value="<?php echo $datos['cargo']; ?>"name="cargo" type="text" required>
</div>
<input value="<?php echo $datos['id_empleado']; ?>" name="id_
empleado" type="hidden">

51
<div class="form-group">
<button type="submit" class="btn btn-
success">Modificar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

52
Index

//index de la tabla de empleados


<div class="box-principal">
<h3 class="titulo">Listado de Empleados
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Listado de Empleados</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Nombre</th>
<th>Apellido Paterno</th>
<th>Apellido Materno</th>
<th>Cargo</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['nombre']; ?></td>
<td><?php echo $row['ap']; ?></td>
<td><?php echo $row['am']; ?></td>
<td><?php echo $row['cargo']; ?></td>
<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>empleados/editar/<?php echo $row['id_empleado'];
?>">Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>empleados/eliminar/<?php echo $row['id_empleado']
; ?>">Eliminar</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>

53
</div>
</div>
</div>

54
Habitaciones

Agregar.php

//Agregar registros
<div class="box-principal">
<h3 class="titulo">Agregar Habitaciones<hr></h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Agregar una nueva Habitacion</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Tipo de habitacion</label>
<input class="form-
control" name="tipo" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Numero de Personas</label>
<input class="form-
control" name="numero_per" type="number" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Descripcion</label>
<input class="form-
control" name="descripcion" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Precio</label>

55
<input class="form-
control" name="precio" type="text" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

56
Editar.php

//editar registros
<div class="box-principal">
<h3 class="titulo">EDITAR HABITACIONES</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Edita la Habitacion</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-label">Tipo</label>
<input class="form-
control" value="<?php echo $datos['tipo']; ?>" name="tipo" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Numero de Personas</label>
<input class="form-
control" value="<?php echo $datos['numero_per']; ?>"name="numero_per" type="numbe
r" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Descripcion</label>
<input class="form-
control" value="<?php echo $datos['descripcion']; ?>"name="descripcion" type="tex
t" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">precio</label>
<input class="form-
control" value="<?php echo $datos['precio']; ?>"name="precio" type="number" requi
red>
</div>

57
<input value="<?php echo $datos['id_habitacion']; ?>" name="i
d_habitacion" type="hidden">
<div class="form-group">
<button type="submit" class="btn btn-
success">Modificar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

58
Index.php

//index para la visualización


<div class="box-principal">
<h3 class="titulo">Listado de Habitaciones
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Listado de Habitaciones</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Tipo</th>
<th>Numero de Personas</th>
<th>Descripcion</th>
<th>Precio</th>
<th>Estado</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['tipo']; ?></td>
<td><?php echo $row['numero_per']; ?></td>
<td><?php echo $row['descripcion']; ?></td>
<td>$ <?php echo $row['precio']; ?></td>
<td><?php echo $row['Estado']; ?></td>
<td>
<a class="btn btn-warning btn-
sm" href="<?php echo URL; ?>habitaciones/editar/<?php echo $row['id_habitacion'];
?>">Editar</a>
<a class="btn btn-danger btn-
sm" href="<?php echo URL; ?>habitaciones/eliminar/<?php echo $row['id_habitacion'
]; ?>">Eliminar</a>
</td>
</tr>
<?php } ?>

59
</tbody>
</table>
</div>
</div>
</div>

60
Inicio

Index.php

//Index del inicio


<div class="jumbotron text-center fixed-bottom ">
<h1 class="display-4">UN LUGAR PARA REPOSAR</h1>
<br>
<p class="lead">Posada los Angeles un pequeño lugar para poder descansar en nue
stro pueblo magico.</p>
<hr class="my-4">
<p>comodas habitaciones que cuentan con todos los servicios</p>
<a class="btn btn-
info" href="<?php echo URL; ?>reservaciones/agregar" role="button">Reserva YA!</a
>
</div>

61
Precios

Agregar.php

//Función de agregar los precios


<div class="box-principal">
<h3 class="titulo">PRECIOS<hr></h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Agregar un Precio de Habitacion</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Moneda</label>
<input class="form-
control" name="moneda" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Precio</label>
<input class="form-
control" name="precio" type="number" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>

62
</div>
</div>
</div>

63
Editar.php

//Función de editar los precios


<div class="box-principal">
<h3 class="titulo">EDITAR PRECIOS</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Edita un Precio</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Moneda</label>
<input class="form-
control" value="<?php echo $datos['moneda']; ?>" name="moneda" type="text" requir
ed>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Precio</label>
<input class="form-
control" value="<?php echo $datos['precio']; ?>"name="precio" type="number" requi
red>
</div>
<input value="<?php echo $datos['id_precio']; ?>" name="id_pr
ecio" type="hidden">
<div class="form-group">
<button type="submit" class="btn btn-
success">Modificar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>

64
</div>
</div>
</div>

65
Index.php

//Index de los precios


<div class="box-principal">
<h3 class="titulo"> PRECIOS
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">PRECIOS</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Moneda</th>
<th>Precio</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['moneda']; ?></td>
<td><?php echo $row['precio']; ?></td>
<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>precios/editar/<?php echo $row['id_precio']; ?>"
>Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>precios/eliminar/<?php echo $row['id_precio']; ?>
">Eliminar</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>

66
Reservaciones

Agregar.php

//Función de agregar reservaciones


<?php
$usuario = "root";
$contrasena = "";
$servidor = "localhost";
$basededatos = "habitaciones";

$conexion = mysqli_connect($servidor, $usuario, "") or die("No se ha podido conec


tar al servidor de Base de datos");
$db = mysqli_select_db($conexion, $basededatos) or die("Upps! Pues va a ser que n
o se ha podido conectar a la base de datos");
$combo = "SELECT * FROM habitaciones WHERE Estado='Disponible'";
$resultado = mysqli_query($conexion, $combo) or die("Algo ha ido mal en la consul
ta a la base de datos");
$combo2 = "SELECT * FROM Servicios";
$resultado2 = mysqli_query($conexion, $combo2) or die("Algo ha ido mal en la cons
ulta a la base de datos");
mysqli_close($conexion);

?>
<div class="box-principal">
<h3 class="titulo">RESERVACIONES
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Agregar una Reservacion</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">

67
<label for="inputEmail" class="control-
label">Nombre del cliente</label>
<input class="form-
control" name="nombre" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" name="am" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Telefono</label>
<input class="form-
control" name="tel" type="text" required>
</div>
<div class="form-group">
<label for="exampleFormControlSelect1">Tipo de habita
cion</label>
<select class="form-
control" name="id_habitacion" id="exampleFormControlSelect1" required>

<?php
$total_datos = mysqli_num_rows($resultado);
if ($total_datos > 0) {
foreach ($resultado as $tipo) : ?>
<option value="<?php echo $tipo['id_habit
acion']; ?>"><?php echo $tipo['tipo']; ?></option>
<?php endforeach;
} else { ?>
<option value="">No Hay Habitaciones Disponib
les</option>
<?php } ?>
</select>
</div>
<div class="form-group">

68
<label for="exampleFormControlSelect2">Tipo de Servic
io</label>
<select class="form-
control" name="id_servicio" id="exampleFormControlSelect2" required>

<?php foreach ($resultado2 as $tipo2) : ?>


<option value="<?php echo $tipo2['id_servicio
']; ?>"><?php echo $tipo2['nombre_ser']; ?> $<?php echo $tipo2['precio_ser']; ?><
/option>
<?php endforeach; ?>

</select>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Fecha_inicio</label>
<input class="form-
control" name="fecha_inicio" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Fecha_final</label>
<input class="form-
control" name="fecha_final" type="text" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

69
Editar.php

//Función para editar los registros ingresados previamente


<div class="box-principal">
<h3 class="titulo">EDITAR RESERVACIONES</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Edita una Reservacion</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del cliente</label>
<input class="form-
control" value="<?php echo $datos['nombre']; ?>" name="nombre" type="text" requir
ed>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Paterno</label>
<input class="form-
control" value="<?php echo $datos['ap']; ?>" name="ap" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Apellido Materno</label>
<input class="form-
control" value="<?php echo $datos['am']; ?>" name="am" type="text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Telefono</label>
<input class="form-
control" value="<?php echo $datos['tel']; ?>" name="tel" type="text" required>
</div>
<div class="form-group">

70
<label for="inputEmail" class="control-
label">Tipo de Habitacion</label>
<input class="form-
control" value="<?php echo $datos['tipo']; ?>"name="id_habitacion" type="text" re
quired>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Tipo de Servicio</label>
<input class="form-
control" value="<?php echo $datos['nombre_ser']; ?>" name="id_servicio" type="tex
t" required>
</div>

<div class="form-group">
<label for="inputEmail" class="control-
label">fecha_inicio</label>
<input class="form-
control" value="<?php echo $datos['fecha_inicio']; ?>" name="fecha_inicio" type="
text" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">fecha_final</label>
<input class="form-
control" value="<?php echo $datos['fecha_final']; ?>" name="fecha_final" type="te
xt" required>
</div>
<input value="<?php echo $datos['id_reserva']; ?>" name="id_r
eserva" type="hidden">
<div class="form-group">
<button type="submit" class="btn btn-
success">Modificar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

71
Index.php

//Su función radica en mostrar corrrectamente la ventana


<div class="box-principal">
<h3 class="titulo">Listado de Reservaciones
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Listado de Reservaciones</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Fecha_inicio</th>
<th>Fecha_final</th>
<th>Habitacion</th>
<th>Cliente</th>
<th>Servicio</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['fecha_inicio']; ?></td>
<td><?php echo $row['fecha_final']; ?></td>
<td><?php echo $row['tipo']; ?></td>
<td><?php echo $row['nombre']; ?> <?php echo $row['ap
']; ?> <?php echo $row['am']; ?></td>
<td><?php echo $row['nombre_ser']; ?></td>
<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>reservaciones/editar/<?php echo $row['id_reserva
']; ?>">Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>reservaciones/eliminar/<?php echo $row['id_reserv
a']; ?>">Eliminar</a>

72
<a class="btn btn-
secondary" href="<?php echo URL; ?>reservaciones/ticket/<?php echo $row['id_reser
va']; ?>">Ticket</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>
</div>

73
Reservacion..php

//Su función radica en facilitarnos un ticket donde muestre los datos de la reser
vación
<div class="box-principal">
<h3 class="titulo">Ticket</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Ticket</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="<?php echo URL; ?>pdf.php/<?php echo $row['id_reserva']; ?>"
method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre del cliente</label>
<input class="form-
control" value="<?php echo $datos['nombre']; ?> <?php echo $datos['ap']; ?> <?php
echo $datos['am']; ?>" name="nombre" type="text" disabled>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Tipo de Habitacion</label>
<input class="form-
control" value="<?php echo $datos['tipo']; ?> $<?php echo $datos['precio']; ?>"n
ame="id_habitacion" type="text" disabled>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Tipo de Servicio</label>
<input class="form-
control" value="<?php echo $datos['nombre_ser']; ?> $<?php echo $datos['precio
_ser']; ?>" name="id_servicio" type="text" disabled>
</div>

<div class="form-group">

74
<label for="inputEmail" class="control-
label">fecha_inicio</label>
<input class="form-
control" value="<?php echo $datos['fecha_inicio']; ?>" name="fecha_inicio" type="
text" disabled>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">fecha_final</label>
<input class="form-
control" value="<?php echo $datos['fecha_final']; ?>" name="fecha_final" type="te
xt" disabled>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Total</label>
<input class="form-
control" value="$<?php $total= $datos['precio']+$datos['precio_ser']; echo $total
?>" name="fecha_final" type="text" disabled>
</div>
<input value="<?php echo $datos['id_reserva']; ?>" name="id_r
eserva" type="hidden">
<div class="form-group">
<button type="submit" class="btn btn-
secondary">Generar Ticket</button>
</div>
</form>
</div>
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

75
Servicios

Agregar.php

//Funciona de manera que nos permite ingresar nuevos registros dentro de la tabla
de servicios
<div class="box-principal">
<h3 class="titulo"><hr>SERVICIOS</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">SERVICIOS</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">NOMBRE DEL SERVICIO</label>
<input class="form-
control" name="nombre_ser" type="text" required>
</div>
<br>
<div class="form-group">
<label for="inputEmail" class="control-
label">PRECIO</label>
<input class="form-
control" name="precio" type="text" required>
<br>
<div class="form-group">
<button type="submit" class="btn btn-
success">Registrar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>

76
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

77
Editar.php

//Su función radica en editar los registro previamente hechos


<div class="box-principal">
<h3 class="titulo">EDITAR SERVICIOS</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">Edita el Servicio</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-1"></div>
<div class="col-md-10">
<form class="form-
horizontal" action="" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="inputEmail" class="control-
label">Nombre</label>
<input class="form-
control" value="<?php echo $datos['nombre_ser']; ?>" name="nombre_ser" type="text
" required>
</div>
<div class="form-group">
<label for="inputEmail" class="control-
label">Precio</label>
<input class="form-
control" value="<?php echo $datos['precio_ser']; ?>" name="precio" type="text" re
quired>
</div>

<input value="<?php echo $datos['id_servicio']; ?>" name="id_


servicio" type="hidden">

<div class="form-group">
<button type="submit" class="btn btn-
success">Modificar</button>
<button type="reset" class="btn btn-
warning">Borrar</button>
</div>
</form>
</div>

78
<div class="col-md-1"></div>
</div>
</div>
</div>
</div>

79
Index

//Su función radica en mostrar correctamente la pagina en la cual se esta trabaja


ndo
<div class="box-principal">
<h3 class="titulo">SERVICIOS
<hr>
</h3>
<div class="panel panel-success">
<div class="panel-heading">
<h3 class="panel-title">SERVICIOS</h3>
</div>
<div class="panel-body">
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Nombre</th>
<th>Precio</th>
<th>Acción</th>
</tr>
</thead>
<tbody>
<?php while ($row = mysqli_fetch_array($datos)) { ?>
<tr>
<td><?php echo $row['nombre_ser']; ?></td>
<td>$ <?php echo $row['precio_ser']; ?></td>

<td>
<a class="btn btn-
warning" href="<?php echo URL; ?>servicios/editar/<?php echo $row['id_servicio'];
?>">Editar</a>
<a class="btn btn-
danger" href="<?php echo URL; ?>servicios/eliminar/<?php echo $row['id_servicio']
; ?>">Eliminar</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
</div>

80
</div>

81
Template

Template.php

// estilo, ubicación de letras, tipo de letras y todos los estilos de las clases
anteriores
<?php namespace Views;

$template = new Template();

class Template{

public function __construct(){


?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>ADMINISTRACION</title>
<link rel="stylesheet" href="<?php echo URL; ?>Views/template/css/bootstr
ap.css">
<link rel="stylesheet" href="<?php echo URL; ?>Views/template/css/general
.css">
</head>
<body >
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-
toggle="collapse" data-target="#bs-example-navbar-collapse-2">
<span class="sr-only"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">ADMINISTRACION DE CLIENTES</a>
</div>

82
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-
2">
<ul class="nav navbar-nav">
<li><a href="<?php echo URL; ?>">Inicio</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-
expanded="false">Clientes <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo URL; ?>clintes">Listado</a></li>
<li><a href="<?php echo URL; ?>clientes/agregar">Agregar</a><
/li>
</ul>
</li>
</div>
</div>
</nav>
<?php
}

public function __destruct(){


?>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="<?php echo URL; ?>Views/template/js/bootstrap.js"></script>
</body>
</html>
<?php
}

?>

83
Template.php

// estilo, ubicación de letras, tipo de letras y todos los estilos de las clases
<?php namespace Views;

$template = new Template();

class Template{

public function __construct(){


?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>POSADA LOS ANGELES</title>

<link rel="stylesheet" href="<?php echo URL; ?>Views/template/css/bootstrap.c


ss">
<link rel="stylesheet" href="<?php echo URL; ?>Views/template/css/general.css
">

<link rel="stylesheet" href="<?php echo URL; ?>Views/template/js/bootstrap.js


">
<script type="text/javascript" src="<?php echo URL;?>Views/template/js/jquery
.js"></script>

</head>
<body>
<nav class="navbar navbar-light navbar-fixed-top" style="background-
color: #e3f2fd;">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-
toggle="collapse" data-target="#bs-example-navbar-collapse-2">
<span class="sr-only"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>

84
</button>
<a class="navbar-
brand" href="<?php echo URL; ?>inicio/index">POSADA LOS ANGELES</a>
</div>

<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-


2">
<ul class="nav navbar-nav">
<li><a href="<?php echo URL; ?>inicio/index">Inicio</a></li>
<li><a href="<?php echo URL; ?>clientes">Clientes</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-
expanded="false">Reservaciones<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo URL; ?>reservaciones">Listado</a></li
>
<li><a href="<?php echo URL; ?>reservaciones/agregar">Agregar
</a></li>
</ul>
</li>

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-
expanded="false">Habitaciones <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo URL; ?>habitaciones">Listado</a></li>
<li><a href="<?php echo URL; ?>habitaciones/agregar">Agregar<
/a></li>
</ul>
</li>

<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-
expanded="false">Servicios <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo URL; ?>servicios">Listado</a></li>

85
<li><a href="<?php echo URL; ?>servicios/agregar">Agregar</a>
</li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-
toggle="dropdown" role="button" aria-
expanded="false">Empleados <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="<?php echo URL; ?>empleados">Listado</a></li>
<li><a href="<?php echo URL; ?>empleados/agregar">Agregar</a>
</li>
</ul>
</li>

</div>
</div>
</nav>
<?php
}

public function __destruct(){


?>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="<?php echo URL; ?>Views/template/js/bootstrap.js"></script>
</body>
</html>
<?php
}

?>

86
Privilegios de usuarios: Totales

87

También podría gustarte