private void CargarDatosMoratoria() { FacturasImplement oFacturasImplement = new FacturasImplement(); CalculosConvenio oCalculosConvenio = new CalculosConvenio(); _ConveniosNoCancelados = oCalculosConvenio.ObtenerImporteConvenioAdeudado(_idSocio); DataTable dtFacturas = oFacturasImplement.GetByIdSocioSinConvenioDT(_idSocio, 1, 1); txtFactAdeudadasMora.Text = dtFacturas.Rows.Count.ToString(); Decimal valorTotalSinInteres = 0; Decimal valorInteresesMora = 0; foreach (DataRow dr in dtFacturas.Rows) { #region <Control Valores Vacios> decimal Neto = 0; decimal IVA = 0; decimal Cobrado = 0; decimal Recargo=0; decimal IVARecargo = 0; if (dr["Neto"] == null | dr["Neto"].ToString() == "") Neto = 0; else Neto = decimal.Parse(dr["Neto"].ToString()); if (dr["IVA"] == null | dr["IVA"].ToString() == "") IVA = 0; else IVA = decimal.Parse(dr["IVA"].ToString()); if (dr["Cobrado"] == null | dr["Cobrado"].ToString() == "") Cobrado = 0; else Cobrado = decimal.Parse(dr["Cobrado"].ToString()); if (dr["Recargo"] == null | dr["Recargo"].ToString() == "") Recargo = 0; else Recargo = decimal.Parse(dr["Recargo"].ToString()); if (dr["IVARecargo"] == null | dr["IVARecargo"].ToString() == "") IVARecargo = 0; else IVARecargo = decimal.Parse(dr["IVARecargo"].ToString()); #endregion valorTotalSinInteres = valorTotalSinInteres + (Neto + IVA - Cobrado); valorInteresesMora = valorInteresesMora + (Recargo + IVARecargo); } Decimal ImporteTotalSinInteresMora =valorTotalSinInteres + _ConveniosNoCancelados; txtTotalSinInteresMora.Text =ImporteTotalSinInteresMora.ToString(); Decimal ImporteInteresesMora = valorInteresesMora; txtImporteInteresesMora.Text = ImporteInteresesMora.ToString(); txtTotalMoratoria.Text = (ImporteTotalSinInteresMora + ImporteInteresesMora).ToString(); txtCuotasAbonadasMora.Text = "1"; txtDescPagoContadoMora.Text = "5%"; txtCantMaxCuotasMora.Text = "-"; facturas oFacturas = new facturas(); oFacturas = oFacturasImplement.GetUltimaFactura(_idSocio); DataTable oFacturasDetallesDT = new DataTable(); FacturasDetallesImplement oFacturasDetallesImplements = new FacturasDetallesImplement(); oFacturasDetallesDT = oFacturasDetallesImplements.GetAllByIdFacturaDT(oFacturas.id_factura); decimal valorUltimaFactura =0; foreach(DataRow dr in oFacturasDetallesDT.Rows) { int _idConcepto = int.Parse(dr["id_concepto"].ToString()); if(_idConcepto==1 | _idConcepto==2 | _idConcepto==3 |_idConcepto==8) { valorUltimaFactura = valorUltimaFactura + decimal.Parse(dr["importe"].ToString()); } } decimal valorMinimoCuota = Math.Round((valorUltimaFactura / 2), 2); txtValorMinimoCuotaMora.Text=valorMinimoCuota.ToString(); int maxCantCuotas = (int)((ImporteTotalSinInteresMora + ImporteInteresesMora) / valorMinimoCuota); //Pregunto por si la moratoria tiene limitacion, si no la tiene cambio la cant max de cuotas por minimo monto //por la max cant de cuotas por moratoria directamente MoratoriasImplement oMoratoriasImplement = new MoratoriasImplement(); DataTable cuotasDT = new DataTable(); DateTime fechaConv = dtpFechaConvenio.Value; cuotasDT = oMoratoriasImplement.GetTablaCuotasConvenioMoratoria(maxCantCuotas, fechaConv, ImporteTotalSinInteresMora, ImporteInteresesMora); txtCantMaxCuotasMora.Text = cuotasDT.Rows.Count.ToString();//esta tabla trae la cantidad de cuotas previendo limitacion con valor minimo dgvCuotasMora.DataSource = cuotasDT; }