public List <CuotasPorFinanciamientoViewModels> listaPorFinanciamiento(CalcularCuotaViewModels data)
        {
            var listaDeCuotas = new List <CuotasPorFinanciamientoViewModels>();

            ILoteComponent lote = new PrecioLote(data.cantidad);

            lote = new EngancheLote(lote, data.enganche);
            ILoteComponent loteInteres = new EngancheLote(lote, data.enganche);
            double         enganche    = punto.dosDecimales(data.enganche);
            double         precioNeto  = punto.dosDecimales(lote.calcularSaldo());

            while (data.tiempo <= 120)
            {
                //loteInteres = new InteresLote(lote, new InteresPerlas(), data.tiempo);
                loteInteres = new InteresLote(lote, data.interes, data.tiempo);
                listaDeCuotas.Add(
                    new CuotasPorFinanciamientoViewModels()
                {
                    PrecioBruto  = data.cantidad,
                    Meses        = data.tiempo,
                    Enganche     = enganche,
                    PrecioNeto   = precioNeto,
                    InteresTotal = punto.dosDecimales(loteInteres.calcularMonto()),
                    PrecioTotal  = punto.dosDecimales(loteInteres.calcularSaldo()),
                    Cuotas       = punto.dosDecimales(loteInteres.calcularSaldo() / data.tiempo)
                });

                data.tiempo += 12;
            }

            return(listaDeCuotas);
        }
Beispiel #2
0
        public List <CuotasPorMesViewModels> listaPorMes(CalcularCuotaViewModels data)
        {
            setDataToDictionary(data);
            var listaDeCuotas = new List <CuotasPorMesViewModels>();

            listaDeCuotas.Add(new CuotasPorMesViewModels()
            {
                CuotaConInteres       = cantidad["CuotaConInteres"],
                CuotaSinInteres       = cantidad["CuotaSinInteres"],
                InteresPorMes         = cantidad["InteresPorMes"],
                SaldoPrecioConInteres = punto.dosDecimales(cantidad["SaldoConInteres"]),
                SaldoPrecioSinInteres = punto.dosDecimales(cantidad["SaldoSinInteres"]),
                SaldoInteresTotal     = punto.dosDecimales(cantidad["InteresTotal"]),
            });

            for (int i = 1; i <= (int)cantidad["TiempoDeFinanciamiento"]; i++)
            {
                cantidad["SaldoConInteres"] -= cantidad["CuotaConInteres"];
                cantidad["InteresTotal"]    -= cantidad["InteresPorMes"];
                cantidad["SaldoSinInteres"] -= cantidad["CuotaSinInteres"];

                listaDeCuotas.Add(new CuotasPorMesViewModels()
                {
                    CuotaConInteres       = cantidad["CuotaConInteres"],
                    CuotaSinInteres       = cantidad["CuotaSinInteres"],
                    InteresPorMes         = cantidad["InteresPorMes"],
                    SaldoPrecioConInteres = punto.dosDecimales(cantidad["SaldoConInteres"]),
                    SaldoPrecioSinInteres = punto.dosDecimales(cantidad["SaldoSinInteres"]),
                    SaldoInteresTotal     = punto.dosDecimales(cantidad["InteresTotal"]),
                });
            }

            return(listaDeCuotas);
        }
Beispiel #3
0
        public CuotaVentaViewModels CalcularDescuento(CuotaVentaViewModels datos)
        {
            var            cuota = new CuotaVentaViewModels();
            ILoteComponent lote  = new PrecioLote(datos.cantidad);

            //cuota.cantidad = datos.cantidad;

            lote            = new DescuentoLote(lote, datos.descuento, 0);
            cuota.descuento = lote.calcularMonto();

            lote           = new EngancheLote(lote, datos.enganche);
            cuota.enganche = lote.calcularMonto();

            cuota.cantidad = lote.calcularSaldo();

            lote          = new InteresLote(lote, datos.interes, datos.tiempo);
            cuota.interes = punto.dosDecimales(lote.calcularMonto());

            cuota.tiempo = datos.tiempo;
            cuota.cuota  = (cuota.cantidad + cuota.interes) / datos.tiempo;

            return(cuota);
        }