Dia 35
This commit is contained in:
88
Practicas/Practicas JS/DOM Alquiler Coche/js/main.js
Normal file
88
Practicas/Practicas JS/DOM Alquiler Coche/js/main.js
Normal file
@@ -0,0 +1,88 @@
|
||||
function calculaAlquiler() {
|
||||
const IVA = 1.21;
|
||||
const resultado = document.getElementById("resultado");
|
||||
const diasAlquiler = parseInt(document.getElementById("diasAlquiler").value);
|
||||
const fechaInicio = new Date(document.getElementById("fechaInicio").value);
|
||||
const diasHastaRecojer = diasDiferencia(fechaInicio);
|
||||
|
||||
//prettier-ignore
|
||||
const eurXVehiculo = parseInt(eurXTipo(document.getElementById("tipoVehiculo").value));
|
||||
//prettier-ignore
|
||||
const sillaInfantil = document.getElementById("sillaInfantil").checked ? 15 : 0;
|
||||
const gps = document.getElementById("gps").checked ? 5 : 0;
|
||||
let seguro = parseInt(
|
||||
document.querySelector('input[name="seguro"]:checked').value
|
||||
);
|
||||
if (seguro === 0) {
|
||||
seguro = parseInt(
|
||||
eurXSeguro(document.getElementById("tipoVehiculo").value)
|
||||
);
|
||||
}
|
||||
|
||||
const menor30 = document.getElementById("menor30").checked;
|
||||
|
||||
let pvpSinIva =
|
||||
eurXVehiculo * diasAlquiler +
|
||||
sillaInfantil * diasAlquiler +
|
||||
gps * diasAlquiler +
|
||||
seguro * diasAlquiler;
|
||||
|
||||
let pvpConIva = 0;
|
||||
if (menor30 === true) {
|
||||
pvpConIva = pvpSinIva * IVA * 1.3;
|
||||
} else {
|
||||
pvpConIva = pvpSinIva * IVA;
|
||||
}
|
||||
|
||||
resultado.textContent = `El total final es: ${pvpConIva.toFixed(2)}€`;
|
||||
|
||||
alert(
|
||||
`Faltan ${diasHastaRecojer} dias para tu alquiler! \n Tu fecha de entrega del vehículo es el ${formatFecha(
|
||||
fechaInicio
|
||||
)} `
|
||||
);
|
||||
}
|
||||
|
||||
function eurXTipo(tipoVehiculo) {
|
||||
let valor = 0;
|
||||
switch (tipoVehiculo) {
|
||||
case "basico":
|
||||
valor = 45;
|
||||
break;
|
||||
case "gama_media":
|
||||
valor = 65;
|
||||
break;
|
||||
case "lujo":
|
||||
valor = 85;
|
||||
break;
|
||||
}
|
||||
return valor;
|
||||
}
|
||||
|
||||
function eurXSeguro(tipoVehiculo) {
|
||||
let valor = 0;
|
||||
switch (tipoVehiculo) {
|
||||
case "basico":
|
||||
valor = 15;
|
||||
break;
|
||||
case "gama_media":
|
||||
valor = 25;
|
||||
break;
|
||||
case "lujo":
|
||||
valor = 35;
|
||||
break;
|
||||
}
|
||||
return valor;
|
||||
}
|
||||
|
||||
function diasDiferencia(fechaFinal) {
|
||||
const fechaActual = new Date();
|
||||
return Math.ceil((fechaFinal - fechaActual) / (1000 * 60 * 60 * 24));
|
||||
}
|
||||
|
||||
function formatFecha(fecha) {
|
||||
var dia = fecha.getDate();
|
||||
var mes = fecha.getMonth() + 1;
|
||||
var ano = fecha.getFullYear();
|
||||
return `${dia}/${mes}/${ano}`;
|
||||
}
|
||||
Reference in New Issue
Block a user