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

        centroCosto _centroCosto = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

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

        String ID_CIUDAD = DropDownList_CIUDAD.SelectedValue;
        String NOM_CC = TextBox_NOMBRE_CENTRO_COSTO.Text.Trim().ToUpper();
        Decimal ID_EMPRESA = Convert.ToDecimal(QueryStringSeguro["reg"]);

        String TIPO_NOM = null;
        if (DropDownList_PERIODO_PAGO.SelectedIndex > 0)
        {
            TIPO_NOM = DropDownList_PERIODO_PAGO.SelectedValue;
        }

        String ID_BANCO = null;
        if (DropDownList_BANCO.SelectedIndex > 0)
        {
            ID_BANCO = DropDownList_BANCO.SelectedValue;
        }

        String CC_EXC_IVA = "N";
        if (CheckBox_EXCENTO_IVA.Checked == true)
        {
            CC_EXC_IVA = "S";
        }

        DataTable tablaResultado;
        Decimal ID_CENTRO_C = 0;
        if (accion == "nuevo")
        {
            DataTable tablaInfoCC = _centroCosto.ObtenerCentrosDeCostoPorIdEmpresaIdCiudadNombreCC(ID_EMPRESA, ID_CIUDAD, NOM_CC);
            if (tablaInfoCC.Rows.Count > 0)
            {
                DataRow filaCC = tablaInfoCC.Rows[0];
                ID_CENTRO_C = Convert.ToDecimal(filaCC["ID_CENTRO_C"]);
                String ESTADO = "ACTIVO";

                tablaResultado = _centroCosto.ActualizarCC(ID_CENTRO_C, ID_EMPRESA, NOM_CC, TIPO_NOM, CC_EXC_IVA, ID_CIUDAD, ID_BANCO, ESTADO);

                if (tablaResultado.Rows.Count <= 0)
                {
                    if (String.IsNullOrEmpty(_centroCosto.MensajeError) == true)
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se pudo procesar la petición. " + _centroCosto.MensajeError, Proceso.Error);
                    }
                    else
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Ocurrio un error inesperado procesando la solicitud. No se actualizó el centro de costo seleccionado.", Proceso.Error);
                    }
                }
                else
                {
                    DataRow filaResultado = tablaResultado.Rows[0];

                    QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                    QueryStringSeguro["img_area"] = "contratacion";
                    QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                    QueryStringSeguro["nombre_modulo"] = "CENTROS DE COSTO";
                    QueryStringSeguro["accion"] = "cargarActivado";
                    QueryStringSeguro["tipo"] = filaResultado["tipo"].ToString().Trim().ToUpper();
                    QueryStringSeguro["mensaje"] = filaResultado["mensaje"].ToString().Trim();
                    QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                    QueryStringSeguro["cc"] = ID_CENTRO_C.ToString();

                    Response.Redirect("~/contratacion/centrosCosto.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                }
            }
            else
            {
                tablaResultado = _centroCosto.AdicionarCC(ID_EMPRESA, NOM_CC, TIPO_NOM, CC_EXC_IVA, ID_CIUDAD, ID_BANCO);

                if (tablaResultado.Rows.Count <= 0)
                {
                    if (String.IsNullOrEmpty(_centroCosto.MensajeError) == true)
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se pudo procesar la petición. " + _centroCosto.MensajeError, Proceso.Error);
                    }
                    else
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Ocurrio un error inesperado procesando la solicitud. No se actualizó el centro de costo seleccionado.", Proceso.Error);
                    }
                }
                else
                {
                    DataRow filaResultado = tablaResultado.Rows[0];

                    QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                    QueryStringSeguro["img_area"] = "contratacion";
                    QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                    QueryStringSeguro["nombre_modulo"] = "CENTROS DE COSTO";
                    QueryStringSeguro["accion"] = "cargarNuevo";
                    QueryStringSeguro["tipo"] = filaResultado["tipo"].ToString().Trim().ToUpper();
                    QueryStringSeguro["mensaje"] = filaResultado["mensaje"].ToString();
                    QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                    QueryStringSeguro["cc"] = filaResultado["id"].ToString();

                    Response.Redirect("~/contratacion/centrosCosto.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                }
            }
        }
        else
        {
            if (accion == "modificar")
            {
                String ESTADO = "ACTIVO";
                if (CheckBox_OcultarCC.Checked == true)
                {
                    ESTADO = "OCULTO";
                }

                ID_CENTRO_C = Convert.ToDecimal(QueryStringSeguro["cc"].ToString());
                tablaResultado = _centroCosto.ActualizarCC(ID_CENTRO_C, ID_EMPRESA, NOM_CC, TIPO_NOM, CC_EXC_IVA, ID_CIUDAD, ID_BANCO, ESTADO);

                if (tablaResultado.Rows.Count <= 0)
                {
                    if (String.IsNullOrEmpty(_centroCosto.MensajeError) == true)
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "No se pudo procesar la petición. " + _centroCosto.MensajeError, Proceso.Error);
                    }
                    else
                    {
                        Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "Ocurrio un error inesperado procesando la solicitud. No se actualizó el centro de costo seleccionado.", Proceso.Error);
                    }
                }
                else
                {
                    DataRow filaResultado = tablaResultado.Rows[0];

                    if (ESTADO == "ACTIVO")
                    {
                        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                        QueryStringSeguro["img_area"] = "contratacion";
                        QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                        QueryStringSeguro["nombre_modulo"] = "CENTROS DE COSTO";
                        QueryStringSeguro["accion"] = "cargarModificado";
                        QueryStringSeguro["tipo"] = filaResultado["tipo"].ToString().Trim().ToUpper();
                        QueryStringSeguro["mensaje"] = filaResultado["mensaje"].ToString();
                        QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                        QueryStringSeguro["cc"] = ID_CENTRO_C.ToString();

                        Response.Redirect("~/contratacion/centrosCosto.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                    }
                    else
                    {
                        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());
                        QueryStringSeguro["img_area"] = "contratacion";
                        QueryStringSeguro["nombre_area"] = "CONTRATACIÓN Y RELACIONES LABORALES";
                        QueryStringSeguro["nombre_modulo"] = "CENTROS DE COSTO";
                        QueryStringSeguro["accion"] = "cargarOculto";
                        QueryStringSeguro["tipo"] = filaResultado["tipo"].ToString().Trim().ToUpper();
                        QueryStringSeguro["mensaje"] = filaResultado["mensaje"].ToString();
                        QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                        QueryStringSeguro["cc"] = ID_CENTRO_C.ToString();

                        Response.Redirect("~/contratacion/centrosCosto.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                    }

                }
            }
        }
    }