protected void btnEnviarSinAplicar_Click(object sender, System.EventArgs e) { AdministrarCertificados objAdministrarCertificados = new AdministrarCertificados(); DataTable dtCertificados = new DataTable(); DataTable dtNovedad = new DataTable(); DataTable dtNovedades = new DataTable(); double valor = 0; string cedulaNovedad = ""; try { //Pregunta si ya se encuentra un id y un causal seleccionado if (txtIdNovedad.Text != "" && ddlSinAplicar.SelectedValue.ToString() != "") { //se pasa la novedad de retiro del mismo tercero a sin aplicar int localidad = (Session["localidad"].ToString() == "") ? 0 : int.Parse(Session["localidad"].ToString()); //Lista las novedades pendientes segun los parametros enviados DataTable dt = AdministrarNovedades.ConsultarNovedadesArchivoEnviada(localidad, 0, 0, 1, 1); //Recorre el dt con las novedades pendientes foreach (DataRow row in dt.Rows) { //entra solo si el id que se esta recorriendo es igual al cargado en el txt if (row["Id"].ToString() == txtIdNovedad.Text) { //asigna en una variable la cedula cedulaNovedad = row["Documento"].ToString(); } } foreach (DataRow row in dt.Rows) { /*Pregunta si el documento que se esta recorriendo es igual a la cedula del registro pendiente por * por enviar a sin aplicar y si el tipo de novedad es retiro */ if (row["Documento"].ToString() == cedulaNovedad && row["Tipo Novedad"].ToString() == "RETIRO") { //Se ammarra este retiro y se envia a sin aplicar al igual que el anterior AdministrarNovedades.ActualizarDePendienteASinAplicar(int.Parse(row["Id"].ToString()), 0, ddlSinAplicar.SelectedValue.ToString()); } } //Se envia novedad a sin aplicar AdministrarNovedades.ActualizarDePendienteASinAplicar(int.Parse(txtIdNovedad.Text), 0, ddlSinAplicar.SelectedValue.ToString()); //Se consulta la novedad enviada a sin aplicar dtNovedad = AdministrarNovedades.ConsultarNovedadPorTercero("0", "0", "0", txtIdNovedad.Text); if (dtNovedad.Rows.Count != 0) { //Se asigna a variable el valor de la novedad valor = double.Parse(dtNovedad.Rows[0]["nov_Valor"].ToString()); //Consulta certificados por los cuales posiblemente se genero la novedad enviada a sin aplicar dtCertificados = AdministrarNovedades.ConsultarCertificadoPorPagaduriaArchivo(dtNovedad.Rows[0]["ter_Id"].ToString(), dtNovedad.Rows[0]["arcpag_Id"].ToString(), txtIdNovedad.Text); //Se consulta la novedad enviada a sin aplicar dtNovedades = AdministrarNovedades.ConsultarNovedadPorTercero(dtNovedad.Rows[0]["ter_Id"].ToString(), dtNovedad.Rows[0]["arcpag_Id"].ToString(), "2", "0"); if (dtNovedades.Rows.Count != 0) { valor -= double.Parse(dtNovedades.Rows[0]["nov_Valor"].ToString()); } int i = 0; //Envia los certificados consultados a no aplicar hasta que el valor se reduzca a 0 while (valor > 0 && i < dtCertificados.Rows.Count) { valor -= double.Parse(dtCertificados.Rows[i]["cer_PrimaTotal"].ToString()); objAdministrarCertificados.ActualizarEstadoNegocioDevolucion("NO APLICO", int.Parse(dtCertificados.Rows[i]["cer_Id"].ToString())); i++; } } ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alert", "alert('" + "Novedades pendiente enviada a sin aplicar" + "');", true); ddlAnio_SelectedIndexChanged(sender, e); } } catch { ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + "HA OCURRIDO UN ERROR AL TRATA DE ENVIAR LA NOVEDAD A SIN APLICAR" + "');", true); } }