public HtrabDto HorasOverBudget(int idProyecto, DateTime inicio, DateTime fin) { List <SumaPerfiles> sumaPerfiles = new List <SumaPerfiles>(); var consulta = (from b in _context.HoraTrabajada where b.ProyectoIdProyecto == idProyecto && b.FechaHorasTrab >= inicio && b.FechaHorasTrab <= fin && b.CatidadHorasTrab > 8 select b).ToList(); foreach (HoraTrabajada hora in consulta) { SumaPerfiles sumaPerf = new SumaPerfiles { IdPerfil = hora.PerfilIdPerfil, DescripcionPerfil = hora.PerfilEmpleado.PerfilEmpleadoIdPerfilNavigation.DescripcionPerfil, ValorHora = hora.PerfilEmpleado.PerfilEmpleadoIdPerfilNavigation.ValorHora, FechaHorasTrab = hora.FechaHorasTrab, Nombre = hora.PerfilEmpleado.PerfilEmpleadoIdEmpleadoNavigation.NombreEmpleado, Apellido = hora.PerfilEmpleado.PerfilEmpleadoIdEmpleadoNavigation.ApellidoEmpleado, HorasPerfil = hora.CatidadHorasTrab, HorasEstimadas = hora.TareaIdTareaNavigation.HorasEstimadasTarea, EstadoHorasTrab = hora.EstadoHorasTrab, HorasTotales = consulta.Where(x => x.PerfilIdPerfil == hora.PerfilIdPerfil).Sum(x => x.CatidadHorasTrab) }; sumaPerfiles.Add(sumaPerf); } HtrabDto result = new HtrabDto { IdProy = idProyecto, TotalHorasProy = consulta.Sum(x => x.CatidadHorasTrab), SumaPorPerfil = sumaPerfiles }; return(result); }
public List <HtrabDto> HorasPorProyecto() { List <HtrabDto> HorasPorProy = new List <HtrabDto>(); var idsProyActivos = from p in _context.Proyecto where p.EstadoProyecto == "Vigente" select p.IdProyecto; var perfiles = from c in _context.Perfil select c; foreach (int id in idsProyActivos) { List <SumaPerfiles> sumaPerfiles = new List <SumaPerfiles>(); var consulta = (from b in _context.HoraTrabajada where b.ProyectoIdProyecto == id select b).ToList(); foreach (Perfil perfil in perfiles) { SumaPerfiles sumaPerf = new SumaPerfiles(); sumaPerf.IdPerfil = perfil.IdPerfil; sumaPerf.DescripcionPerfil = perfil.DescripcionPerfil; sumaPerf.ValorHora = perfil.ValorHora; if (perfil.PerfilEmpleado.Count != 0) { sumaPerf.Nombre = perfil.PerfilEmpleado.ElementAt(0).PerfilEmpleadoIdEmpleadoNavigation.NombreEmpleado; sumaPerf.Apellido = perfil.PerfilEmpleado.ElementAt(0).PerfilEmpleadoIdEmpleadoNavigation.ApellidoEmpleado; } sumaPerf.HorasPerfil = consulta.Where(x => x.PerfilIdPerfil == perfil.IdPerfil).Sum(x => x.CatidadHorasTrab); sumaPerfiles.Add(sumaPerf); } HtrabDto result = new HtrabDto(); result.IdProy = id; result.TotalHorasProy = consulta.Sum(x => x.CatidadHorasTrab); result.SumaPorPerfil = sumaPerfiles; HorasPorProy.Add(result); } return(HorasPorProy); }
public HtrabDto HorasByProyecto(int idProyecto) { // FILTRO HORAS TRABAJAS POR PROYECTO List <SumaPerfiles> sumaPerfiles = new List <SumaPerfiles>(); var consulta = (from b in _context.HoraTrabajada where b.ProyectoIdProyecto == idProyecto select b).ToList(); // POR CADA HORA, GENERO EL PERFIL-EMPLEADO CON LA SUMA TOTAL foreach (HoraTrabajada hora in consulta) { SumaPerfiles sumaPerf = new SumaPerfiles { IdPerfil = hora.PerfilIdPerfil, DescripcionPerfil = hora.PerfilEmpleado.PerfilEmpleadoIdPerfilNavigation.DescripcionPerfil, ValorHora = hora.PerfilEmpleado.PerfilEmpleadoIdPerfilNavigation.ValorHora, FechaHorasTrab = hora.FechaHorasTrab, Nombre = hora.PerfilEmpleado.PerfilEmpleadoIdEmpleadoNavigation.NombreEmpleado, Apellido = hora.PerfilEmpleado.PerfilEmpleadoIdEmpleadoNavigation.ApellidoEmpleado, HorasPerfil = hora.CatidadHorasTrab, HorasEstimadas = hora.TareaIdTareaNavigation.HorasEstimadasTarea, EstadoHorasTrab = hora.EstadoHorasTrab, HorasTotales = consulta.Where(x => x.PerfilIdPerfil == hora.PerfilIdPerfil).Sum(x => x.CatidadHorasTrab) }; sumaPerfiles.Add(sumaPerf); } // METO TODA LA DATA EN EL DTO Y RETORNO HtrabDto result = new HtrabDto { IdProy = idProyecto, TotalHorasProy = consulta.Sum(x => x.CatidadHorasTrab), SumaPorPerfil = sumaPerfiles }; return(result); }