/// <summary>
    /// hecho por cesar pulido
    /// el dia 17 de enero de 2013
    /// para cargar en el pdf la seccion de condiciones de envio en seleccion
    /// </summary>
    /// <param name="ID_EMPRESA"></param>
    /// <returns></returns>
    private String CargarCondicionesEnvioSeleccion(Decimal ID_EMPRESA, Conexion _datos)
    {
        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        //ok -----------------
        DataTable tablaCondicionesEnvio = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA, _datos);

        String htmlSeccion = String.Empty;

        foreach (DataRow fila in tablaCondicionesEnvio.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"12%\" style=\"text-align:center;\">";
            htmlSeccion += fila["NOMBRE_CIUDAD"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"13%\" style=\"text-align:left;\">";
            htmlSeccion += fila["NOMBRE_CONTACTO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"16%\" style=\"text-align:left;\">";
            htmlSeccion += fila["MAIL_CONTACTO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"16%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["DIR_ENVIO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"13%\" style=\"text-align:center;\">";
            htmlSeccion += fila["TEL_ENVIO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"30%\" style=\"text-align:justify;\">";
            htmlSeccion += fila["COND_ENVIO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

        return htmlSeccion;
    }
    private void iniciarControlesCargar(Boolean modificar)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Decimal ID_EMPRESA = Convert.ToDecimal(QueryStringSeguro["reg"]);
        Decimal REGISTRO_ENVIO = Convert.ToDecimal(QueryStringSeguro["envio"]);

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEnvio = _envioCandidato.ObtenerEnvioDeCandidatoPorRegistro(REGISTRO_ENVIO);

        if (_envioCandidato.MensajeError == null)
        {
            if (tablaEnvio.Rows.Count <= 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: No se encontró información de la condición de envio número: " + REGISTRO_ENVIO.ToString();

                configurarBotonesDeAccion(true, false, false, false, true);

                Panel_RESULTADOS_GRID.Visible = false;

                Panel_FORMULARIO.Visible = false;
            }
            else
            {
                if (modificar == true)
                {
                    configurarBotonesDeAccion(false, false, true, true, true);
                }
                else
                {
                    configurarBotonesDeAccion(true, true, false, false, true);
                }

                Panel_RESULTADOS_GRID.Visible = false;

                configurarMensajes(false, System.Drawing.Color.Green);

                Panel_FORMULARIO.Visible = true;
                if (modificar == true)
                {
                    Panel_FORMULARIO.Enabled = true;
                }
                else
                {
                    Panel_FORMULARIO.Enabled = false;
                }

                DataRow filaInfoEnvio = tablaEnvio.Rows[0];

                Page.Header.Title += ": " + filaInfoEnvio["REGISTRO"].ToString();

                if (modificar == true)
                {
                    Panel_CONTROL_REGISTRO.Visible = false;
                }
                else
                {
                    Panel_CONTROL_REGISTRO.Visible = true;
                    Panel_CONTROL_REGISTRO.Enabled = false;
                    TextBox_USU_CRE.Text = filaInfoEnvio["USU_CRE"].ToString();
                    try
                    {
                        TextBox_FCH_CRE.Text = DateTime.Parse(filaInfoEnvio["FCH_CRE"].ToString()).ToShortDateString();
                        TextBox_HOR_CRE.Text = DateTime.Parse(filaInfoEnvio["FCH_CRE"].ToString()).ToShortTimeString();
                    }
                    catch
                    {
                        TextBox_FCH_CRE.Text = "";
                        TextBox_HOR_CRE.Text = "";
                    }
                    TextBox_USU_MOD.Text = filaInfoEnvio["USU_MOD"].ToString();
                    try
                    {
                        TextBox_FCH_MOD.Text = DateTime.Parse(filaInfoEnvio["FCH_MOD"].ToString()).ToShortDateString();
                        TextBox_HOR_MOD.Text = DateTime.Parse(filaInfoEnvio["FCH_MOD"].ToString()).ToShortTimeString();
                    }
                    catch
                    {
                        TextBox_FCH_MOD.Text = "";
                        TextBox_HOR_MOD.Text = "";
                    }
                }

                if (modificar == true)
                {
                    Panel_IDENTIFICADOR.Visible = false;
                }
                else
                {
                    Panel_IDENTIFICADOR.Visible = true;
                    Panel_IDENTIFICADOR.Enabled = false;
                    TextBox_REGISTRO.Text = filaInfoEnvio["REGISTRO"].ToString().Trim();
                }

                cargar_DropDownList_CONT_NOMBRE();
                DropDownList_CONT_NOMBRE.SelectedValue = filaInfoEnvio["REGISTRO_CONTACTO"].ToString().Trim();
                TextBox_CONT_MAIL.Text = filaInfoEnvio["CONT_MAIL"].ToString().Trim();

                TextBox_DIR_ENVIO.Text = filaInfoEnvio["DIR_ENVIO"].ToString().Trim();

                if (filaInfoEnvio["ID_REGIONAL"].ToString() != "")
                {
                    cargar_DropDownList_REGIONAL();
                    DropDownList_REGIONAL.SelectedValue = filaInfoEnvio["ID_REGIONAL"].ToString();
                    cargar_DropDownList_DEPARTAMENTO(filaInfoEnvio["ID_REGIONAL"].ToString());
                    DropDownList_DEPARTAMENTO.SelectedValue = filaInfoEnvio["ID_DEPARTAMENTO"].ToString();
                    cargar_DropDownList_CIUDAD(filaInfoEnvio["ID_DEPARTAMENTO"].ToString(), filaInfoEnvio["ID_REGIONAL"].ToString());
                    DropDownList_CIUDAD.SelectedValue = filaInfoEnvio["CIU_ENVIO"].ToString().Trim();
                }
                else
                {
                    cargar_DropDownList_REGIONAL();
                    inhabilitar_DropDownList_DEPARTAMENTO();
                    inhabilitar_DropDownList_CIUDAD();
                }

                TextBox_TEL_ENVIO.Text = filaInfoEnvio["TEL_ENVIO"].ToString().Trim();

                TextBox_COND_ENVIO.Text = filaInfoEnvio["COND_ENVIO"].ToString().Trim();
            }
        }
        else
        {
            configurarMensajes(true, System.Drawing.Color.Red);
            Label_MENSAJE.Text = _envioCandidato.MensajeError;

            configurarBotonesDeAccion(true, false, false, false, true);

            Panel_RESULTADOS_GRID.Visible = false;

            Panel_FORMULARIO.Visible = false;
        }
    }
    protected void Button_GUARDAR_Click(object sender, EventArgs e)
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        String accion = QueryStringSeguro["accion"].ToString();

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal ID_EMPRESA = Convert.ToDecimal(QueryStringSeguro["reg"]);

        Decimal REGISTRO_CONTACTO = Convert.ToDecimal(DropDownList_CONT_NOMBRE.SelectedValue);
        String DIR_ENVIO = TextBox_DIR_ENVIO.Text.ToUpper().Trim();
        String CIU_ENVIO = DropDownList_CIUDAD.SelectedValue;
        String TEL_ENVIO = TextBox_TEL_ENVIO.Text.ToUpper().Trim();
        string COND_ENVIO = TextBox_COND_ENVIO.Text.ToUpper().Trim();

        Decimal REGISTRO_ENVIO;
        if (accion == "nuevo")
        {
            REGISTRO_ENVIO = _envioCandidato.Adicionar(ID_EMPRESA, DIR_ENVIO, CIU_ENVIO, TEL_ENVIO, REGISTRO_CONTACTO, COND_ENVIO);

            if (REGISTRO_ENVIO == 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = _envioCandidato.MensajeError;
            }
            else
            {
                maestrasInterfaz _maestrasInterfaz = new maestrasInterfaz();
                _maestrasInterfaz.CargarEnBdElManualServicioActual(ID_EMPRESA);

                QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                QueryStringSeguro["img_area"] = "seleccion";
                QueryStringSeguro["nombre_area"] = "RECLUTAMIENTO, SELECCIÓN Y REQUISICIONES";
                QueryStringSeguro["nombre_modulo"] = "CONDICIONES DE ENVIO";
                QueryStringSeguro["accion"] = "cargarNuevo";
                QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                QueryStringSeguro["envio"] = REGISTRO_ENVIO.ToString();

                Response.Redirect("~/seleccion/condicionesSeleccion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
            }
        }
        else
        {
            REGISTRO_ENVIO = Convert.ToDecimal(QueryStringSeguro["envio"]);

            Boolean verificador = _envioCandidato.Actualizar(REGISTRO_ENVIO, DIR_ENVIO, CIU_ENVIO, TEL_ENVIO, COND_ENVIO, REGISTRO_CONTACTO, ID_EMPRESA);

            if (verificador == false)
            {
                configurarMensajes(true, System.Drawing.Color.Green);
                Label_MENSAJE.Text = _envioCandidato.MensajeError;
            }
            else
            {
                maestrasInterfaz _maestrasInterfaz = new maestrasInterfaz();
                _maestrasInterfaz.CargarEnBdElManualServicioActual(ID_EMPRESA);

                QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                QueryStringSeguro["img_area"] = "seleccion";
                QueryStringSeguro["nombre_area"] = "RECLUTAMIENTO, SELECCIÓN Y REQUISICIONES";
                QueryStringSeguro["nombre_modulo"] = "CONDICIONES DE ENVIO";
                QueryStringSeguro["accion"] = "cargarModificado";
                QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                QueryStringSeguro["envio"] = REGISTRO_ENVIO.ToString();

                Response.Redirect("~/seleccion/condicionesSeleccion.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
            }
        }
    }
    private void cargar_datos_envio(DataRow filaInfoReq)
    {
        if (DropDownList_ID_EMPRESA.SelectedValue == "")
        {
            DropDownList_ENVIO_CANDIDATOS.Items.Clear();
            TextBox_DIR_ENVIO.Text = "";
            TextBox_CIUDAD_ENVIO.Text = "";
            TextBox_TEL_ENVIO.Text = "";
            TextBox_EMAIL_ENVIO.Text = "";
            TextBox_COND_ENVIO.Text = "";
        }
        else
        {
            Decimal REGISTRO_ENVIO = 0;

            try
            {
                REGISTRO_ENVIO = Convert.ToDecimal(filaInfoReq["REGISTRO_ENVIO_CANDIDATOS"]);
            }
            catch
            {
                REGISTRO_ENVIO = 0;
            }

            envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable tablaEnvio = _envioCandidato.ObtenerInformacionEnvioPorRegistro(REGISTRO_ENVIO);

            if (tablaEnvio.Rows.Count > 0)
            {
                DataRow filaEnvio = tablaEnvio.Rows[0];

                DropDownList_ENVIO_CANDIDATOS.Items.Add(new ListItem(filaEnvio["NOMBRE_CONTACTO"].ToString(), filaEnvio["REGISTRO"].ToString()));
                DropDownList_ENVIO_CANDIDATOS.SelectedValue = REGISTRO_ENVIO.ToString();

                TextBox_DIR_ENVIO.Text = filaEnvio["DIR_ENVIO"].ToString().Trim();
                TextBox_CIUDAD_ENVIO.Text = filaEnvio["NOMBRE_CIUDAD"].ToString().Trim();
                TextBox_TEL_ENVIO.Text = filaEnvio["TEL_ENVIO"].ToString().Trim();
                TextBox_EMAIL_ENVIO.Text = filaEnvio["MAIL_CONTACTO"].ToString().Trim();
                TextBox_COND_ENVIO.Text = filaEnvio["COND_ENVIO"].ToString().Trim();
            }
            else
            {
                DropDownList_ENVIO_CANDIDATOS.Items.Clear();
                TextBox_DIR_ENVIO.Text = "";
                TextBox_CIUDAD_ENVIO.Text = "";
                TextBox_TEL_ENVIO.Text = "";
                TextBox_EMAIL_ENVIO.Text = "";
                TextBox_COND_ENVIO.Text = "";
            }
        }
    }
    private void cargar_GridView_DATOS()
    {
        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

        Decimal ID_EMPRESA = Convert.ToDecimal(QueryStringSeguro["reg"]);

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCondicionesEnvio = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA);

        if (tablaCondicionesEnvio.Rows.Count > 0)
        {
            GridView_DATOS.DataSource = tablaCondicionesEnvio;
            GridView_DATOS.DataBind();
        }
        else
        {
            configurarMensajes(true, System.Drawing.Color.Red);
            Label_MENSAJE.Text = "ADVERTENCIA: La empresa no posee condiciones de envio.";

            configurarBotonesDeAccion(true, false, false, false, false);

            Panel_RESULTADOS_GRID.Visible = false;

            Panel_FORMULARIO.Visible = false;
        }
    }
    private DataRow ObtenerEnvioDeCandidatoPorRegistro(Decimal REGISTRO)
    {
        DataRow resultado = null;

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaInfoSolicitante = _envioCandidato.ObtenerEnvioDeCandidatoPorRegistro(REGISTRO);

        if (tablaInfoSolicitante.Rows.Count > 0)
        {
            resultado = tablaInfoSolicitante.Rows[0];
        }

        return resultado;
    }
    private void CargarCondicionesEnvioSeleccion(Decimal ID_EMPRESA)
    {
        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCondicionesEnvio = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA);

        if (tablaCondicionesEnvio.Rows.Count > 0)
        {
            GridView_CondicionesEnvioSeleccion.DataSource = tablaCondicionesEnvio;
        }
        else
        {
            GridView_CondicionesEnvioSeleccion.DataSource = null;
        }

        GridView_CondicionesEnvioSeleccion.DataBind();
    }
    private void CargarSeleccion(Decimal ID_EMPRESA,tabla.proceso proceso)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactosOriginal = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA, proceso);

        GridView_ContactosSeleccion.DataSource = tablaContactosOriginal;
        GridView_ContactosSeleccion.DataBind();

        pruebaPerfil  _pp = new pruebaPerfil(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaPruebas = _pp.ObtenerPruebasVSCargoPorEmpresa(ID_EMPRESA);
        CargarTablaConfiguradaParaPruebasCargosSeleccion(tablaPruebas);

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaCondicionesEnvio = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA);

        if (tablaCondicionesEnvio.Rows.Count > 0)
        {
            GridView_CondEnvioSeleccion.DataSource = tablaCondicionesEnvio;
            GridView_CondEnvioSeleccion.DataBind();
        }
        else
        {
            GridView_CondEnvioSeleccion.DataSource = null;
            GridView_CondEnvioSeleccion.DataBind();
        }
    }
    private DataRow ObtenerEnvioContactoVigentePorIdEmpresa(Decimal ID_EMPRESA)
    {
        DataRow resultado = null;

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        DataTable tablaEnvioInmediato = _envioCandidato.ObtenerEnvioContactoVigentePorIdEmpresa(ID_EMPRESA);

        if (tablaEnvioInmediato.Rows.Count > 0)
        {
            resultado = tablaEnvioInmediato.Rows[0];
        }

        return resultado;
    }
    private void cargar_DropDownList_ENVIO_CANDIDATOS(Decimal ID_EMPRESA)
    {
        DropDownList_ENVIO_CANDIDATOS.Items.Clear();

        envioCandidato _envioCandidato = new envioCandidato(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaEnvioCandidatos = _envioCandidato.ObtenerTodosLosContactosParaEnvioDeCandidatosPorIdEmpresa(ID_EMPRESA);

        ListItem item = new ListItem("Seleccione solicitante", "");
        DropDownList_ENVIO_CANDIDATOS.Items.Add(item);

        foreach (DataRow fila in tablaEnvioCandidatos.Rows)
        {
            item = new ListItem(fila["NOMBRE_CONTACTO"].ToString(), fila["REGISTRO"].ToString());
            DropDownList_ENVIO_CANDIDATOS.Items.Add(item);
        }

        DropDownList_REGIONAL.DataBind();
    }