public static List <int> GetTiposNotificacionDepartamento(SYA_Usuarios user) { using (var context = new RHEntities()) { return(user.IdPerfil == 1 ? context.C_NotificacionTipo.Select(x => x.IdTipo).ToList() : context.Notificacion_Departamento.Where(x => x.IdDepartamento == user.IdDepartamento).Select(x => x.IdTipo).ToList()); } }
/// <summary> /// Metodo que valida si el usuario tiene configurada la aplicacion /// </summary> /// <param name="app"></param> /// <param name="user"></param> /// <returns></returns> public static bool AccesoAplicacion(Aplicacion app, SYA_Usuarios user) { var result = false; if (user == null) { return(false); } //Si el usuario tiene perfil SU se le concede acceso inmediato if (user.IdPerfil == 1) { return(true); } //obtenemos el valor numerico del enumerado de aplicacion var idAplicacion = (int)app; //pasamos a un array las aplicaciones que tiene configurado el usuario var array = user.Aplicaciones.Split(','); //buscamos si la aplicacion esta dentro de la lista de aplicaciones // del usuario var encontrado = (from elemento in array where elemento == idAplicacion.ToString() select elemento).Count(); //si esta disponible if (encontrado > 0) { result = true; } return(result); }
public static bool AccesoFiltroNotificacion(TiposNotificacion tn, SYA_Usuarios user) { if (user == null) { return(false); } if (user.IdPerfil == 1) { return(true); } var noti = (int)tn; var ctx = new RHEntities(); var array = ctx.Notificacion_Departamento.Where(x => x.IdDepartamento == user.IdDepartamento).Select(x => x.IdTipo).ToList(); if (array.Contains(noti)) { return(true); } else { return(false); } }
public List <NotificacionDatos> GetNotificationsByStatus(int status, SYA_Usuarios user) { var IdUser = SessionHelpers.GetIdUsuario(); if (status == 2) { return(GetNotifications2(user).Where(x => x.Status == 2 || x.Status == null).ToList()); } else { return(GetNotifications2(user).Where(x => x.Status == status).ToList()); } }
public int[] GetSucursalesUsuario(SYA_Usuarios user) { int[] sucursales = null; using (var context = new RHEntities()) { if (user.Sucursales == "*") { sucursales = context.Sucursal.Select(x => x.IdSucursal).ToArray(); } else { //Obtiene las sucursales a los que tiene acceso el usuario var sucursalesAcceso = user.Sucursales.Split(','); sucursales = sucursalesAcceso.Select(int.Parse).ToArray(); } } return(sucursales); }
//obtener empresas por usuario en la sesion public List <Empresa> getEmpresasByUser(SYA_Usuarios usuario) { var listaEmpresas = new List <Empresa>(); using (var context = new RHEntities()) { if (usuario.Sucursales != "*") { var sucursalesUsuario = usuario.Sucursales.Split(',').Select(Int32.Parse).ToArray(); listaEmpresas = (from listEmp in context.Empresa join sucEmp in context.Sucursal_Empresa on listEmp.IdEmpresa equals sucEmp.IdEmpresa where sucEmp.IdEsquema == 1 && sucursalesUsuario.Contains(sucEmp.IdSucursal) select listEmp).ToList(); } else { listaEmpresas = context.Empresa.Where(x => x.RegistroPatronal != null).ToList(); } } return(listaEmpresas); }
//obtener sucursales por usuario en la sesion public List <Sucursal> getSucursalesByUser(SYA_Usuarios usuario) { var listaSucursales = new List <Sucursal>(); using (var context = new RHEntities()) { if (usuario.Sucursales != "*") { var sucursalesUsuario = usuario.Sucursales.Split(',').Select(Int32.Parse).ToArray(); listaSucursales = (from suc in context.Sucursal where sucursalesUsuario.Contains(suc.IdSucursal) select suc).ToList(); } else { listaSucursales = context.Sucursal.ToList(); } } return(listaSucursales); }
//obtener sucursales por usuario en la sesion public List <Cliente> getClientesByUser(SYA_Usuarios usuario) { var listaClientes = new List <Cliente>(); using (var context = new RHEntities()) { if (usuario.Sucursales != "*") { var sucursalesUsuario = usuario.Sucursales.Split(',').Select(Int32.Parse).ToArray(); listaClientes = (from suc in context.Sucursal join cli in context.Cliente on suc.IdCliente equals cli.IdCliente where sucursalesUsuario.Contains(suc.IdSucursal) select cli).ToList(); } else { listaClientes = context.Cliente.ToList(); } } return(listaClientes); }
public List <NotificacionDatos> GetNotificationsByType(int type, SYA_Usuarios user) { return(GetNotifications2(user).Where(x => x.Tipo == type).ToList()); }
public List <NotificacionDatos> GetNotificationsArchivadas(SYA_Usuarios user) { var lista = GetNotifications2(user); return(lista?.Where(x => x.Status == 3).ToList()); }
public List <NotificacionDatos> getNuevas(SYA_Usuarios user) { var lista = GetNotifications2(user); return(lista?.Where(x => x.Status == 1 || x.Status == null).ToList()); }
public List <NotificacionDatos> GetBandejaEntrada(SYA_Usuarios user) { var lista = GetNotifications2(user); return(lista?.Where(x => x.Status != 3).ToList()); }
public List <NotificacionDatos> GetFavoritas(SYA_Usuarios user) { var lista = GetNotifications2(user); return(lista?.Where(x => x.Favorita == true).ToList()); }
//public List<NotificacionDatos> GetNotifications() //{ // var user = ControlAcceso.GetUsuarioEnSession(); // if (user.IdPerfil == 1) // { // return GetNotificationsPerron(user.IdUsuario); // } // var accesoATipos = GetTiposNotificacionDepartamento(user); // if (user.Sucursales == "*") // { // return (from n in ctx.Notificaciones // join t in ctx.C_NotificacionTipo on n.IdTipo equals t.IdTipo // join su in ctx.SYA_Usuarios on n.UsuarioReg equals su.IdUsuario // join cli in ctx.Cliente on n.IdCliente equals cli.IdCliente // join sucu in ctx.Sucursal on cli.IdCliente equals sucu.IdCliente // let fav = ctx.Notificaciones_Favoritas // .FirstOrDefault(x => x.IdNotificacion == n.IdNotificacion && x.IdUsuario == user.IdUsuario) // let nu = ctx.Notificacion_Status // .Where(x => x.IdNotificacion == n.IdNotificacion && x.IdUsuario == user.IdUsuario) // .OrderByDescending(x => x.Fecha) // .FirstOrDefault() // where su.IdUsuario == user.IdUsuario && accesoATipos.Contains(n.IdTipo) // select new NotificacionDatos // { // IdNotificacion = n.IdNotificacion, // Titulo = n.Titulo, // Tipo = n.IdTipo, // TipoDescripcion = t.Descripcion, // IdUsuario = n.UsuarioReg, // Contenido = n.Cuerpo, // Usuario = su.Nombres + " " + su.ApPaterno, // Fecha = n.Fecha, // Cliente = sucu.Ciudad, // Favorita = fav == null ? false : true, // Status = nu == null ? 1 : nu.Status // } // ).ToList(); // } // else // { // var sucursales = user.Sucursales.Split(','); // return (from n in ctx.Notificaciones // join t in ctx.C_NotificacionTipo on n.IdTipo equals t.IdTipo // join su in ctx.SYA_Usuarios on n.UsuarioReg equals su.IdUsuario // join cli in ctx.Cliente on n.IdCliente equals cli.IdCliente // join s in ctx.Sucursal on cli.IdCliente equals s.IdCliente // let fav = ctx.Notificaciones_Favoritas // .FirstOrDefault(x => x.IdNotificacion == n.IdNotificacion && x.IdUsuario == user.IdUsuario) // let nu = ctx.Notificacion_Status // .Where(x => x.IdNotificacion == n.IdNotificacion && x.IdUsuario == su.IdUsuario) // .OrderByDescending(x => x.Fecha) // .FirstOrDefault() // where su.IdUsuario == user.IdUsuario && sucursales.Contains(s.IdSucursal.ToString()) && accesoATipos.Contains(n.IdTipo) // select new NotificacionDatos // { // IdNotificacion = n.IdNotificacion, // Titulo = n.Titulo, // Tipo = n.IdTipo, // Contenido = n.Cuerpo, // TipoDescripcion = t.Descripcion, // IdUsuario = n.UsuarioReg, // Usuario = su.Nombres + " " + su.ApPaterno, // Fecha = n.Fecha, // Cliente = s.Ciudad, // cli.Nombre, // Favorita = fav == null ? false : true, // Status = nu == null ? 1 : nu.Status, // } // ) // .ToList(); // } //} public List <NotificacionDatos> GetNotifications2(SYA_Usuarios usuario, int statusNotificacion = 0) { //Obtenemos los tipos de noti que tiene acceso segun su departamento //ALta - Baja - IMSS - ETC. var accesoATipos = GetTiposNotificacionDepartamento(usuario); var arrayTipos = accesoATipos.ToArray(); //val tipos de acceso if (arrayTipos.Length <= 0) { return(null); } //Si el perfil es SU = 1 Perron int[] arrayIdSucursal = null; //Creamos la consulta using (var context = new RHEntities()) { if (usuario.Sucursales == "*") { arrayIdSucursal = context.Sucursal.Select(x => x.IdSucursal).ToArray(); } else { //Obtiene las sucursales a los que tiene acceso el usuario var sucursalesAcceso = usuario.Sucursales.Split(','); arrayIdSucursal = sucursalesAcceso.Select(int.Parse).ToArray(); } if (arrayIdSucursal.Length <= 0) { return(null); } var listaNotif = (from n in context.Notificaciones join usu in context.SYA_Usuarios on n.UsuarioReg equals usu.IdUsuario join cli in context.Cliente on n.IdCliente equals cli.IdCliente where arrayIdSucursal.Contains(n.IdSucursal) && arrayTipos.Contains(n.IdTipo) select new NotificacionDatos { IdNotificacion = n.IdNotificacion, Titulo = n.Titulo, Tipo = n.IdTipo, TipoDescripcion = ((TiposNotificacion)n.IdTipo).ToString().Replace("_", " "), IdUsuario = n.UsuarioReg, Contenido = n.Cuerpo, Usuario = usu.Nombres + " " + usu.ApPaterno, Fecha = n.Fecha, Cliente = cli.Nombre, Favorita = false, Status = 1 }).ToList(); // var arrayNotis = listaNotif.Select(x => x.IdNotificacion).ToArray(); //Identificar si esta como favorita var listaFavDelUsuario = (from fav in context.Notificaciones_Favoritas where arrayNotis.Contains(fav.IdNotificacion) && fav.IdUsuario == usuario.IdUsuario select fav).ToList(); if (listaFavDelUsuario.Count > 0) { foreach (var itemFav in listaFavDelUsuario) { //buscamos la notificacion var itemnot = listaNotif.FirstOrDefault(x => x.IdNotificacion == itemFav.IdNotificacion); if (itemnot == null) { continue; } itemnot.Favorita = true; } } //Actualizar estatus var listaEstatus = ( from st in context.Notificacion_Status where arrayNotis.Contains(st.IdNotificacion) && st.IdUsuario == usuario.IdUsuario select st).ToList(); if (listaEstatus.Count > 0) { foreach (var itemSt in listaEstatus) { //buscamos la notificacion var itemnot = listaNotif.FirstOrDefault(x => x.IdNotificacion == itemSt.IdNotificacion); if (itemnot == null) { continue; } itemnot.Status = itemSt.Status; } } return(listaNotif); } }
private static byte[] GetDatosEmpleadosPdf(int idEmpleado) { byte[] byteInfo; MemoryStream ms = new MemoryStream(); Document doc = new Document(PageSize.LETTER, 50, 50, 25, 25); PdfWriter writer = PdfWriter.GetInstance(doc, ms); writer.CloseStream = false; doc.Open(); try { Empleado itemEmpleado = new Empleado(); Empleado_Contrato itemContrato = new Empleado_Contrato(); Cliente itemCliente = new Cliente(); Sucursal itemSucursal = new Sucursal(); List <Empresa> listaEmpresas = new List <Empresa>(); DatosBancarios itemBancarios = new DatosBancarios(); Puesto itemPuesto = new Puesto(); C_Banco_SAT itemBancoSat = new C_Banco_SAT(); string empFiscal = ""; string empComplemento = ""; SYA_Usuarios usuario = new SYA_Usuarios(); using (var context = new RHEntities()) { itemEmpleado = context.Empleado.FirstOrDefault(x => x.IdEmpleado == idEmpleado); itemContrato = context.Empleado_Contrato.Where(x => x.IdEmpleado == idEmpleado) .OrderByDescending(x => x.IdContrato) .FirstOrDefault(); if (itemContrato == null) { return(null); } itemSucursal = context.Sucursal.FirstOrDefault(x => x.IdSucursal == itemEmpleado.IdSucursal); itemCliente = context.Cliente.FirstOrDefault(x => x.IdCliente == itemSucursal.IdCliente); listaEmpresas = context.Empresa.ToList(); itemPuesto = context.Puesto.FirstOrDefault(x => x.IdPuesto == itemContrato.IdPuesto); itemBancarios = context.DatosBancarios.FirstOrDefault(x => x.IdEmpleado == idEmpleado); itemBancoSat = context.C_Banco_SAT.FirstOrDefault(x => x.IdBanco == itemBancarios.IdBanco); usuario = context.SYA_Usuarios.FirstOrDefault(x => x.IdUsuario == itemContrato.IdUsuarioReg); } if (itemContrato.IdEmpresaFiscal != null) { Empresa itemEmpF = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaFiscal.Value); empFiscal = itemEmpF != null ? itemEmpF.RazonSocial : "na"; } if (itemContrato.IdEmpresaComplemento != null) { Empresa itemEmpC = listaEmpresas.FirstOrDefault(x => x.IdEmpresa == itemContrato.IdEmpresaComplemento.Value); empComplemento = itemEmpC != null ? itemEmpC.RazonSocial : "na"; } doc.NewPage(); //// Paragraph to draw line. //Paragraph p = new Paragraph(new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1))); //// call the below to add the line when required. //doc.Add(p); //doc.Add(Chunk.NEWLINE); string strNombre = ""; strNombre = itemContrato.Status == true ? $" {itemEmpleado.Nombres} {itemEmpleado.APaterno} {itemEmpleado.AMaterno}" : $" {itemEmpleado.Nombres} {itemEmpleado.APaterno} {itemEmpleado.AMaterno} - Baja"; doc.Add(new Phrase(strNombre, Font14B)); doc.Add(Chunk.NEWLINE); if (usuario != null) { string strUsuario = $" Registrado por: {usuario.Nombres} {usuario.ApPaterno} {usuario.ApMaterno} Fecha Reg: {itemContrato.FechaReg}"; doc.Add(new Phrase(strUsuario, Font9)); } //doc.Add(Chunk.NEWLINE); // Paragraph to draw line. Paragraph p = new Paragraph( new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(0.0F, 100.0F, BaseColor.BLACK, Element.ALIGN_LEFT, 1))); // call the below to add the line when required. doc.Add(p); // LineSeparator line = new LineSeparator(1f, 100f, BaseColor.BLACK, Element.ALIGN_LEFT, 1); //doc.Add(line); doc.Add(Chunk.NEWLINE); SetDataDoc(ref doc, "IdEmpleado : ", itemEmpleado.IdEmpleado.ToString()); SetDataDoc(ref doc, "Nombre(s) : ", itemEmpleado.Nombres); SetDataDoc(ref doc, "Paterno : ", itemEmpleado.APaterno); SetDataDoc(ref doc, "Materno : ", itemEmpleado.AMaterno); SetDataDoc(ref doc, "NSS : ", itemEmpleado.NSS); SetDataDoc(ref doc, "RFC : ", itemEmpleado.RFC); SetDataDoc(ref doc, "CURP : ", itemEmpleado.CURP); doc.Add(Chunk.NEWLINE); SetDataDoc(ref doc, "Cliente : ", itemCliente.Nombre); SetDataDoc(ref doc, "Sucursal : ", itemSucursal.Ciudad); SetDataDoc(ref doc, "Puesto : ", itemPuesto.Descripcion); doc.Add(Chunk.NEWLINE); SetDataDoc(ref doc, "Empresa Fiscal : ", empFiscal); SetDataDoc(ref doc, "Empresa Comp : ", empComplemento); SetDataDoc(ref doc, "SD : ", itemContrato.SD.ToString()); SetDataDoc(ref doc, "SDI : ", itemContrato.SDI.ToString()); SetDataDoc(ref doc, "SDR : ", itemContrato.SalarioReal.ToString()); SetDataDoc(ref doc, itemContrato.IsReingreso ? "Fecha Reingreso : " : "Fecha Alta : ", itemContrato.FechaAlta.ToString("dd MMM yyyy")); SetDataDoc(ref doc, "Fecha Imss : ", itemContrato.FechaIMSS != null ? itemContrato.FechaIMSS.Value.ToString("dd MMM yyyy") : "--"); SetDataDoc(ref doc, "Fecha Real : ", itemContrato.FechaReal.ToString("dd MMM yyyy")); SetDataDoc(ref doc, "Tipo Contrato : ", itemContrato.IsReingreso ? "Reingreso" : "Nuevo"); SetDataDoc(ref doc, "Estatus contrato : ", itemContrato.Status ? "Vigente" : "Baja"); if (itemContrato.Status == false) { SetDataDoc(ref doc, "Fecha Baja : ", itemContrato.FechaBaja != null ? itemContrato.FechaBaja.Value.ToString("dd MMM yyyy") : "--"); SetDataDoc(ref doc, "Baja Imss : ", itemContrato.BajaIMSS != null ? itemContrato.BajaIMSS.Value.ToString("dd MMM yyyy") : "--"); SetDataDoc(ref doc, "Motivo Baja : ", itemContrato.MotivoBaja != null ? itemContrato.MotivoBaja : "--"); SetDataDoc(ref doc, "Comentario Baja : ", itemContrato.ComentarioBaja != null ? itemContrato.ComentarioBaja : "--"); } doc.Add(Chunk.NEWLINE); SetDataDoc(ref doc, "Banco : ", itemBancoSat.Descripcion); SetDataDoc(ref doc, "Siga F : ", itemBancarios.NoSigaF.ToString()); SetDataDoc(ref doc, "Siga C : ", itemBancarios.NoSigaC.ToString()); SetDataDoc(ref doc, "Cuenta Bancaria : ", itemBancarios.CuentaBancaria); SetDataDoc(ref doc, "Num. de Tarjeta : ", itemBancarios.NumeroTarjeta); SetDataDoc(ref doc, "Clabe Interbancaria : ", itemBancarios.Clabe); doc.Add(Chunk.NEWLINE); SetDataDoc(ref doc, "Beneficiario : ", itemBancarios.NombreBeneficiario); SetDataDoc(ref doc, "RFC Beneficiario : ", itemBancarios.RFCBeneficiario); SetDataDoc(ref doc, "CURP Beneficiario : ", itemBancarios.CURPBeneficiario); SetDataDoc(ref doc, "Parentezco : ", itemBancarios.ParentezcoBeneficiario); SetDataDoc(ref doc, "Domicilio Beneficiario : ", itemBancarios.DomicilioBeneficiario); } catch (Exception e) { doc.Add(new Phrase($"Error ? {e.Message}", Font14B)); } finally { doc.Close(); byteInfo = ms.ToArray(); ms.Write(byteInfo, 0, byteInfo.Length); ms.Position = 0; ms.Flush(); ms.Dispose(); } return(byteInfo); }