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