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 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 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;
            }
        }