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 CargarCondicionesSubCentro(Decimal ID_EMPRESA, Decimal ID_SUB_C)
    {
        this.TextBox_REGISTRO.Text = String.Empty;
        condicionNomina _condicionNomina = new condicionNomina(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable _dataTable = _condicionNomina.ObtenerPorIdEmpresaIdSubCC(ID_EMPRESA, ID_SUB_C);
        if (String.IsNullOrEmpty(_condicionNomina.MensajeError))
        {
            if (_dataTable.Rows.Count != 0)
            {
                this.Panel_MENSAJES.Visible = false;

                foreach (DataRow _dataRow in _dataTable.Rows)
                {
                    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["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;

                    TextBox_PORCENTAJE_FACT.Text = !String.IsNullOrEmpty(_dataRow["PORCENTAJE_FACT"].ToString()) ? String.Format("{0:N2}", Convert.ToDecimal(_dataRow["PORCENTAJE_FACT"].ToString())) : "0";

                    llenarGridIncapacidades(Convert.ToDecimal(TextBox_REGISTRO.Text));
                    Mostrar();
                    Bloquear();
                }
            }
            else
            {
                Informar(Label_MENSAJE, "Advertencia: El sub de costo seleccionado no cuenta con condiciones de nómina." + _condicionNomina.MensajeError, Proceso.Error);
            }
        }
        else
        {
            Informar(Label_MENSAJE, "Error: Consulte con el Administrador: " + _condicionNomina.MensajeError, Proceso.Error);
            this.Panel_MENSAJES.Visible = true;
        }
    }
 protected void Cargar(CheckBoxList checkBoxList, String idPeriodoPago)
 {
     condicionNomina _condicionNomina = new condicionNomina(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
     checkBoxList.DataSource = _condicionNomina.obtenerPeriodosDescuentoSubTranportePorPeriodoPago(idPeriodoPago);
     checkBoxList.DataTextField = "descripcion";
     checkBoxList.DataValueField = "codigo";
     checkBoxList.DataBind();
 }