protected void AgregarSeleccionados_puestos(XElement pXmlElementos)
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            List <SPE_OBTIENE_EMPLEADOS_PDE_Result> lista = neg.ObtenerEmpleados_PDE(pXmlElementos);

            foreach (SPE_OBTIENE_EMPLEADOS_PDE_Result item in lista)
            {
                var emp = ListaEmpleadosInf.Where(t => t.ID_PUESTO == item.M_PUESTO_ID_PUESTO_PDE).FirstOrDefault();

                if (emp == null)
                {
                    E_EMPLEADO_PDE e = new E_EMPLEADO_PDE
                    {
                        ID_EMPLEADO     = item.M_EMPLEADO_ID_EMPLEADO_PDE,
                        CL_EMPLEADO     = item.M_EMPLEADO_CL_EMPLEADO,
                        NB_EMPLEADO     = item.M_EMPLEADO_NB_EMPLEADO_COMPLETO,
                        ID_DEPARTAMENTO = item.M_DEPARTAMENTO_ID_DEPARTAMENTO_PDE,
                        ID_PUESTO       = item.M_PUESTO_ID_PUESTO_PDE,
                        NB_PUESTO       = item.M_PUESTO_NB_PUESTO,
                        NB_DEPARTAMENTO = item.M_DEPARTAMENTO_NB_DEPARTAMENTO
                    };

                    ListaEmpleadosInf.Add(e);
                }
            }

            RadGridSeleccion.Rebind();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            vUsuarioSeleccion       = "";
            vNbPrograma             = ContextoUsuario.nbPrograma;
            vClUsuario              = ContextoUsuario.oUsuario.CL_USUARIO;
            vEmpleadosSeleccionados = new List <E_OBTIENE_PUESTO_EMPLEADOS>();
            if (!IsPostBack)
            {
                ConfiguracionNotificacionNegocio negocio = new ConfiguracionNotificacionNegocio();
                ListaEmpleados    = new List <E_EMPLEADO_PDE>();
                xmlPuestoEmpleado = negocio.ObtienePuestoEmpleado(null, null);
                XElement root = XElement.Parse(xmlPuestoEmpleado);
                foreach (XElement name in root.Elements("EMPLEADO"))
                {
                    E_EMPLEADO_PDE em = new E_EMPLEADO_PDE
                    {
                        ID_EMPLEADO  = name.Attribute("ID_EMPLEADO").Value,
                        ID_PUESTO    = name.Attribute("ID_PUESTO").Value,
                        NB_PUESTO    = name.Attribute("NB_PUESTO").Value,
                        NB_EMPLEADO  = name.Attribute("NB_EMPLEADO").Value,
                        M_CL_USUARIO = name.Attribute("CL_USUARIO").Value,
                    };
                    ListaEmpleados.Add(em);
                }
            }

            grdEmpleadosSeleccionados.DataSource = ListaEmpleados;
        }
        private void EliminarEmpleado(string pIdEmpleado)
        {
            E_EMPLEADO_PDE e = ListaEmpleados.Where(t => t.ID_EMPLEADO == pIdEmpleado).FirstOrDefault();

            if (e != null)
            {
                ListaEmpleados.Remove(e);
            }
        }
        protected void rcbAuto_Click(object sender, EventArgs e)
        {
            if (rcbAuto.Checked == true)
            {
                if (ListaEmpleadosInf.Count == 0)
                {
                    foreach (E_EMPLEADO_PDE item in ListaEmpleados)
                    {
                        E_EMPLEADO_PDE f = new E_EMPLEADO_PDE
                        {
                            ID_EMPLEADO = item.ID_EMPLEADO,
                            NB_EMPLEADO = item.NB_EMPLEADO,
                            NB_PUESTO   = item.NB_PUESTO
                        };

                        ListaEmpleadosInf.Add(f);
                    }
                    RadGridSeleccion.Rebind();
                }
            }
        }
        protected void AgregarSeleccionados(XElement pXmlElementos)
        {
            ConsultaGeneralNegocio neg = new ConsultaGeneralNegocio();
            List <SPE_OBTIENE_EMPLEADOS_PDE_Result> lista = neg.ObtenerEmpleados_PDE(pXmlElementos);

            foreach (SPE_OBTIENE_EMPLEADOS_PDE_Result item in lista)
            {
                E_EMPLEADO_PDE emp;
                if (vUsuarioSeleccion == "")
                {
                    emp = ListaEmpleados.Where(t => t.ID_EMPLEADO == item.M_EMPLEADO_ID_EMPLEADO_PDE).FirstOrDefault();
                }
                else
                {
                    emp = ListaEmpleados.Where(t => t.CL_EMPLEADO == item.M_EMPLEADO_CL_EMPLEADO).FirstOrDefault();
                }

                if (emp == null)
                {
                    E_EMPLEADO_PDE e = new E_EMPLEADO_PDE
                    {
                        ID_EMPLEADO     = item.M_EMPLEADO_ID_EMPLEADO_PDE,
                        CL_EMPLEADO     = item.M_EMPLEADO_CL_EMPLEADO,
                        NB_EMPLEADO     = item.M_EMPLEADO_NB_EMPLEADO_COMPLETO,
                        ID_DEPARTAMENTO = item.M_DEPARTAMENTO_ID_DEPARTAMENTO_PDE,
                        ID_PUESTO       = item.M_PUESTO_ID_PUESTO_PDE,
                        NB_PUESTO       = item.M_PUESTO_NB_PUESTO,
                        NB_DEPARTAMENTO = item.M_DEPARTAMENTO_NB_DEPARTAMENTO,
                        M_CL_USUARIO    = (item.M_CL_USUARIO == null ? null : item.M_CL_USUARIO)
                    };

                    ListaEmpleados.Add(e);
                }
            }

            grdEmpleadosSeleccionados.Rebind();
        }
        protected void grdNotificacionEmpleado_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            ConfiguracionNotificacionNegocio negocio = new ConfiguracionNotificacionNegocio();
            List <E_EMPLEADO_PDE>            lista   = new List <E_EMPLEADO_PDE>();

            xmlPuestoEmpleado = negocio.ObtienePuestoEmpleado(null, null);
            XElement root = XElement.Parse(xmlPuestoEmpleado);

            foreach (XElement name in root.Elements("EMPLEADO"))
            {
                E_EMPLEADO_PDE em = new E_EMPLEADO_PDE
                {
                    ID_EMPLEADO = name.Attribute("ID_EMPLEADO").Value,
                    ID_PUESTO   = name.Attribute("ID_PUESTO").Value,
                    NB_PUESTO   = name.Attribute("NB_PUESTO").Value,
                    NB_EMPLEADO = name.Attribute("NB_EMPLEADO").Value
                };
                lista.Add(em);
                var pue = lista.Where(t => t.ID_PUESTO == "0").FirstOrDefault();
                lista.Remove(pue);
            }

            grdNotificacionEmpleado.DataSource = lista;
        }
        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 = "";
            }
        }