예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }