示例#1
0
        // TODO
        //public static Emblema obtenerEmblema(Reconocimiento reconocimiento) {
        //	if (reconocimiento.emblema == null) {
        //		reconocimiento.emblema = dao.obtenerEmblema(reconocimiento);
        //	}
        //	return reconocimiento.emblema;
        //}

        public static int crear(Reconocimiento rec)
        {
            int valoracionReconocedor = PuestoManager.obtener(rec.reconocedor).valoracion;
            int valoracionReconocido  = PuestoManager.obtener(rec.reconocido).valoracion;

            rec.valoracion = valoracionReconocedor / valoracionReconocido;

            //if (TrabajadorManager.obtenerSectorJefes(rec.reconocedor).Count > 0) {
            //	rec.valoracion++;
            //}

            rec.fecha = DateTime.Now;

            int result = dao.crear(rec);

            BitacoraManager.agregarMensajeControl("Reconocimiento creado: ", rec);

            NotificacionManager.enviar(new Notificacion {
                texto   = "Te han reconocido",
                usuario = rec.reconocido
            });

            DV.actualizarDV();

            return(result);
        }
示例#2
0
        static public void proponerEquipo(Sector sec, int nivel, bool puestoFijo = true)
        {
            if (sec.jefe == null)
            {
                List <UsuarioPropuesto> newBossList = obtener(sec, 1, nivel, null, true, null, puestoFijo);

                if (newBossList.Count > 0)
                {
                    sec.jefe = newBossList[0];
                }
            }

            foreach (KeyValuePair <Puesto, Usuario> position in sec.puestos.ToList())
            {
                if (position.Value == null)
                {
                    List <UsuarioPropuesto> newUserList = obtener(sec, 1, nivel, position.Key, false, null, puestoFijo);

                    if (newUserList.Count == 0)
                    {
                        continue;
                    }

                    Puesto newPuesto = PuestoManager.obtener(sec.puestos.FindAll(p => p.Key == position.Key && p.Value == null)[0].Key.id);

                    sec.puestos.Remove(sec.puestos.FindAll(p => p.Key == position.Key && p.Value == null)[0]);
                    sec.puestos.Add(new KeyValuePair <Puesto, Usuario>(newPuesto, newUserList[0]));
                }
            }

            return;
        }
示例#3
0
        static public double calcularValorEstadistico(UsuarioPropuesto us, bool esJefe = false, Puesto puesto = null)
        {
            double valor = -(us.cantidadObjetivosNoCumplidos * 0.05);

            valor += us.cantidadReconocimientos * 0.1;

            if (esJefe)
            {
                valor += us.promedioReconocimientosDeSuperiores * 0.4;
                valor += us.porcentajeObjetivosCumplidos * 0.2;
                valor += us.promedioDeNivelObjetivosCumplidos * 0.2;
                valor += us.promedioNivelReconocimiento * 0.1;
            }
            else
            {
                valor += us.promedioReconocimientosDeSuperiores * 0.3;
                valor += us.porcentajeObjetivosCumplidos * 0.25;
                valor += us.promedioDeNivelObjetivosCumplidos * 0.25;
                valor += us.promedioNivelReconocimiento * 0.05;
            }

            if (us.emblemasRecibidos != 0)
            {
                valor += us.emblemasRecibidos * 0.3;
            }

            if (puesto != null && PuestoManager.obtener(us).id == puesto.id)
            {
                valor += 20;
            }

            us.valorEstadistico = System.Math.Round(valor, 2);

            return(us.valorEstadistico);
        }
示例#4
0
        static public string exportPDF(string filename)
        {
            List <UsuarioPropuesto> usuarios = obtener(new Sector()
            {
                id = 0
            }, 20, 1, puestoFijo: false);

            PdfDocument document = new PdfDocument();

            document.Info.Title = "aWords";

            XFont fontTitle   = new XFont("Verdana", 20, XFontStyle.Bold);
            XFont fontSubject = new XFont("Verdana", 12, XFontStyle.Italic);
            XFont fontBody    = new XFont("Verdana", 14, XFontStyle.Regular);

            foreach (UsuarioPropuesto user in usuarios)
            {
                PdfPage        page = document.AddPage();
                XGraphics      gfx  = XGraphics.FromPdfPage(page);
                XTextFormatter tf   = new XTextFormatter(gfx);
                XRect          rect = new XRect(40, 40, page.Width, page.Height);

                tf.DrawString($"{user.apellido}, {user.nombre} ", fontTitle, XBrushes.Black, rect, XStringFormats.TopLeft);
                tf.DrawString($"{SectorManager.obtener(user).nombre} - {PuestoManager.obtener(user).nombre}", fontSubject, XBrushes.Black,
                              new XRect(40, 65, page.Width, page.Height), XStringFormats.TopLeft);

                tf.DrawString($"Porcentaje objetivos cumplidos: {user.porcentajeObjetivosCumplidos} " +
                              $"\n" +
                              $"Promedio de nivel objetivos cumplidos: {user.promedioDeNivelObjetivosCumplidos}" +
                              $"\n" +
                              $"Cantidad objetivos no cumplidos: {user.cantidadObjetivosNoCumplidos}" +
                              $"\n" +
                              $"Promedio reconocimientos de superiores: {user.promedioReconocimientosDeSuperiores}" +
                              $"\n" +
                              $"Cantidad reconocimientos: {user.cantidadReconocimientos}" +
                              $"\n" +
                              $"Promedio nivel reconocimiento: {user.promedioNivelReconocimiento}" +
                              $"\n" +
                              $"Valor estadistico: {user.valorEstadistico}", fontBody, XBrushes.Black,
                              new XRect(40, 90, page.Width, page.Height), XStringFormats.TopLeft);
            }

            document.Save(filename);

            return(filename);
        }