예제 #1
0
    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);
        }
    }