예제 #1
0
 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());
     }
 }
예제 #2
0
        /// <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);
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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());
            }
        }
예제 #5
0
 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);
 }
예제 #6
0
파일: Empresas.cs 프로젝트: IsraelBV/SUN
        //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);
        }
예제 #7
0
파일: Sucursales.cs 프로젝트: IsraelBV/SUN
        //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);
        }
예제 #8
0
파일: Clientes.cs 프로젝트: IsraelBV/SUN
        //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);
        }
예제 #9
0
 public List <NotificacionDatos> GetNotificationsByType(int type, SYA_Usuarios user)
 {
     return(GetNotifications2(user).Where(x => x.Tipo == type).ToList());
 }
예제 #10
0
        public List <NotificacionDatos> GetNotificationsArchivadas(SYA_Usuarios user)
        {
            var lista = GetNotifications2(user);

            return(lista?.Where(x => x.Status == 3).ToList());
        }
예제 #11
0
        public List <NotificacionDatos> getNuevas(SYA_Usuarios user)
        {
            var lista = GetNotifications2(user);

            return(lista?.Where(x => x.Status == 1 || x.Status == null).ToList());
        }
예제 #12
0
        public List <NotificacionDatos> GetBandejaEntrada(SYA_Usuarios user)
        {
            var lista = GetNotifications2(user);

            return(lista?.Where(x => x.Status != 3).ToList());
        }
예제 #13
0
        public List <NotificacionDatos> GetFavoritas(SYA_Usuarios user)
        {
            var lista = GetNotifications2(user);

            return(lista?.Where(x => x.Favorita == true).ToList());
        }
예제 #14
0
        //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);
            }
        }
예제 #15
0
        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);
        }