Example #1
0
        public int CalcularMora(CalcularMoraViewModels datos)
        {
            int estado      = -1;
            var mora        = new MoraViewModels();
            var ultimaFecha = datos.Fecha;            //fecha de la ultima cuota pagada.
            var fechaMora   = ultimaFecha.AddDays(9); //10 dias de gracia, a partir del 11 se cobra mora.
            var fechaActual = DateTime.Today;

            //DateTime fecha = new DateTime(1901, 01, 01);

            if (ultimaFecha != new DateTime(0001, 1, 1))
            {
                while (fechaMora <= fechaActual)
                {
                    //cuenta los dias que tiene el mes
                    int diasDelMes = DateTime.DaysInMonth(fechaMora.Year, fechaMora.Month);
                    fechaMora = fechaMora.AddMonths(1);//agrega un mes.

                    //rompe el ciclo, para evitar crear una nueva mora en el mes que aun no termina.
                    if (fechaMora > fechaActual)
                    {
                        break;
                    }

                    mora.Fecha = fechaMora.AddDays(-9);                              //resta los 11 dias agregados en la linea 4 del metodo
                    mora.Monto = ((datos.Cuota * datos.TasaMora) / 30) * diasDelMes; //calculo del monto de la mora
                    estado     = Save(mora);                                         //guarda la mora en la base de datos.
                }
            }

            return(estado);
        }
Example #2
0
        public object FindForId(int id)
        {
            var    paramsMora = new CalcularMoraViewModels();
            string query      = "SELECT saldo, fecha, cuota, mora FROM calc_demorados WHERE venta_id = @venta_id"
                                + " ORDER BY fecha DESC LIMIT 1";

            using (var connection = PostConnection.Connection())
            {
                using (var command = db.Command(query))
                {
                    try
                    {
                        connection.Open();
                        command.Parameters.AddWithValue("@venta_id", id);
                        command.Connection = connection;
                        using (var reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                paramsMora.Saldo    = Convert.ToDouble(reader["saldo"]);
                                paramsMora.Fecha    = Convert.ToDateTime(reader["fecha"]);
                                paramsMora.Cuota    = Convert.ToDouble(reader["cuota"]);
                                paramsMora.TasaMora = Convert.ToDouble(reader["mora"]);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }
            }
            DateTime fechaUltimaMora = FechaUltimaMora(id);

            paramsMora.Fecha = paramsMora.Fecha < fechaUltimaMora ? fechaUltimaMora : paramsMora.Fecha;
            return(paramsMora);
        }