sesiones
This commit is contained in:
208
Practicas/Practicas_PHP/ejercicios/Plantilla Examen/formulario_hotel.php
Executable file
208
Practicas/Practicas_PHP/ejercicios/Plantilla Examen/formulario_hotel.php
Executable file
@@ -0,0 +1,208 @@
|
||||
<!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>
|
||||
<?php
|
||||
session_start();
|
||||
$nombre_usuario = $_SESSION['nombre'];
|
||||
$tipo_usuario = $_SESSION['tipo'];
|
||||
echo "<div>
|
||||
<h2>Bienvenido $nombre_usuario </h2>
|
||||
<a href=\"logout.php\">Cerrar session</a>
|
||||
</div>"
|
||||
?>
|
||||
|
||||
<div id="container">
|
||||
<form action="recibe_formulario_hotel.php" method="post" enctype="multipart/form-data">
|
||||
<h1>Reserve su habitación</h1>
|
||||
<fieldset>
|
||||
<legend>Datos de la reserva</legend>
|
||||
<p><label for="entradaH">Elige la fecha de entrada</label> <input type="date" id="entradaH" name="entrada" value="2024-03-01">
|
||||
<p><label for="salida">Elige la fecha de salida</label> <input type="date" id="salida" name="salida" value="2024-03-10"></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 value="Marcos Lopez Gomez"></p>
|
||||
<p><label for="mail">*Correo electrónico: </label><input type="email" name="email" id="mail" placeholder="Escribe tu correo" required value="marklogo@gmail.com"></p>
|
||||
<p><label for="telefono">*Teléfono:</label> <input type="tel" id="telefono" name="telefono" required value="649348375"></p>
|
||||
<p>Check-in online (opcional):</p>
|
||||
<p><label for="dni">DNI:</label> <input type="text" id="dni" name="dni" value="33340763D"></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>
|
||||
Reference in New Issue
Block a user