/// <summary>
    /// hecho por cesar pulido
    /// el dia 17 de enero de 2013
    /// para cargar en el pdf los contactos comerciales
    /// </summary>
    /// <param name="ID_EMPRESA"></param>
    /// <param name="_datos"></param>
    /// <returns></returns>
    public String CargarContactosComerciales(Decimal ID_EMPRESA, Conexion _datos)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        //ok--------------------
        DataTable tablaContactos = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA, tabla.proceso.ContactoComercial, _datos);

        String htmlSeccion = String.Empty;

        foreach (DataRow fila in tablaContactos.Rows)
        {
            htmlSeccion += "<tr>";
            htmlSeccion += "  <td width=\"20%\" style=\"text-align:left;\">";
            htmlSeccion += fila["CONT_NOM"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"15%\" style=\"text-align:left;\">";
            htmlSeccion += fila["NOMBRE_CIUDAD"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"25%\" style=\"text-align:left;\">";
            htmlSeccion += fila["CONT_CARGO"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"15%\" style=\"text-align:center;\">";
            htmlSeccion += fila["CONT_TEL"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "  <td width=\"25%\" style=\"text-align:left;\">";
            htmlSeccion += fila["CONT_MAIL"].ToString().Trim();
            htmlSeccion += "  </td>";
            htmlSeccion += "</tr>";
        }

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

        int PROCESO = Convert.ToInt32(QueryStringSeguro["proceso"]);
        String reg = QueryStringSeguro["reg"].ToString();
        contactos _contactos = new contactos(Session["idEmpresa"].ToString());

        tabla.proceso pr = (tabla.proceso)PROCESO;
        DataTable tablaContactosOriginal = _contactos.ObtenerContactosPorIdEmpresa(Convert.ToDecimal(reg), pr);

        if (_contactos.MensajeError != null)
        {
            configurarMensajes(true, System.Drawing.Color.Red);
            Label_MENSAJE.Text = _contactos.MensajeError;

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

            Panel_RESULTADOS_GRID.Visible = false;

            Panel_FORMULARIO.Visible = false;
        }
        else
        {
            if (tablaContactosOriginal.Rows.Count > 0)
            {
                DataTable tablaContactos = new DataTable();

                tablaContactos.Columns.Add("Registro");
                tablaContactos.Columns.Add("Regional");
                tablaContactos.Columns.Add("Ciudad");
                tablaContactos.Columns.Add("Estado");
                tablaContactos.Columns.Add("Cargo");
                tablaContactos.Columns.Add("Nombre");
                tablaContactos.Columns.Add("Mail");
                tablaContactos.Columns.Add("Teléfono");
                tablaContactos.Columns.Add("Teléfono 2");
                tablaContactos.Columns.Add("Celular");

                DataRow filaInfoContrato;

                foreach (DataRow filaOriginal in tablaContactosOriginal.Rows)
                {
                    filaInfoContrato = tablaContactos.NewRow();
                    filaInfoContrato["Registro"] = filaOriginal["REGISTRO"].ToString();
                    filaInfoContrato["Cargo"] = filaOriginal["CONT_CARGO"].ToString();
                    filaInfoContrato["Nombre"] = filaOriginal["CONT_NOM"].ToString();
                    filaInfoContrato["Mail"] = filaOriginal["CONT_MAIL"].ToString();
                    filaInfoContrato["Teléfono"] = filaOriginal["CONT_TEL"].ToString();
                    filaInfoContrato["Teléfono 2"] = filaOriginal["CONT_TEL1"].ToString();
                    filaInfoContrato["Celular"] = filaOriginal["CONT_CELULAR"].ToString();
                    filaInfoContrato["Regional"] = filaOriginal["NOMBRE_REGIONAL"].ToString();
                    filaInfoContrato["Ciudad"] = filaOriginal["NOMBRE_CIUDAD"].ToString();
                    filaInfoContrato["Estado"] = filaOriginal["CONT_ESTADO"].ToString();

                    tablaContactos.Rows.Add(filaInfoContrato);
                }

                GridView_CONTACTOS.DataSource = tablaContactos;
                GridView_CONTACTOS.DataBind();
            }
            else
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: El cliente no posee contáctos para este proceso.";

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

                Panel_RESULTADOS_GRID.Visible = false;

                Panel_FORMULARIO.Visible = false;
            }
        }
    }
    private void cargar_DropDownList_CONT_NOMBRE()
    {
        DropDownList_CONT_NOMBRE.Items.Clear();

        tools _tools = new tools();
        SecureQueryString QueryStringSeguro;
        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro(), Request["data"]);

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

        contactos _contactos = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactos = _contactos.ObtenerContactosPorIdEmpresa(ID_EMPRESA, tabla.proceso.ContactoSeleccion);

        ListItem item = new ListItem("Ninguno", "");
        DropDownList_CONT_NOMBRE.Items.Add(item);

        foreach (DataRow fila in tablaContactos.Rows)
        {
            item = new ListItem(fila["CONT_NOM"].ToString(), fila["REGISTRO"].ToString());
            DropDownList_CONT_NOMBRE.Items.Add(item);
        }

        DropDownList_CONT_NOMBRE.DataBind();
    }
    private void CargarContactosComerciales(Decimal ID_EMPRESA)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactos = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA, tabla.proceso.ContactoComercial);

        GridView_ContactosComerciales.DataSource = tablaContactos;
        GridView_ContactosComerciales.DataBind();
    }
    private void cargar_DropDownList_CONTACTO_SELECCION()
    {
        DropDownList_CONTACTO_SELECCION.Items.Clear();

        System.Web.UI.WebControls.ListItem item = new System.Web.UI.WebControls.ListItem("Seleccione...", "");
        DropDownList_CONTACTO_SELECCION.Items.Add(item);

        Decimal ID_EMPRESA = Convert.ToDecimal(HiddenField_ID_EMPRESA.Value);

        contactos _contactos = new contactos(Session["idEmpresa"].ToString());
        tabla.proceso pr = tabla.proceso.ContactoSeleccion;
        DataTable tablaContactosOriginal = _contactos.ObtenerContactosPorIdEmpresa(ID_EMPRESA, pr);

        foreach (DataRow fila in tablaContactosOriginal.Rows)
        {
            item = new System.Web.UI.WebControls.ListItem(fila["CONT_NOM"].ToString(), fila["REGISTRO"].ToString());
            DropDownList_CONTACTO_SELECCION.Items.Add(item);
        }

        DropDownList_CONTACTO_SELECCION.DataBind();
    }
    private void Cargar(Decimal ID_EMPRESA)
    {
        Panel_Formulario_Nomina.Visible = true;

        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactosOriginal = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA, tabla.proceso.Nomina);

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

        Cargar(DropDownList_BAS_HOR_EXT, tabla.PARAMETROS_BASE_HORA_EXTRAS);
        Cargar(DropDownList_ID_PERIODO_PAGO, tabla.PARAMETROS_PERIODO_PAGO);
        Cargar(DropDownList_CALCULO_RETENCION_FUENTE, tabla.PARAMETROS_CALCULO_RETENCION_FUENTE);

        Label_MENSAJE_CC.Text = "Por favor seleccionar una ciudad de la lista de cobertura.";
        this.Label_MENSAJE_SUB_CC.Text = "Por favor seleccionar un centro de costo de la lista de centros de costo.";

        condicionNomina _condicionNomina = new condicionNomina(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable _dataTable = _condicionNomina.ObtenerPorIdEmpresa(ID_EMPRESA);
        if (String.IsNullOrEmpty(_condicionNomina.MensajeError))
        {
            if (_dataTable.Rows.Count != 0)
            {
                foreach (DataRow _dataRow in _dataTable.Rows)
                {
                    Label_INFO_ADICIONAL_MODULO.Text = !String.IsNullOrEmpty(_dataRow["RAZ_SOCIAL"].ToString()) ? _dataRow["RAZ_SOCIAL"].ToString() : String.Empty;
                    TextBox_FCH_CRE.Text = !String.IsNullOrEmpty(_dataRow["FCH_CRE"].ToString()) ? _dataRow["FCH_CRE"].ToString() : String.Empty;
                    TextBox_USU_CRE.Text = !String.IsNullOrEmpty(_dataRow["USU_CRE"].ToString()) ? _dataRow["USU_CRE"].ToString() : String.Empty;
                    TextBox_FCH_MOD.Text = !String.IsNullOrEmpty(_dataRow["FCH_MOD"].ToString()) ? _dataRow["FCH_MOD"].ToString() : String.Empty;
                    TextBox_USU_MOD.Text = !String.IsNullOrEmpty(_dataRow["USU_MOD"].ToString()) ? _dataRow["USU_MOD"].ToString() : String.Empty;
                    TextBox_REGISTRO.Text = !String.IsNullOrEmpty(_dataRow["REGISTRO"].ToString()) ? _dataRow["REGISTRO"].ToString() : String.Empty;

                    if (!String.IsNullOrEmpty(_dataRow["ID_PERIODO_PAGO"].ToString()))
                    {
                        DropDownList_ID_PERIODO_PAGO.SelectedValue = _dataRow["ID_PERIODO_PAGO"].ToString();
                        Cargar(CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE, _dataRow["ID_PERIODO_PAGO"].ToString());
                        for (int i = 0; i < CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE.Items.Count; i++)
                        {
                            switch (i)
                            {
                                case 0:
                                    if (!String.IsNullOrEmpty(_dataRow["PAG_SUB_TRANS_PERIDO_1"].ToString()))
                                        CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE.Items[i].Selected = _dataRow["PAG_SUB_TRANS_PERIDO_1"].Equals(true) ? true : false;
                                    break;
                                case 1:
                                    if (!String.IsNullOrEmpty(_dataRow["PAG_SUB_TRANS_PERIDO_2"].ToString()))
                                        CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE.Items[i].Selected = _dataRow["PAG_SUB_TRANS_PERIDO_2"].Equals(true) ? true : false;
                                    break;
                                case 2:
                                    if (!String.IsNullOrEmpty(_dataRow["PAG_SUB_TRANS_PERIDO_3"].ToString()))
                                        CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE.Items[i].Selected = _dataRow["PAG_SUB_TRANS_PERIDO_3"].Equals(true) ? true : false;
                                    break;
                                case 3:
                                    if (!String.IsNullOrEmpty(_dataRow["PAG_SUB_TRANS_PERIDO_4"].ToString()))
                                        CheckBoxList_PERIODO_PAGO_SUB_TRANSPORTE.Items[i].Selected = _dataRow["PAG_SUB_TRANS_PERIDO_4"].Equals(true) ? true : false;
                                    break;
                            }
                        }
                    }
                    else DropDownList_ID_PERIODO_PAGO.SelectedValue = "0";

                    TextBox_FECHA_PAGOS.Text = !String.IsNullOrEmpty(_dataRow["FECHA_PAGOS"].ToString()) ? _dataRow["FECHA_PAGOS"].ToString() : String.Empty;

                    if (!String.IsNullOrEmpty(_dataRow["CALC_PROM_DOMINICAL"].ToString()))
                        this.CheckBox_CALC_PROM_DOMINICAL.Checked = _dataRow["CALC_PROM_DOMINICAL"].Equals(true) ? true : false;
                    if (!String.IsNullOrEmpty(_dataRow["AJUSTAR_SMLV"].ToString()))
                        this.CheckBox_AJUSTAR_SMLV.Checked = _dataRow["AJUSTAR_SMLV"].Equals(true) ? true : false;

                    if (!String.IsNullOrEmpty(_dataRow["PAGA_SUB_TRANSPORTE"].ToString()))
                        this.CheckBox_PAGAR_SUB_TRANSPORTE.Checked = _dataRow["PAGA_SUB_TRANSPORTE"].Equals(true) ? true : false;

                    if (!String.IsNullOrEmpty(_dataRow["MOSTRAR_UNIFICADA"].ToString()))
                        this.CheckBox_MOSTRAR_UNIFICADA.Checked = _dataRow["MOSTRAR_UNIFICADA"].Equals(true) ? true : false;
                    if (!String.IsNullOrEmpty(_dataRow["DES_SEG_SOC_TRAB"].ToString()))
                        this.CheckBox_DES_SEG_SOC_TRAB.Checked = _dataRow["DES_SEG_SOC_TRAB"].Equals(true) ? true : false;

                    if (!String.IsNullOrEmpty(_dataRow["FACT_PARAF_ULTIMO_PERIODO"].ToString()))
                        this.CheckBox_FACT_PARAFISCALES.Checked = _dataRow["FACT_PARAF_ULTIMO_PERIODO"].Equals(true) ? true : false;
                    if (!String.IsNullOrEmpty(_dataRow["SABADO_NO_HABIL"].ToString()))
                        this.CheckBox_SABADO_NO_HABIL.Checked = _dataRow["SABADO_NO_HABIL"].Equals(true) ? true : false;
                    if (!String.IsNullOrEmpty(_dataRow["LIQUIDAR_ORDINARIAS_ULTIMO_PERIODO"].ToString()))
                        this.CheckBox_ORDINARIAS_ULTIMO_PERIODO.Checked = _dataRow["LIQUIDAR_ORDINARIAS_ULTIMO_PERIODO"].Equals(true) ? true : false;

                    DropDownList_BAS_HOR_EXT.SelectedValue = !String.IsNullOrEmpty(_dataRow["BAS_HOR_EXT"].ToString()) ? _dataRow["BAS_HOR_EXT"].ToString() : "0";
                    TextBox_FCH_INI_PRI_PER_NOM.Text = !String.IsNullOrEmpty(_dataRow["FCH_INI_PRI_PER_NOM"].ToString()) ? _dataRow["FCH_INI_PRI_PER_NOM"].ToString() : String.Empty;
                    DropDownList_CALCULO_RETENCION_FUENTE.SelectedValue = !String.IsNullOrEmpty(_dataRow["CALCULO_RETENCION_FUENTE"].ToString()) ? _dataRow["CALCULO_RETENCION_FUENTE"].ToString() : "0";

                    TextBox_ULT_PERIODO.Text = !String.IsNullOrEmpty(_dataRow["ULT_PERIODO"].ToString()) ? _dataRow["ULT_PERIODO"].ToString() : "0";
                    TextBox_ULT_PERIODO_MEM.Text = !String.IsNullOrEmpty(_dataRow["ULT_PERIODO_MEM"].ToString()) ? _dataRow["ULT_PERIODO_MEM"].ToString() : "0";
                    TextBox_FCH_ULT_LIQ_PER.Text = !String.IsNullOrEmpty(_dataRow["FCH_ULT_LIQ_PER"].ToString()) ? _dataRow["FCH_ULT_LIQ_PER"].ToString() : String.Empty;
                    TextBox_FCH_ULT_LIQ_MEM.Text = !String.IsNullOrEmpty(_dataRow["FCH_ULT_LIQ_MEM"].ToString()) ? _dataRow["FCH_ULT_LIQ_MEM"].ToString() : String.Empty;

                    cobertura _cobertura = new cobertura(Session["idEmpresa"].ToString());

                    DataTable _dataTableCobertura = _cobertura.obtenerCoberturaDeUnCliente(ID_EMPRESA);

                    if (_dataTableCobertura.Rows.Count == 0)
                    {
                        Informar(Label_MENSAJE_COBERTURA, "ADVERTENCIA: La empresa no tiene configurada actualmente una cobertura.", Proceso.Error);
                    }
                    else Panel_MENSAJE_COBERTURA.Visible = false;
                    GridView_COBERTURA.DataSource = _dataTableCobertura;
                    GridView_COBERTURA.DataBind();

                    _dataTableCobertura.Dispose();

                    llenarGridIncapacidades(Convert.ToDecimal(TextBox_REGISTRO.Text));
                    Mostrar();
                    Bloquear();
                }
            }
        }
        else
        {
            Informar(Label_MENSAJE, "Error: Consulte con el Administrador: " + _condicionNomina.MensajeError, Proceso.Error);
            this.Panel_MENSAJES.Visible = true;
        }
    }
    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 void CargarFormularioContratacion(Decimal ID_EMPRESA, tabla.proceso proceso)
    {
        contactos _contacto = new contactos(Session["idEmpresa"].ToString());
        DataTable tablaContactosOriginal = _contacto.ObtenerContactosPorIdEmpresa(ID_EMPRESA,  proceso);

        HiddenField_contratacion_idEmpresa.Value = ID_EMPRESA.ToString();

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

        condicionesContratacion _condContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablaExamenesMedicos = _condContratacion.ObtenerExamenesVSCargosPorIdEmpresa(Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
        CargarTablaConfiguradaParaExamenesMedicosContratacion(tablaExamenesMedicos);

        DataTable tablaBancosPorCiudad = _condContratacion.ObtenerBancosVSCiudadesPorIdEmpresa(Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
        CargarTablaConfiguradaParaBancosContratacion(tablaBancosPorCiudad);

        Cargar(GridView_contratacion_cobertura, Convert.ToDecimal(HiddenField_contratacion_idEmpresa.Value));
    }