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

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

        capturarVariablesGlogales();
        condicionComercial _condicionComercial = new condicionComercial(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        String FACTURA = obtenerDeUnCheckBox(CheckBox_FACTURA_NOMINA);

        String MOD_SOPORTE = DropDownList_MOD_SOPORTE.SelectedValue;
        String MOD_FACTURA = DropDownList_MOD_FACTURA.SelectedValue;

        Decimal AD_NOM = Convert.ToDecimal(TextBox_AD_NOM.Text);

        String SOLO_DEV = obtenerDeUnCheckBox(CheckBox_SOLO_DEV);

        Decimal AD_PENSION = Convert.ToDecimal(TextBox_AD_PENSION.Text);
        Decimal AD_SALUD = Convert.ToDecimal(TextBox_AD_SALUD.Text);
        Decimal AD_RIESGOS = Convert.ToDecimal(TextBox_AD_RIESGOS.Text);
        Decimal AD_APO_SENA = Convert.ToDecimal(TextBox_AD_APO_SENA.Text);
        Decimal AD_APO_ICBF = Convert.ToDecimal(TextBox_AD_APO_ICBF.Text);
        Decimal AD_APO_CAJA = Convert.ToDecimal(TextBox_AD_APO_CAJA.Text);

        Decimal AD_VACACIONES = Convert.ToDecimal(TextBox_AD_VACACIONES.Text);
        Decimal AD_CESANTIA = Convert.ToDecimal(TextBox_AD_CESANTIA.Text);
        Decimal AD_INT_CES = Convert.ToDecimal(TextBox_AD_INT_CES.Text);
        Decimal AD_PRIMA = Convert.ToDecimal(TextBox_AD_PRIMA.Text);
        Decimal AD_SEG_VID = Convert.ToDecimal(TextBox_AD_SEG_VID.Text);
        Boolean verificadorValoresPorcentajes = true;

        if (CheckBox_RET_VAC.Checked == false)
        {
            if (AD_VACACIONES == 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: El % para VACACIONES solo puede ir en CERO si esta seleccionado SE COBRA AL RETIRO.";
                verificadorValoresPorcentajes = false;
            }
        }

        if (CheckBox_RET_CES.Checked == false)
        {
            if (AD_CESANTIA == 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: El % para CESANTÍA solo puede ir en CERO si esta seleccionado SE COBRA AL RETIRO.";
                verificadorValoresPorcentajes = false;
            }
        }

        if (CheckBox_RET_INT_CES.Checked == false)
        {
            if (AD_INT_CES == 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: El % para INT CESANTÍA solo puede ir en CERO si esta seleccionado SE COBRA AL RETIRO.";
                verificadorValoresPorcentajes = false;
            }
        }

        if (CheckBox_RET_PRIM.Checked == false)
        {
            if (AD_PRIMA == 0)
            {
                configurarMensajes(true, System.Drawing.Color.Red);
                Label_MENSAJE.Text = "ADVERTENCIA: El % para PRIMA solo puede ir en CERO si esta seleccionado SE COBRA AL RETIRO.";
                verificadorValoresPorcentajes = false;
            }
        }

        if (verificadorValoresPorcentajes == true)
        {
            String SUB_PENSION = obtenerDeUnCheckBox(CheckBox_SUB_PENSION);
            String SUB_SALUD = obtenerDeUnCheckBox(CheckBox_SUB_SALUD);
            String SUB_RIESGO = obtenerDeUnCheckBox(CheckBox_SUB_RIESGO);
            String SUB_SENA = obtenerDeUnCheckBox(CheckBox_SUB_SENA);
            String SUB_ICBF = obtenerDeUnCheckBox(CheckBox_SUB_ICBF);
            String SUB_CAJA = obtenerDeUnCheckBox(CheckBox_SUB_CAJA);
            String SUB_VACACIONES = obtenerDeUnCheckBox(CheckBox_SUB_VACACIONES);
            String SUB_CESANTIAS = obtenerDeUnCheckBox(CheckBox_SUB_CESANTIAS);
            String SUB_INT_CES = obtenerDeUnCheckBox(CheckBox_SUB_INT_CES);
            String SUB_PRIMA = obtenerDeUnCheckBox(CheckBox_SUB_PRIMA);
            String SUB_SEG_VID = obtenerDeUnCheckBox(CheckBox_SUB_SEG_VID);

            String RET_VAC = obtenerDeUnCheckBox(CheckBox_RET_VAC);
            String RET_CES = obtenerDeUnCheckBox(CheckBox_RET_CES);
            String RET_INT_CES = obtenerDeUnCheckBox(CheckBox_RET_INT_CES);
            String RET_PRIM = obtenerDeUnCheckBox(CheckBox_RET_PRIM);

            int DIAS_VNC = Convert.ToInt32(TextBox_DIAS_VNC.Text);

            String REGIMEN = DropDownList_REGIMEN.SelectedValue;

            String OBS_FACT = _tools.RemplazarCaracteresEnString(TextBox_OBS_FACT.Text.Trim());

            String USU_CRE = Session["USU_LOG"].ToString();
            String USU_MOD = Session["USU_LOG"].ToString();

            String VAC_PARAF = "N";

            String APL_MTZ = obtenerDeUnCheckBox(CheckBox_APL_MTZ);

            List<servicio> listaServicios = capturarListaServiciosDesdeSession();
            List<detalleServicio> listaDetallesServicio = capturarListaDetallesServicioDesdeSession();

            Decimal REGISTRO = 0;
            if (accion == "inicial")
            {
                REGISTRO = _condicionComercial.Adicionar(ID_EMPRESA, FACTURA, REGIMEN, SOLO_DEV, VAC_PARAF, DIAS_VNC, AD_NOM, AD_PENSION, AD_SALUD, AD_RIESGOS, AD_APO_SENA, AD_APO_ICBF, AD_APO_CAJA, AD_VACACIONES, AD_CESANTIA, AD_INT_CES, AD_PRIMA, AD_SEG_VID, SUB_PENSION, SUB_SALUD, SUB_RIESGO, SUB_SENA, SUB_ICBF, SUB_CAJA, SUB_VACACIONES, SUB_CESANTIAS, SUB_INT_CES, SUB_PRIMA, SUB_SEG_VID, MOD_SOPORTE, MOD_FACTURA, OBS_FACT, RET_VAC, RET_CES, RET_INT_CES, RET_PRIM, USU_CRE, APL_MTZ, ID_CIUDAD, ID_CENTRO_C, ID_SUB_C, listaServicios, listaDetallesServicio);

                if (REGISTRO == 0)
                {
                    configurarMensajes(true, System.Drawing.Color.Red);
                    Label_MENSAJE.Text = _condicionComercial.MensajeError;
                }
                else
                {
                    QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                    QueryStringSeguro["img_area"] = "comercial";
                    QueryStringSeguro["nombre_area"] = "GESTIÓN COMERCIAL";
                    QueryStringSeguro["nombre_modulo"] = "CONDICIONES ECONÓMICAS";
                    QueryStringSeguro["accion"] = "cargarNuevo";
                    QueryStringSeguro["reg"] = ID_EMPRESA.ToString();
                    QueryStringSeguro["codCondicion"] = REGISTRO.ToString();

                    if (ID_SUB_C != 0)
                    {
                        QueryStringSeguro["codSUBCC"] = ID_SUB_C.ToString();
                    }
                    else
                    {
                        if (ID_CENTRO_C != 0)
                        {
                            QueryStringSeguro["codCC"] = ID_CENTRO_C.ToString();
                        }
                        else
                        {
                            if ((ID_EMPRESA != 0) && (String.IsNullOrEmpty(ID_CIUDAD) == false))
                            {
                                QueryStringSeguro["codCiudad"] = ID_CIUDAD;
                            }
                        }
                    }

                    Response.Redirect("~/comercial/condicionesEconomicasEficiencia.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));
                }
            }
            else
            {
                if (accion == "modificar")
                {
                    Boolean verificador = true;

                    REGISTRO = Convert.ToDecimal(QueryStringSeguro["codCondicion"]);

                    verificador = _condicionComercial.Actualizar(REGISTRO, ID_EMPRESA, FACTURA, REGIMEN, SOLO_DEV, VAC_PARAF, DIAS_VNC, AD_NOM, AD_PENSION, AD_SALUD, AD_RIESGOS, AD_APO_SENA, AD_APO_ICBF, AD_APO_CAJA, AD_VACACIONES, AD_CESANTIA, AD_INT_CES, AD_PRIMA, AD_SEG_VID, SUB_PENSION, SUB_SALUD, SUB_RIESGO, SUB_SENA, SUB_ICBF, SUB_CAJA, SUB_VACACIONES, SUB_CESANTIAS, SUB_INT_CES, SUB_PRIMA, SUB_SEG_VID, MOD_SOPORTE, MOD_FACTURA, OBS_FACT, RET_VAC, RET_CES, RET_INT_CES, RET_PRIM, USU_MOD, APL_MTZ, ID_CIUDAD, ID_CENTRO_C, ID_SUB_C, listaServicios, listaDetallesServicio);

                    if (verificador == false)
                    {
                        configurarMensajes(true, System.Drawing.Color.Red);
                        Label_MENSAJE.Text = _condicionComercial.MensajeError;
                    }
                    else
                    {
                        QueryStringSeguro = new SecureQueryString(_tools.byteParaQueryStringSeguro());

                        QueryStringSeguro["img_area"] = "comercial";
                        QueryStringSeguro["nombre_area"] = "GESTIÓN COMERCIAL";
                        QueryStringSeguro["nombre_modulo"] = "CONDICIONES ECONÓMICAS";
                        QueryStringSeguro["accion"] = "cargarModificado";

                        QueryStringSeguro["reg"] = ID_EMPRESA.ToString();

                        QueryStringSeguro["codCondicion"] = REGISTRO.ToString();

                        if (ID_SUB_C != 0)
                        {
                            QueryStringSeguro["codSUBCC"] = ID_SUB_C.ToString();
                        }
                        else
                        {
                            if (ID_CENTRO_C != 0)
                            {
                                QueryStringSeguro["codCC"] = ID_CENTRO_C.ToString();
                            }
                            else
                            {
                                if ((ID_EMPRESA != 0) && (String.IsNullOrEmpty(ID_CIUDAD) == false))
                                {
                                    QueryStringSeguro["codCiudad"] = ID_CIUDAD;
                                }
                            }
                        }

                        Response.Redirect("~/comercial/condicionesEconomicasEficiencia.aspx?data=" + HttpUtility.UrlEncode(QueryStringSeguro.ToString()));

                    }
                }
            }
        }
    }