protected void rbAgregar_Click(object sender, EventArgs e)
        {
            DateTime vFechainicial;
            DateTime vFechafinal;

            byte[] data     = null;
            byte?  vPrivado = 0;
            string vIDUsuario;
            string vIDEmpleado;

            ListaComunicadosNegocio nComunicado = new ListaComunicadosNegocio();

            vEmpleadosSeleccionados = new List <E_OBTIENE_EMPLEADOS_COMUNICADO>();

            foreach (GridDataItem item in grdEmpleadosSeleccionados.MasterTableView.Items)
            {
                vIDEmpleado = (item.GetDataKeyValue("ID_EMPLEADO").ToString());
                vIDUsuario  = item.GetDataKeyValue("M_CL_USUARIO") == null ? "" : (item.GetDataKeyValue("M_CL_USUARIO").ToString());


                vEmpleadosSeleccionados.Add(new E_OBTIENE_EMPLEADOS_COMUNICADO
                {
                    ID_EMPLEADO = vIDEmpleado,
                    CL_USUARIO  = vIDUsuario
                });

                var vXelements = vEmpleadosSeleccionados.Select(x =>
                                                                new XElement("EMPLEADO",
                                                                             new XAttribute("ID_EMPLEADO", x.ID_EMPLEADO),
                                                                             new XAttribute("CL_USUARIO", x.CL_USUARIO)
                                                                             ));
                SELECCIONEMPLEADOS =
                    new XElement("SELECCION", vXelements
                                 );
            }

            string vTitulocomunicado    = txtTituloComunicado.Text;
            string vContenidocomunicado = txtContenido.Content;

            if (rcbprivado.Checked == true)
            {
                vPrivado = 1;
            }


            if (rauArchivo.UploadedFiles.Count > 0)
            {
                data = new byte[rauArchivo.UploadedFiles[0].ContentLength];
                rauArchivo.UploadedFiles[0].InputStream.Read(data, 0, int.Parse(rauArchivo.UploadedFiles[0].ContentLength.ToString()));
                vName = rauArchivo.UploadedFiles[0].FileName.ToString();
            }

            if (rbPermanente.Checked == true)
            {
                rdtFinfecha.Enabled = false;
                vFechainicial       = Convert.ToDateTime(rdtiIniciofecha.SelectedDate);
                vFechafinal         = DateTime.Now.AddYears(100);
            }
            else
            {
                vFechainicial = Convert.ToDateTime(rdtiIniciofecha.SelectedDate);
                vFechafinal   = Convert.ToDateTime(rdtFinfecha.SelectedDate);
            }

            if (rcbEliminarAdjunto.Checked == true)
            {
                if (rauArchivo.UploadedFiles.Count == 0)
                {
                    vIdArchivo = vIdArchivo;
                }
            }



            if (SELECCIONEMPLEADOS != null && vTitulocomunicado != "")
            {
                E_RESULTADO vResultado = nComunicado.InsertaActualizaComunicado((int)vIdArchivo, vName, data, (int)vIdComunicado, vTitulocomunicado, vContenidocomunicado, vFechainicial, vFechafinal, SELECCIONEMPLEADOS.ToString(), vPrivado, ContextoUsuario.oUsuario.CL_USUARIO, ContextoUsuario.nbPrograma, vTipoTransaccion);
                string      vMensaje   = vResultado.MENSAJE.Where(w => w.CL_IDIOMA.Equals(vClIdioma.ToString())).FirstOrDefault().DS_MENSAJE;
                UtilMensajes.MensajeResultadoDB(rnMensaje, vMensaje, vResultado.CL_TIPO_ERROR);
            }
            else
            {
                UtilMensajes.MensajeResultadoDB(rnMensaje, "No hay empleados seleccionados y/o comunicado sin titulo", E_TIPO_RESPUESTA_DB.WARNING, pCallBackFunction: "");
            }
        }
        protected void rbAgregar2_Click(object sender, EventArgs e)
        {
            DateTime vFechainicial;
            DateTime vFechafinal;

            byte[] data     = null;
            byte?  vPrivado = 0;
            string vIDEmpleado;
            string vIDUsuario;


            //string vTipoComunicado = "";
            //string vTipoAccion = "";


            if (rcbprivado.Checked == true)
            {
                vPrivado = 1;
            }

            ListaComunicadosNegocio nComunicado = new ListaComunicadosNegocio();

            vEmpleadosSeleccionados = new List <E_OBTIENE_EMPLEADOS_COMUNICADO>();

            foreach (GridDataItem item in grdEmpleadosSeleccionados.MasterTableView.Items)
            {
                vIDEmpleado = (item.GetDataKeyValue("ID_EMPLEADO").ToString());
                vIDUsuario  = item.GetDataKeyValue("M_CL_USUARIO") == null ? "" : (item.GetDataKeyValue("M_CL_USUARIO").ToString());


                vEmpleadosSeleccionados.Add(new E_OBTIENE_EMPLEADOS_COMUNICADO
                {
                    ID_EMPLEADO = vIDEmpleado,
                    CL_USUARIO  = vIDUsuario
                });

                var vXelements = vEmpleadosSeleccionados.Select(x =>
                                                                new XElement("EMPLEADO",
                                                                             new XAttribute("ID_EMPLEADO", x.ID_EMPLEADO),
                                                                             new XAttribute("CL_USUARIO", x.CL_USUARIO)
                                                                             ));
                SELECCIONEMPLEADOS =
                    new XElement("SELECCION", vXelements
                                 );
            }
            string vTitulocomunicado = txtTituloComunicado.Text;

            string vContenidocomunicado = txtContenido.Content;


            if (rauArchivo.UploadedFiles.Count > 0)
            {
                data = new byte[rauArchivo.UploadedFiles[0].ContentLength];
                rauArchivo.UploadedFiles[0].InputStream.Read(data, 0, int.Parse(rauArchivo.UploadedFiles[0].ContentLength.ToString()));
                vName = rauArchivo.UploadedFiles[0].FileName.ToString();
            }

            if (rbPermanente.Checked == true)
            {
                rdtFinfecha.Enabled = false;
                vFechainicial       = Convert.ToDateTime(rdtiIniciofecha.SelectedDate);
                vFechafinal         = DateTime.Now.AddYears(100);
            }
            else
            {
                vFechainicial = Convert.ToDateTime(rdtiIniciofecha.SelectedDate);
                vFechafinal   = Convert.ToDateTime(rdtFinfecha.SelectedDate);
            }

            if (rcbEliminarAdjunto.Checked == true)
            {
                if (rauArchivo.UploadedFiles.Count == 0)
                {
                    vIdArchivo = vIdArchivo;
                }
            }

            if (Tipo2.Checked == true)
            {
                vTipoComunicado = "D";

                ListaEmpleadosPuestos = new List <E_EMPLEADO_PDE>();
                foreach (E_EMPLEADO_PDE item in ListaEmpleados)
                {
                    var pue = ListaEmpleadosPuestos.Where(t => t.ID_PUESTO == item.ID_PUESTO).FirstOrDefault();
                    if (pue == null)
                    {
                        E_EMPLEADO_PDE f = new E_EMPLEADO_PDE
                        {
                            ID_EMPLEADO = item.ID_EMPLEADO,
                            NB_EMPLEADO = item.NB_EMPLEADO,
                            ID_PUESTO   = item.ID_PUESTO,
                            NB_PUESTO   = item.NB_PUESTO
                        };

                        ListaEmpleadosPuestos.Add(f);
                    }
                    else
                    {
                        vRepetidos = vRepetidos + pue.NB_PUESTO.ToString() + " ,";
                    }
                }



                foreach (E_EMPLEADO_PDE item in ListaEmpleadosInf)
                {
                    var vAsignado = nComunicado.ValidaDescriptivoAsignado(item.NB_PUESTO);

                    if (vAsignado == "Si")
                    {
                        vAsignados = vAsignados + ", " + item.NB_PUESTO;
                    }
                }
            }
            else
            {
                vTipoComunicado = "I";

                foreach (E_EMPLEADO_PDE item in ListaEmpleadosInf)
                {
                    var vAsignado = nComunicado.ValidaInventarioAsignado(item.ID_EMPLEADO);

                    if (vAsignado == "Si")
                    {
                        vAsignados = vAsignados + ", " + item.NB_EMPLEADO;
                    }
                }
            }

            if (rbLectura.Checked == true)
            {
                vTipoAccion = "L";
            }
            else if (rbEditar.Checked == true)
            {
                vTipoAccion = "E";
            }

            if (rcbprivado.Checked == true)
            {
                vPrivado = 1;
            }
            else
            {
                vPrivado = 0;
            }


            vEmpleadosSeleccionados_Info = new List <E_OBTIENE_EMPLEADOS_COMUNICADO>();

            if (rcbAuto.Checked == true)
            {
                foreach (GridDataItem item in RadGridSeleccion.MasterTableView.Items)
                {
                    vIDEmpleado = (item.GetDataKeyValue("ID_EMPLEADO").ToString());

                    vEmpleadosSeleccionados_Info.Add(new E_OBTIENE_EMPLEADOS_COMUNICADO
                    {
                        ID_EMPLEADO = vIDEmpleado
                    });

                    var vXelements = vEmpleadosSeleccionados_Info.Select(x =>
                                                                         new XElement("EMPLEADO",
                                                                                      new XAttribute("ID_EMPLEADO", x.ID_EMPLEADO),
                                                                                      new XElement("EMPLEADOMOD",
                                                                                                   new XAttribute("ID_EMPLEADO", x.ID_EMPLEADO))
                                                                                      )
                                                                         );
                    SELECCIONEMPLEADOSINFO =
                        new XElement("SELECCION", vXelements
                                     );
                }
            }
            else
            {
                foreach (GridDataItem item in RadGridSeleccion.MasterTableView.Items)
                {
                    vIDEmpleado = (item.GetDataKeyValue("ID_EMPLEADO").ToString());

                    vEmpleadosSeleccionados_Info.Add(new E_OBTIENE_EMPLEADOS_COMUNICADO
                    {
                        ID_EMPLEADO = vIDEmpleado,
                    });

                    var vXelements = vEmpleadosSeleccionados_Info.Select(x =>
                                                                         new XElement("EMPLEADOMOD",
                                                                                      new XAttribute("ID_EMPLEADO", x.ID_EMPLEADO)
                                                                                      )
                                                                         );

                    var vXelement_Padre = vEmpleadosSeleccionados.Select(x =>
                                                                         new XElement("EMPLEADO",
                                                                                      new XAttribute("ID_EMPLEADO", x.CL_USUARIO),
                                                                                      vXelements
                                                                                      )
                                                                         );



                    SELECCIONEMPLEADOSINFO =
                        new XElement("SELECCION", vXelement_Padre
                                     );
                }
            }

            rcbAuto.Checked = false;

            ListaComunicadosNegocio negocioa = new ListaComunicadosNegocio();
            string vExisteComunicado         = negocioa.ValidaExisteComunicado(vIdEmpleadoValida, vTipoComunicado, vTipoAccion).ToString();

            if (vRepetidos == null && vAsignados == null)
            {
                if (vExisteComunicado == "Si")
                {
                    if (SELECCIONEMPLEADOS != null && vTitulocomunicado != "" && SELECCIONEMPLEADOSINFO != null)
                    {
                        E_RESULTADO vResultado = nComunicado.InsertaActualizaComunicadoInformacion((int)vIdArchivo, vName, data, (int)vIdComunicado, vTitulocomunicado, vContenidocomunicado, vFechainicial, vFechafinal, SELECCIONEMPLEADOS.ToString(), vPrivado, ContextoUsuario.oUsuario.CL_USUARIO, ContextoUsuario.nbPrograma, vTipoTransaccion, vTipoComunicado, vTipoAccion, SELECCIONEMPLEADOSINFO.ToString());
                        string      vMensaje   = vResultado.MENSAJE.Where(w => w.CL_IDIOMA.Equals(vClIdioma.ToString())).FirstOrDefault().DS_MENSAJE;
                        UtilMensajes.MensajeResultadoDB(rnMensaje, vMensaje, vResultado.CL_TIPO_ERROR);
                    }
                    else
                    {
                        UtilMensajes.MensajeResultadoDB(rnMensaje, "No hay empleados seleccionados y/o comunicado sin titulo", E_TIPO_RESPUESTA_DB.WARNING, pCallBackFunction: "");
                    }
                }
                else
                {
                    UtilMensajes.MensajeResultadoDB(rnMensaje, "Hay un comunicado pendiente por revisar, para este empleado", E_TIPO_RESPUESTA_DB.WARNING, pCallBackFunction: "");
                }
            }
            else
            {
                if (Tipo2.Checked == true)
                {
                    if (vRepetidos != null && vAsignados == null)
                    {
                        UtilMensajes.MensajeResultadoDB(rnMensaje, "No se pueden seleccionar empleados con el mismo puesto: " + vRepetidos + " para enviar el comunicado.", E_TIPO_RESPUESTA_DB.WARNING, 400, 250, pCallBackFunction: "");
                    }
                    else if (vRepetidos == null && vAsignados != null)
                    {
                        UtilMensajes.MensajeResultadoDB(rnMensaje, "Los siguentes puestos ya están en revisión: " + vAsignados + ".", E_TIPO_RESPUESTA_DB.WARNING, 400, 250, pCallBackFunction: "");
                    }
                    else
                    {
                        UtilMensajes.MensajeResultadoDB(rnMensaje, "No se pueden seleccionar empleados con el mismo puesto: " + vRepetidos + " y los siguientes puestos ya están en revisión: " + vAsignados + ".", E_TIPO_RESPUESTA_DB.WARNING, 400, 250, pCallBackFunction: "");
                    }
                }
                else
                {
                    UtilMensajes.MensajeResultadoDB(rnMensaje, "Los siguentes empleados ya están en revisión: " + vAsignados + ".", E_TIPO_RESPUESTA_DB.WARNING, 400, 250, pCallBackFunction: "");
                }
                ListaEmpleadosInf = new List <E_EMPLEADO_PDE>();
                RadGridSeleccion.Rebind();
                vRepetidos = null;
                vAsignados = null;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ListaEmpleados    = new List <E_EMPLEADO_PDE>();
                ListaEmpleadosInf = new List <E_EMPLEADO_PDE>();
                rbLectura.Checked = true;
                if (Request.Params["IdComunicado"] != null)
                {
                    vTipoComunicado  = Request.Params["TipoComunicado"];
                    vTipoAccion      = Request.Params["Tipo"];
                    vIdComunicado    = int.Parse((Request.Params["IdComunicado"]));
                    vTipoTransaccion = E_TIPO_OPERACION_DB.A.ToString();
                    ListaComunicadosNegocio nComunicado = new ListaComunicadosNegocio();

                    vEmpleadosSeleccionados = nComunicado.ObtenerEmpleadosComunicado(vIdComunicado).ToList();
                    grdEmpleadosSeleccionados.DataSource = vEmpleadosSeleccionados;

                    VisorComunicadoNegocio nLista = new VisorComunicadoNegocio();
                    List <SPE_OBTIENE_LISTA_EMPLEADOS_INFORMACION_Result> ListaEmp = new List <SPE_OBTIENE_LISTA_EMPLEADOS_INFORMACION_Result>();
                    ListaEmp = nLista.ObtenerListaEmpleadosInformacion((int)vIdComunicado);
                    RadGridSeleccion.DataSource = ListaEmp;

                    foreach (E_OBTIENE_EMPLEADOS_COMUNICADO item in vEmpleadosSeleccionados)
                    {
                        E_EMPLEADO_PDE f = new E_EMPLEADO_PDE
                        {
                            ID_EMPLEADO  = item.ID_EMPLEADO,
                            NB_EMPLEADO  = item.NB_EMPLEADO,
                            NB_PUESTO    = item.NB_PUESTO,
                            M_CL_USUARIO = item.M_CL_USUARIO
                        };

                        ListaEmpleados.Add(f);
                    }

                    var vObtieneComunicado = nComunicado.ObtenerComunicados(vIdComunicado).ToList().FirstOrDefault();
                    txtTituloComunicado.Text     = vObtieneComunicado.NB_COMUNICADO;
                    txtContenido.Content         = vObtieneComunicado.DS_COMUNICADO;
                    rdtiIniciofecha.SelectedDate = vObtieneComunicado.FE_VISIBLE_DEL;
                    rdtFinfecha.MaxDate          = new DateTime(2200, 12, 20);
                    rdtFinfecha.SelectedDate     = vObtieneComunicado.FE_VISIBLE_AL;
                    vIdArchivo     = vObtieneComunicado.ID_ARCHIVO_PDE;
                    vNombreArchivo = vObtieneComunicado.NB_ARCHIVO;


                    if (vObtieneComunicado.FG_PRIVADO == "Privado")
                    {
                        rcbprivado.Checked = true;
                    }
                    if (vIdArchivo != null)
                    {
                        rcbEliminarAdjunto.Visible = true;
                        ArchivosAdjuntos.Visible   = true;
                    }
                    else
                    {
                        vIdArchivo = 0;
                    }



                    if (vTipoComunicado != "null")
                    {
                        if (vTipoAccion == "E")
                        {
                            rbEditar.Checked = true;
                        }
                        else
                        {
                            rbLectura.Checked = true;
                        }

                        rbLectura.Visible                 = true;
                        rbEditar.Visible                  = true;
                        rbLectura.Enabled                 = false;
                        rbEditar.Enabled                  = false;
                        RadGridSeleccion.Visible          = true;
                        rcbAuto.Visible                   = true;
                        rbHabilitar.Visible               = true;
                        rbAgregar2.Visible                = false;
                        rbAgregar.Visible                 = true;
                        RadGridSeleccion.Enabled          = false;
                        rcbAuto.Enabled                   = true;
                        rbHabilitar.Enabled               = false;
                        rbAgregar.Enabled                 = true;
                        rcbprivado.Enabled                = false;
                        grdEmpleadosSeleccionados.Enabled = false;
                        btnSeleccionarAdscripcion.Enabled = false;
                        btnSeleccionarAreas.Enabled       = false;
                        btnSeleccionarEmpleados.Enabled   = false;
                        btnSeleccionarPuestos.Enabled     = false;
                        btnSeleccionUsuario.Enabled       = false;


                        if (vTipoComunicado == "I")
                        {
                            Tipo3.Checked        = true;
                            Tipo1.Checked        = false;
                            Tipo2.Checked        = false;
                            Tipo1.Enabled        = false;
                            Tipo2.Enabled        = false;
                            Tipo3.Enabled        = false;
                            btnPuestos.Visible   = false;
                            btnSeleccion.Visible = true;
                            btnSeleccion.Enabled = false;
                        }
                        else if (vTipoComunicado == "D")
                        {
                            Tipo3.Checked        = false;
                            Tipo1.Checked        = false;
                            Tipo2.Checked        = true;
                            Tipo1.Enabled        = false;
                            Tipo2.Enabled        = false;
                            Tipo3.Enabled        = false;
                            btnPuestos.Visible   = true;
                            btnSeleccion.Visible = false;
                            btnPuestos.Enabled   = false;
                            RadGridSeleccion.MasterTableView.Columns.FindByUniqueName("NB_EMPLEADO").Visible = false;
                        }
                    }
                    else
                    {
                        Tipo3.Checked        = false;
                        Tipo1.Checked        = true;
                        Tipo2.Checked        = false;
                        Tipo1.Enabled        = false;
                        Tipo2.Enabled        = false;
                        Tipo3.Enabled        = false;
                        btnPuestos.Visible   = false;
                        btnSeleccion.Visible = false;
                    }
                }
                else
                {
                    vIdArchivo                   = 0;
                    vIdComunicado                = 0;
                    vTipoTransaccion             = E_TIPO_OPERACION_DB.I.ToString();
                    rdtiIniciofecha.SelectedDate = DateTime.Now.Date;
                    rdtFinfecha.SelectedDate     = DateTime.Now.AddDays(1);
                }

                ConfiguracionNotificacionNegocio negocio = new ConfiguracionNotificacionNegocio();
                var notificacion = negocio.ObtenerNotificaciones();
                parseNotificarConfiguracion(notificacion);
                if (vConfiguracionesNotificacion != null)
                {
                    XElement notificaciones = XElement.Parse(vConfiguracionesNotificacion.FirstOrDefault().XML_INSTRUCCION);
                    DeserializarDocumentoAutorizar(notificaciones);
                    if (vNotificacionRegistrar != null)
                    {
                        //pIns.Text = vNotificacionRegistrar.DS_INSTRUCCION.ToString();
                        pIns.Text = vNotificacionRegistrar.DS_INSTRUCCION.ToString();
                    }
                }

                AdscripcionesNegocio negocioa = new AdscripcionesNegocio();
                string adscripcionVisible     = negocioa.SeleccionaAdscripcion().ToString();
                if (adscripcionVisible != "No")
                {
                    btnSeleccionarAdscripcion.Visible = true;
                }
                else
                {
                    btnSeleccionarAdscripcion.Visible = false;
                }

                vUsuarioSeleccion = "";
            }
        }