0.1.10 • Published 7 months ago

santander-lsch v0.1.10

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

Librería de Simulador Hipotecario Santander

Librería que contiene las funciones necesarios para el simulador hipotecario requerido por Santander

Cómo instalar?

Basta con descargar el archivo index.js, agregarlo a tu proyecto con algún otro nombre de ser necesario, e importarlo dónde sea necesario, por ejemplo, en la raíz del proyecto lo guardas con el nombre:

santander-sch.js

Entonces para importarlo en un archivo js dónde se desea usar debe ser de la siguiente manera:

import { generaTablaNanios } from './santander-sch.js';

De esa manera podremo hacer uso de la función:

generaTablaNanios

Otra forma de instalar

Puede instalarse como un paquete de npm usando un servidor repositorio de paquetes de npm local como sinopia:

https://github.com/rlidwka/sinopia

Constantes globales

Las constantes globales se definen en el archivo constants.js:

PERIODICIDAD: Constante que define la periodicidad de los pagos hipotecarios.

TASA_DE_INTERES_BASE: Tasa de interés base, por default el valor es del 7.0%.

TABLA_DE_PORCENTAJES: Tabla de porcentajes de descuento por plan por cada año, a continuación se muestra la estrutura que debe de tener, dicha tablas de descuentos puede cambiarse de acuerdo a lo que se desea mientras se respete la estructura definida que a continuación se presenta:

{
  "10": {
    "1": 3,
    "2": 5,
    "3": 6,
    "4": 7,
    "5": 9,
    "6": 11,
    "7": 12,
    "8": 14,
    "9": 16,
    "10": 17
  },
  "15": {
    "1": 2,
    "2": 2,
    "3": 3,
    "4": 3,
    "5": 4,
    "6": 5,
    "7": 6,
    "8": 7,
    "9": 8,
    "10": 10,
    "11": 10,
    "12": 10,
    "13": 10,
    "14": 10,
    "15": 10
  },
  "20": {
    "1": 1.5,
    "2": 1.5,
    "3": 2,
    "4": 2,
    "5": 3,
    "6": 3,
    "7": 4,
    "8": 4,
    "9": 4.5,
    "10": 4.5,
    "11": 5,
    "12": 5,
    "13": 6,
    "14": 6,
    "15": 7,
    "16": 7,
    "17": 8,
    "18": 8,
    "19": 9,
    "20": 9
  }
}

Donde '10', '15', '20' corresponden al plan en años, y los números de 1 a N, corresponden a los años del plan, y por cada año se especifica el porcentaje de descuento que se le dará en cada periodo.

Funciones implementadas

calculaAbono

Está función retorna un renglon de los que se conforma la tabla, se explican los parámetros que puede recibir:

parámetros

plan(str) : Plan hipotecario(años) como cadena.

importe(float|int): Importe total del préstamo hipotecario.

anio(int): Año en el que se está efectuando el abono o pago.

saldoActual(float|int): Saldo actual cuando se ejecuta el cálculo del abono.

periodicidad(float|int): Periodicidad, por lo gral será el valor guardado en la variable de ambiente.

tasaDeInteres(float|int): Tasa de interés que se aplicará para el cálculo del abono, definida como variable de ambiente.

pagoAdelantado(float|int|null): Monto del pago que se dese adelantar en el periodo deseado.

Valor de retorno

Retorna el siguiente javascript object:

{
    'porcentaje_descuento': porcentajeDescuento, 'anio': anio, 'saldo': saldoActual,
    'abono': abono, 'interes': pagoAIntereses, 'capital': pagoACapital,
    'pago_adelantado': pagoAdelantado, 'nuevo_saldo': nuevoSaldo
}

generaTabla10anios

Esta función recibe los mismos parámentros que la función anterior, sólo en parámetro de plan no lo recibe, debido a que se calcula para 10 años.

Parámetros

importe(float|int): Monto total del préstamo.

valorInmueble(float|int): Valor real del inmueble.

