Skip to content

Commit

Permalink
carga el script al cargar toda la ventana
Browse files Browse the repository at this point in the history
  • Loading branch information
santiagogak committed Nov 6, 2024
1 parent 48acac5 commit 1de4ecb
Showing 1 changed file with 69 additions and 66 deletions.
135 changes: 69 additions & 66 deletions js/calcuotas.js
Original file line number Diff line number Diff line change
@@ -1,72 +1,75 @@
alert('Bienvenido/a a la Calculadora de cuotas con interés!');
//Variable capital para el monto del credito. Se pregunta tantas veces sea necesario hasta tener un número como respuesta
let capital;
let isCapital = false;
while (!isCapital) {
capital = parseFloat(prompt('Introduce el monto de tu crédito (sin puntos, ni comas, ni $, solo el monto entre 1 peso a 100 Millones):'));
isCapital = !isNaN(capital) && (capital >= 1 && capital <= 100000000);
if (!isCapital) {
alert('Por favor, introduce un valor válido');
}
}
window.onload = function() {

//Variable interes para la tasa de interés. Se pregunta tantas veces sea necesario hasta tener un número como respuesta
let interes;
let isInteres = false;
while (!isInteres) {
interes = parseFloat(prompt('Introduce la tasa de interés (sin %, solo el número entre 0.1 y 100%):'));
isInteres = !isNaN(interes) && (interes >= 0.1 && interes <= 100);
if (!isInteres) {
alert('Por favor, introduce un valor válido');
alert('Bienvenido/a a la Calculadora de cuotas con interés!');
//Variable capital para el monto del credito. Se pregunta tantas veces sea necesario hasta tener un número como respuesta
let capital;
let isCapital = false;
while (!isCapital) {
capital = parseFloat(prompt('Introduce el monto de tu crédito (sin puntos, ni comas, ni $, solo el monto entre 1 peso a 100 Millones):'));
isCapital = !isNaN(capital) && (capital >= 1 && capital <= 100000000);
if (!isCapital) {
alert('Por favor, introduce un valor válido');
}
}
}

//Variable cuotas para el número de cuotas. Se pregunta tantas veces sea necesario hasta tener un número entre 1 y 24 como respuesta
let cuotas;
let isCuotas = false;
while (!isCuotas) {
cuotas = parseInt(prompt('Introduce cuantas cuotas tiene el crédito (entre 1 y 24)'));
isCuotas = !isNaN(cuotas) && (cuotas >= 1 && cuotas <= 24);
if (!isCuotas) {
alert('Por favor, introduce un valor válido');
//Variable interes para la tasa de interés. Se pregunta tantas veces sea necesario hasta tener un número como respuesta
let interes;
let isInteres = false;
while (!isInteres) {
interes = parseFloat(prompt('Introduce la tasa de interés (sin %, solo el número entre 0.1 y 100%):'));
isInteres = !isNaN(interes) && (interes >= 0.1 && interes <= 100);
if (!isInteres) {
alert('Por favor, introduce un valor válido');
}
}
}

//Función para calcular el pago mensual del crédito
const pagoMensual = (cap, int, cuo) => {
const intN = int / 100;
//Fórmula de amortización
if (cuo > 1) {
return (cap*intN) / (1-(1+intN)**(-cuo));
} else {
return cap;
//Variable cuotas para el número de cuotas. Se pregunta tantas veces sea necesario hasta tener un número entre 1 y 24 como respuesta
let cuotas;
let isCuotas = false;
while (!isCuotas) {
cuotas = parseInt(prompt('Introduce cuantas cuotas tiene el crédito (entre 1 y 24)'));
isCuotas = !isNaN(cuotas) && (cuotas >= 1 && cuotas <= 24);
if (!isCuotas) {
alert('Por favor, introduce un valor válido');
}
}
};

//Funcion para dar formato de moneda al número
const formatoMoneda = (monto) => monto.toLocaleString('es-CL', {style: 'currency', currency: 'CLP', maximumFractionDigits: 2 });

//Función para calcular todos los pagos mensuales mes a mes y el interés que se paga en cada uno, así como el total de interes pagado
function detallePagos (cap, int, cuo) {
const intN = int / 100;
const pagoMes = pagoMensual(cap,int,cuo);
let strPagos = '';

if (cuo > 1) {
let restoCap = cap;
let totalInteres = 0;
for (let i = 1; i <= cuotas; i++) {
const capMes = restoCap * (1+intN);
strPagos = strPagos + `Pago ${i}: ${formatoMoneda(restoCap)} - Interés: ${formatoMoneda(restoCap*intN)}\n`;
totalInteres += restoCap*intN;
restoCap = capMes - pagoMes;

//Función para calcular el pago mensual del crédito
const pagoMensual = (cap, int, cuo) => {
const intN = int / 100;
//Fórmula de amortización
if (cuo > 1) {
return (cap*intN) / (1-(1+intN)**(-cuo));
} else {
return cap;
}
strPagos = strPagos + `\nTotal Intereses: ${formatoMoneda(totalInteres)}`;
} else {
strPagos = strPagos + `Pago: ${formatoMoneda(cap)} - Interés: 0`;
};

//Funcion para dar formato de moneda al número
const formatoMoneda = (monto) => monto.toLocaleString('es-CL', {style: 'currency', currency: 'CLP', maximumFractionDigits: 2 });

//Función para calcular todos los pagos mensuales mes a mes y el interés que se paga en cada uno, así como el total de interes pagado
function detallePagos (cap, int, cuo) {
const intN = int / 100;
const pagoMes = pagoMensual(cap,int,cuo);
let strPagos = '';

if (cuo > 1) {
let restoCap = cap;
let totalInteres = 0;
for (let i = 1; i <= cuotas; i++) {
const capMes = restoCap * (1+intN);
strPagos = strPagos + `Pago ${i}: ${formatoMoneda(restoCap)} - Interés: ${formatoMoneda(restoCap*intN)}\n`;
totalInteres += restoCap*intN;
restoCap = capMes - pagoMes;
}
strPagos = strPagos + `\nTotal Intereses: ${formatoMoneda(totalInteres)}`;
} else {
strPagos = strPagos + `Pago: ${formatoMoneda(cap)} - Interés: 0`;
}
return strPagos;
}
return strPagos;
}

alert(`Pago Mensual: ${formatoMoneda(pagoMensual(capital,interes,cuotas))}`)
alert(detallePagos(capital,interes,cuotas))

alert(`Pago Mensual: ${formatoMoneda(pagoMensual(capital,interes,cuotas))}`)
alert(detallePagos(capital,interes,cuotas))
}

0 comments on commit 1de4ecb

Please sign in to comment.