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