/// <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); }
/// <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); }