pagosAdelantados(list[floats]): Lista de pagos adelantados aplicados al simulador, el tamaño de la lista debe ser del mismo tamaño que la cantidad de periodos o pagos.

periodicidad(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la periodicidad definida como variable de ambiente.

tasaDeInteres(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la tasa de interés definidad como variable de ambiente.

Valor de retorno

Retorna el mismo javascript object que la función generaTablaNanios.

generaTabla15anios

Esta función recibe los mismos parámentros que la función anterior, sólo en parámetro de plan no lo recibe, debido a que se calcula para 15 años.

Parámetros

importe(float|int): Monto total del préstamo.

valorInmueble(float|int): Valor real del inmueble.

pagosAdelantados(list[floats]): Lista de pagos adelantados aplicados al simulador, el tamaño de la lista debe ser del mismo tamaño que la cantidad de periodos o pagos.

periodicidad(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la periodicidad definida como variable de ambiente.

tasaDeInteres(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la tasa de interés definidad como variable de ambiente.

Valor de retorno

Retorna el mismo javascript object que la función generaTablaNanios.

generaTabla20anios

Esta función recibe los mismos parámentros que la función anterior, sólo en parámetro de plan no lo recibe, debido a que se calcula para 20 años.

Parámetros

importe(float|int): Monto total del préstamo.

valorInmueble(float|int): Valor real del inmueble.

pagosAdelantados(list[floats]): Lista de pagos adelantados aplicados al simulador, el tamaño de la lista debe ser del mismo tamaño que la cantidad de periodos o pagos.

periodicidad(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la periodicidad definida como variable de ambiente.

tasaDeInteres(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la tasa de interés definidad como variable de ambiente.

Valor de retorno

Retorna el mismo javascript object que la función generaTablaNanios.

generaTablaNanios

Genera una tabla con la simulación de abonos que se realizarán para cubrir el importe recibido con sus respectivos intereses.

Parámetros

importe(float|int): Monto total del préstamo.

valorInmueble(float|int): Valor real del inmueble.

plan(str): Plan hipotecario en años, puede ser 10, 15, o 20 años.

pagosAdelantados(list[floats]): Lista de pagos adelantados aplicados al simulador, el tamaño de la lista debe ser del mismo tamaño que la cantidad de periodos o pagos.

periodicidad(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la periodicidad definida como variable de ambiente.

tasaDeInteres(float|int): Si este parámetro es pasado, sobreescribe el valor asignado a la tasa de interés definidad como variable de ambiente.

Valor de retorno

Retorna un javascript object con la siguiente estructura:

stdClass Object
(
    [num_total_pagos] => 240
    [total_abonos] => 1901892.8571429
    [total_intereses] => 616178.57142857
    [total_capital] => 1285714.2857143
    [aforo] => 60
    [pago_quincenal] => 5357.1428571429
    [tabla] => Array
        (
            [0] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1500000
                    [abono] => 5357.1428571429
                    [interes] => 3750
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1498392.8571429
                )

            [1] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1498392.8571429
                    [abono] => 5353.125
                    [interes] => 3745.9821428571
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1496785.7142857
                )

            [2] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1496785.7142857
                    [abono] => 5349.1071428571
                    [interes] => 3741.9642857143
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1495178.5714286
                )

            [3] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1495178.5714286
                    [abono] => 5345.0892857143
                    [interes] => 3737.9464285714
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1493571.4285714
                )

            [4] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1493571.4285714
                    [abono] => 5341.0714285714
                    [interes] => 3733.9285714286
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1491964.2857143
                )

            [5] => stdClass Object
                (
                    [porcentaje_descuento] => 3
                    [anio] => 1
                    [saldo] => 1491964.2857143
                    [abono] => 5337.0535714286
                    [interes] => 3729.9107142857
                    [capital] => 1607.1428571429
                    [pago_adelantado] => 0
                    [nuevo_saldo] => 1490357.1428571
                )
            ...
        )
)
0.1.10

7 months ago