/// <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> Inserta un credito. </summary> /// <param name="tobjMunicipio"> Un objeto del tipo credito. </param> /// <returns> Un string que indica si se ejecuto o no la operación. </returns> public string gmtdInsertar(tblCredito tobjCredito) { if (tobjCredito.intCodigoCre == 0) { return("- Debe de ingresar el código del crédito."); } if (tobjCredito.strNombrePre == "" || tobjCredito.strNombrePre == null) { return("- Debe de ingresar el primer apellido."); } if (tobjCredito.strApellido1Pre == "" || tobjCredito.strApellido1Pre == null) { return("- Debe de ingresar el primer apellido."); } if (tobjCredito.intPagarePre == 0) { return("- Debe de ingresar el número del pagaré."); } if (tobjCredito.decIntereses == 0) { return("- Debe de ingresar el porcentaje de interes del crédito."); } if (tobjCredito.decMonto == 0) { return("- Debe de ingresar el monto del credito."); } if (tobjCredito.intCuotas == 0) { return("- Debe de ingresar el número de cuotas del crédito."); } tobjCredito.decDebe = tobjCredito.decMonto; tobjCredito.decAbono = 0; tobjCredito.dtmFechaPre = new daoUtilidadesConfiguracion().gmtdCapturarFechadelServidor(); switch (tobjCredito.intTipoGarantia) { case 1: if (tobjCredito.strApellidoCde == "" || tobjCredito.strApellidoCde == null) { return("- Debe de ingresar el apellido del codeudor"); } if (tobjCredito.strNombreCde == "" || tobjCredito.strNombreCde == null) { return("- Debe de ingresar el nombre del codeudor"); } if (tobjCredito.strCedulaCde == "" || tobjCredito.strCedulaCde == null) { return("- Debe de ingresar la cédula del codeudor"); } break; case 2: if (tobjCredito.decAhorrado == 0) { return("- Debe de ingresar valor del ahorro para respaldar el credito"); } break; case 3: if (tobjCredito.strDescripcionGarantiadelCredito == null || tobjCredito.strDescripcionGarantiadelCredito == "") { return("- Debe de ingresar la descripción de la garantia del credito"); } break; } if (tobjCredito.strCedulaPre == "" || tobjCredito.strCedulaPre == null) { return("- Debe de ingresar la cédula del deudor."); } if (tobjCredito.strCodigoPar == "" || tobjCredito.strCodigoPar == null) { return("- Debe de seleccionar el par."); } if (tobjCredito.strCodLineadeCredito == "" || tobjCredito.strCodLineadeCredito == null) { return("- Debe de seleccionar la linea de crédito."); } if (tobjCredito.strDireccion == "" || tobjCredito.strDireccion == null) { return("- Debe de ingresar la dirección."); } if (tobjCredito.strFormadeCobroPre == "" || tobjCredito.strFormadeCobroPre == null) { return("- Debe de seleccionar la forma de cobro del crédito. "); } if (tobjCredito.strFrecuenciaPre == "" || tobjCredito.strFrecuenciaPre == null) { return("- Debe de seleccionar la frecuencia del rédito. "); } if (tobjCredito.strTelefono == "" || tobjCredito.strTelefono == null) { return("- Debe de escribir el teléfono del deudor. "); } tblCredito cre = new daoCreditos().gmtdConsultar(tobjCredito.intCodigoCre); if (cre.strNombrePre == null) { tobjCredito.bitAnulado = false; tobjCredito.dtmFechaAnu = Convert.ToDateTime("1/1/1900"); tobjCredito.log = metodos.gmtdLog("Ingresa el crédito " + tobjCredito.intCodigoCre.ToString(), tobjCredito.strFormulario); double dblValorCuota = this.gmtCalcularValordeCuota(tobjCredito); List <tblCreditosCuota> lstCuotas = new List <tblCreditosCuota>(); pGenerarFechasdeCuotasAutomaticamente(tobjCredito); try { decimal decMonto = tobjCredito.decMonto; for (int a = 1; a <= tobjCredito.intCuotas; a++) { double dblIntereses = Convert.ToDouble(tobjCredito.decIntereses) / 100; dblIntereses = Convert.ToDouble(decMonto) * dblIntereses; double dblCapital = dblValorCuota - dblIntereses; tblCreditosCuota cuota = new tblCreditosCuota(); cuota.bitPagada = false; cuota.decCapital = (decimal)dblCapital; cuota.decIntereses = (decimal)dblIntereses; cuota.decSaldoCapital = decMonto; cuota.decValorCuo = (decimal)dblValorCuota; cuota.dtmFechaCuo = lstFechas[a - 1]; cuota.intCodigoCre = tobjCredito.intCodigoCre; cuota.intCuota = a; cuota.strDatosdePago = "No Pagada"; cuota.dtmFechaPago = Convert.ToDateTime("1/1/1900"); tobjCredito.tblCreditosCuotas.Add(cuota); decMonto = decMonto - Convert.ToInt32(dblCapital); } } catch (Exception ex) { new dao.dao().gmtdInsertarError(ex); return("- Hubo un error calculando las cuotas y el sistema no puede continuar."); } return(new daoCreditos().gmtdInsertar(tobjCredito)); } else { return("- Este registro ya aparece ingresado."); } }