예제 #1
0
        /// <summary> Calcula las cuotas a cancelar en un recibo. </summary>
        /// <param name="tintCredito"> Codigo del crésdito al que se le van a pagar las cuotas. </param>
        /// <param name="tintCuotas"> Numero de cuotas a cancelar. </param>
        /// <returns> Listado de cuotas procesadas. </returns>
        public List <recibosIngresosPrestamos> gmtdCalcularValordeCuotas(int tintCredito, int tintCuotas)
        {
            List <tblCreditosCuota> lstCuotas = new daoCreditos().gmtdConsultarCuotasPendientesdeunCredito(tintCredito);

            decimal decCausadoTotal = this.gmtdConsultaInteresCausadoporCredito(tintCredito);
            decimal decMora         = new daoUtilidadesConfiguracion().gmtdConsultaConfiguracion().decMoraCreditos;

            List <recibosIngresosPrestamos> lstCuotasOrganizadas = new List <recibosIngresosPrestamos>();

            for (int a = 0; a < tintCuotas; a++)
            {
                tblCreditosCuota cuota = new tblCreditosCuota();
                cuota = lstCuotas[a];

                decimal decCausado     = 0;
                int     intMeses       = this.pmtdCalcularDiferenciaMeses(cuota.dtmFechaCuo);
                decimal decInteresMora = cuota.decCapital * (decMora / 100) * intMeses;

                if (decCausadoTotal > cuota.decIntereses)
                {
                    decCausado         = cuota.decIntereses;
                    cuota.decIntereses = 0;
                    decCausadoTotal   -= decCausado;
                }
                else
                {
                    decCausado          = decCausadoTotal;
                    cuota.decIntereses -= decCausadoTotal;
                    decCausadoTotal     = 0;
                }

                recibosIngresosPrestamos cuotaRecibo = new recibosIngresosPrestamos();
                cuotaRecibo.decCapital        = cuota.decCapital;
                cuotaRecibo.decCausado        = decCausado;
                cuotaRecibo.decIntereses      = cuota.decIntereses;
                cuotaRecibo.decInteresesMora  = decInteresMora;
                cuotaRecibo.decValorCuota     = cuota.decCapital + cuota.decIntereses + decInteresMora + decCausado;
                cuotaRecibo.intCuota          = cuota.intCuota;
                cuotaRecibo.intMesesAtrasados = intMeses;
                cuotaRecibo.dtmFechaCuo       = cuota.dtmFechaCuo;

                lstCuotasOrganizadas.Add(cuotaRecibo);
            }

            return(lstCuotasOrganizadas);
        }
예제 #2
0
        /// <summary> Calcula la diferencia entre la fecha de la cuota y la fecha actual. </summary>
        /// <param name="tdtmFechaCuota"> Fecha de la cuota. </param>
        /// <returns> El número de meses </returns>
        private int pmtdCalcularDiferenciaMeses(DateTime tdtmFechaCuota)
        {
            // Difference in days, hours, and minutes.
            TimeSpan ts = new daoUtilidadesConfiguracion().gmtdCapturarFechadelServidor() - tdtmFechaCuota;

            // Difference in days.
            int intDiferenciaenMeses = ts.Days;

            if (intDiferenciaenMeses <= 0)
            {
                intDiferenciaenMeses = 0;
            }
            else
            {
                intDiferenciaenMeses = intDiferenciaenMeses / 30;
                intDiferenciaenMeses++;
            }

            return(intDiferenciaenMeses);
        }