209 lines
7.2 KiB
PHP
209 lines
7.2 KiB
PHP
|
|
<?php
|
|
// Comprobamos si existe la sesión
|
|
session_start();
|
|
if (!isset($_SESSION['usuario'])) {
|
|
// En caso contrario devolvemos a la página login.php
|
|
header('Location: login_usuarios.php');
|
|
die();
|
|
}
|
|
?>
|
|
|
|
<!Doctype html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
|
|
<title>Reservas hotel</title>
|
|
<link rel="stylesheet" type="text/css" href="estilos.css" />
|
|
<script>
|
|
// Función obtener() que realizará la captación de datos,los cálculos y la escritura del mensaje de info
|
|
|
|
function obtener() {
|
|
// Declaro y obtengo el valor de las variables
|
|
|
|
//Calcular periodo de la estancia (noches)
|
|
const inicio=document.getElementById("entradaH").valueAsNumber;
|
|
const fin=document.getElementById("salida").valueAsNumber;
|
|
const dif=fin - inicio;
|
|
const noches=Math.ceil(dif/(1000*60*60*24));
|
|
document.getElementById("noches").value=noches;
|
|
|
|
|
|
const habitacion=document.getElementById("habitacion").value;
|
|
const regimen=document.getElementById("regimen").value;
|
|
const spa=document.getElementById("spa").value;
|
|
const guia=document.getElementById("guia").value;
|
|
const nombreCliente=document.getElementById("nombre").value;
|
|
|
|
//Cáculo extras (spa y guia)
|
|
let spaT;
|
|
|
|
if (spa>5) {
|
|
spaT=spa*20;
|
|
}else {
|
|
spaT=spa*30;
|
|
}
|
|
|
|
let guiaT;
|
|
|
|
if(guia>7) {
|
|
guiaT=guia*40;
|
|
} else {
|
|
guiaT=guia*50;
|
|
}
|
|
|
|
// Tipo habitación
|
|
let hotel;
|
|
if (habitacion === "simple") {
|
|
hotel=50;
|
|
}
|
|
|
|
if (habitacion === "doble") {
|
|
hotel=80;
|
|
}
|
|
|
|
if (habitacion === "triple") {
|
|
hotel=120;
|
|
}
|
|
|
|
if (habitacion === "suite") {
|
|
hotel=150;
|
|
}
|
|
|
|
//Tipo de regimen
|
|
let comidas;
|
|
if (regimen === "desayuno") {
|
|
comidas=50;
|
|
}
|
|
|
|
if (regimen === "mediapension") {
|
|
comidas=80;
|
|
}
|
|
|
|
if (regimen === "pensioncompleta") {
|
|
comidas=120;
|
|
}
|
|
|
|
if (regimen === "todoincluido") {
|
|
comidas=150;
|
|
}
|
|
|
|
// Gastos estancia hotel+comidas
|
|
const hotelT=hotel*noches;
|
|
const regimenT=comidas*noches;
|
|
|
|
const estancia=hotelT+regimenT;
|
|
|
|
// Descuento por larga estancia
|
|
let estanciaDescuento;
|
|
if (noches <= 4) {
|
|
estanciaDescuento = estancia;
|
|
} else if (noches >= 5 && noches <= 10) {
|
|
estanciaDescuento = estancia * 0.85;
|
|
} else if (noches >= 11) {
|
|
estanciaDescuento = estancia * 0.75;
|
|
}
|
|
|
|
//Envío el precio total sin IVA al formulario
|
|
document.getElementById("estancia").value=estanciaDescuento;
|
|
|
|
//Coste total con extras
|
|
const total=estanciaDescuento+spaT+guiaT;
|
|
const totalI=(total*1.21).toFixed(2);
|
|
// Envío el precio con IVA al formulario
|
|
document.getElementById("total").value=totalI;
|
|
// Precio de anulación
|
|
const precioAnulacion=(total*0.2).toFixed(2);
|
|
|
|
|
|
// Calcular días que faltan y fecha de regreso
|
|
const hoy=new Date().getTime();// Fecha de la reserva
|
|
const entrada=document.getElementById("entradaH").valueAsNumber;
|
|
const dif2=entrada-hoy;
|
|
const diasFaltan=dif2/(1000*60*60*24);// Días que faltan
|
|
|
|
const regresoF=new Date(fin);// Obtener en UTC
|
|
const regresoP=regresoF.toLocaleDateString();//Pasar fecha a formato corto dd/mm/xxxx
|
|
|
|
const anulacion=entrada-(3*24*60*60*1000);//Fecha de anulación
|
|
const anulacionF=new Date(anulacion);
|
|
const anulacionP=anulacionF.toLocaleDateString();
|
|
//Mensaje de información
|
|
const frase=
|
|
"Hola "+nombreCliente+"\n"
|
|
+"Faltan "+(Math.ceil(diasFaltan))+ " días "+"para tu viaje"+"\n"
|
|
+"Tu fecha de regreso es el "+regresoP+"\n"
|
|
+"Puedes anular tu reserva hasta el día "+anulacionP+"\n"
|
|
+"El coste de la anulación será de " +precioAnulacion+ " euros" ;
|
|
//Enviar mensaje al formulario
|
|
document.getElementById("info").value=frase;
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
</head>
|
|
<body>
|
|
<div><!-- Saludamos -->
|
|
<h1>Hola <?php echo $_SESSION['usuario']; ?> puede realizar su reserva</h1>
|
|
<!-- Botón para cerrar la sesión -->
|
|
<a href="logout.php">Cerrar sesión</a></div>
|
|
|
|
<div id="container">
|
|
<form action="recibe_formulario_hotel.php" method="post" enctype="multipart/form-data">
|
|
<h2>Reserve su habitación</h2>
|
|
<fieldset>
|
|
<legend>Datos de la reserva</legend>
|
|
<p><label for="entradaH">Elige la fecha de entrada</label> <input type="date" id="entradaH" name="entrada">
|
|
<p><label for="salida">Elige la fecha de salida</label> <input type="date" id="salida" name="salida"></p>
|
|
<p><label for="habitacion">Seleccione el tipo de habitación</label>
|
|
<!-- Lista de selección -->
|
|
<select name="habitacion" id="habitacion">
|
|
<option value="simple">Simple</option>
|
|
<option value="doble">Doble</option>
|
|
<option value="triple">Triple</option>
|
|
<option value="suite">Suite</option>
|
|
</select></p>
|
|
<p><label for="regimen">Seleccione el regimen de alojamiento</label>
|
|
<!-- Lista de selección -->
|
|
<select name="regimen" id="regimen">
|
|
<option value="desayuno">Desayuno</option>
|
|
<option value="mediapension">Media pensión</option>
|
|
<option value="pensioncompleta">Pensión Completa</option>
|
|
<option value="todoincluido">Todo Incluido</option>
|
|
</select></p>
|
|
<p><label for="estancia">Coste de la estancia (Habitación + Comidas)</label> <input type="text" name="estancia" id="estancia"></p>
|
|
<p><label for="spa">Acceso al Spa, elija cuantos días</label> <input type="number" name="spa" id="spa" value="0" size="3"></p>
|
|
|
|
<p><label for="guia">Servicio de guía turístico, elija cuantos días </label><input type="number" name="guia" id="guia" value="0" size="3"></p>
|
|
<p><label for="total">Coste total con IVA incluido </label><input type="text" name="total" id="total" ></p>
|
|
|
|
</fieldset>
|
|
<fieldset>
|
|
<legend>Datos personales</legend>
|
|
<p><label for="nombre">*Nombre: </label><input type="text" name="nombre" id="nombre" placeholder="Nombre y Apellidos" required></p>
|
|
<p><label for="mail">*Correo electrónico: </label><input type="email" name="email" id="mail" placeholder="Escribe tu correo" required></p>
|
|
<p><label for="telefono">*Teléfono:</label> <input type="tel" id="telefono" name="telefono" required></p>
|
|
<p>Check-in online (opcional):</p>
|
|
<p><label for="dni">DNI:</label> <input type="text" id="dni" name="dni" ></p>
|
|
<p><label for="adjuntos">Adjunte fotocopia de DNI </label><input type="file" name="dnifile" id="dnifile" accept=".pdf,.jpg" ></p>
|
|
<div id="flex">
|
|
<div>
|
|
<input type="button" value="Calcular coste total" onclick="obtener()">
|
|
<br><input type="reset" name="limpiar" value="Borrar" />
|
|
<br><input type="submit" value="Enviar la reserva" >
|
|
<input id="noches" name="noches" type="hidden" value="noches">
|
|
|
|
</div>
|
|
<textarea name="info" id="info" >Información de su viaje</textarea>
|
|
</div>
|
|
</fieldset>
|
|
|
|
</form>
|
|
</div>
|
|
<br>
|
|
|
|
</body>
|
|
</html>
|