private void Guardar()
    {
        determinarIDsSubCCentrosCCiudad();

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

        String RIESGO = DropDownList_RIESGOS.SelectedValue;

        String DOC_TRAB = GetListaDocumentosEntregados();

        String OBS_CTE = TextBox_REQUERIMIENTOS_USUARIO.Text.ToUpper().Trim();

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

        List<condicionesContratacion> listaImplementosExamenes = new List<condicionesContratacion>();

        DataTable tablaImplementos = ObtenerDataTable_De_GridView_Implementos();
        for (int i = 0; i < tablaImplementos.Rows.Count; i++)
        {
            DataRow filaTabla = tablaImplementos.Rows[i];

            condicionesContratacion _implementoParaLista = new condicionesContratacion();
            _implementoParaLista.AJUSTE_A = tabla.EntregaAjusteA.CONTRATO.ToString();

            if (String.IsNullOrEmpty(filaTabla["CANTIDAD_INICIAL"].ToString()) == false) { _implementoParaLista.CANTIDAD = Convert.ToInt32(filaTabla["CANTIDAD_INICIAL"]); }
            else { _implementoParaLista.CANTIDAD = 0; }

            _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A_INICIAL"].ToString().Trim();
            _implementoParaLista.FECHA_INICIO = new DateTime();
            _implementoParaLista.ID_PERIODICIDAD = "0";
            _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
            _implementoParaLista.PRIMERA_ENTREGA = true;
            _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO_INICIAL"]);
            _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
            if (String.IsNullOrEmpty(filaTabla["VALOR_INICIAL"].ToString().Trim()) == false)
            {
                _implementoParaLista.VALOR = Convert.ToDecimal(filaTabla["VALOR_INICIAL"]);
            }
            else
            {
                _implementoParaLista.VALOR = 0;
            }

            listaImplementosExamenes.Add(_implementoParaLista);

            if (filaTabla["CHECK_PROGRAMADO"].ToString() == "True")
            {
                _implementoParaLista = new condicionesContratacion();
                _implementoParaLista.AJUSTE_A = filaTabla["AJUSTE_A_PROGRAMADO"].ToString();

                if (String.IsNullOrEmpty(filaTabla["CANTIDAD_PROGRAMADO"].ToString()) == false) { _implementoParaLista.CANTIDAD = Convert.ToInt32(filaTabla["CANTIDAD_PROGRAMADO"]); }
                else { _implementoParaLista.CANTIDAD = 0; }

                _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A_PROGRAMADO"].ToString().Trim();

                if (String.IsNullOrEmpty(filaTabla["FECHA_INICIO_PROGRAMADO"].ToString().Trim()) == false) { _implementoParaLista.FECHA_INICIO = Convert.ToDateTime(filaTabla["FECHA_INICIO_PROGRAMADO"]); }
                else { _implementoParaLista.FECHA_INICIO = new DateTime(); }

                _implementoParaLista.ID_PERIODICIDAD = filaTabla["CODIGO_PERIODO_PROGRAMADO"].ToString();
                _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
                _implementoParaLista.PRIMERA_ENTREGA = false;
                _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO_PROGRAMADO"]);
                _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
                if (String.IsNullOrEmpty(filaTabla["VALOR_PROGRAMADO"].ToString().Trim()) == false)
                {
                    _implementoParaLista.VALOR = Convert.ToDecimal(filaTabla["VALOR_PROGRAMADO"]);
                }
                else
                {
                    _implementoParaLista.VALOR = 0;
                }

                listaImplementosExamenes.Add(_implementoParaLista);
            }
        }

        DataTable tablaExamenes = ObtenerDataTable_De_GridView_ExamenesMedicos();
        for (int i = 0; i < tablaExamenes.Rows.Count; i++)
        {
            DataRow filaTabla = tablaExamenes.Rows[i];

            condicionesContratacion _implementoParaLista = new condicionesContratacion();

            _implementoParaLista.VALOR = 0;
            _implementoParaLista.REGISTRO_VEN_P_CONTRATACION = 0;
            _implementoParaLista.REGISTRO_CON_REG_ELEMENTO_TRABAJO = Convert.ToDecimal(filaTabla["REGISTRO_CON_REG_ELEMENTO_TRABAJO"]);
            _implementoParaLista.PRIMERA_ENTREGA = true;
            _implementoParaLista.ID_PRODUCTO = Convert.ToDecimal(filaTabla["ID_PRODUCTO"]);
            _implementoParaLista.ID_PERIODICIDAD = filaTabla["CODIGO_PERIODO"].ToString().Trim();
            _implementoParaLista.FECHA_INICIO = new DateTime();
            _implementoParaLista.FACTURAR_A = filaTabla["CODIGO_FACTURAR_A"].ToString().Trim();
            _implementoParaLista.CANTIDAD = 1;
            _implementoParaLista.AJUSTE_A = tabla.EntregaAjusteA.CONTRATO.ToString();

            listaImplementosExamenes.Add(_implementoParaLista);
        }

        condicionesContratacion _condicionesContratacion = new condicionesContratacion(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());

        Decimal REGISTRO_VEN_P_CONTRATACION = _condicionesContratacion.AdicionarCondicionContratacionUnificada(ID_EMPRESA, DOC_TRAB, ID_PERFIL, RIESGO, OBS_CTE, GLO_ID_SUB_C, GLO_ID_CENTRO_C, GLO_ID_CIUDAD, GLO_ID_SERVICIO, listaImplementosExamenes, Recuperar(GridView_clausulas));

        if (REGISTRO_VEN_P_CONTRATACION <= 0)
        {
            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, _condicionesContratacion.MensajeError, Proceso.Error);
        }
        else
        {
            HiddenField_REGISTRO_VEN_P_CONTRATACION.Value = REGISTRO_VEN_P_CONTRATACION.ToString();

            Ocultar(Acciones.Inicio);
            Desactivar(Acciones.Inicio);
            Mostrar(Acciones.CargarGrillaReplique);

            Informar(Panel_FONDO_MENSAJE, Image_MENSAJE_POPUP, Panel_MENSAJES, Label_MENSAJE, "La condición de contratación fue creada correctament.", Proceso.Correcto);
        }
    }