コード例 #1
0
        public HtrabPorRecDto HorasPorRecurso(int idEmpleado, DateTime inicio, DateTime fin)
        {
            var consulta = (from b in _context.HoraTrabajada
                            where (b.PerfilIdPerfil == idEmpleado) && (b.FechaHorasTrab >= inicio) && (b.FechaHorasTrab <= fin)
                            select b).ToList();

            var perfiles = (from c in _context.Perfil select c.IdPerfil).ToList();

            var idsProyActivos = (from p in _context.Proyecto
                                  where p.EstadoProyecto == "Vigente"
                                  select p.IdProyecto).ToList();

            List <SumaPerfiles> sumaPerfiles = new List <SumaPerfiles>();
            List <HtrabDto>     htrabDtos    = new List <HtrabDto>();

            perfiles.ForEach(delegate(int p)
            {
                int horas = consulta.Where(
                    x => x.PerfilIdPerfil == p).Sum(x => x.CatidadHorasTrab);

                if (horas > 0)
                {
                    sumaPerfiles.Add(new SumaPerfiles()
                    {
                        IdPerfil    = p,
                        HorasPerfil = horas
                    });
                }
            });

            idsProyActivos.ForEach(delegate(int p)
            {
                int horas = consulta.Where(
                    x => x.ProyectoIdProyecto == p).Sum(x => x.CatidadHorasTrab);

                if (horas > 0)
                {
                    htrabDtos.Add(new HtrabDto()
                    {
                        IdProy         = p,
                        TotalHorasProy = horas
                    });
                }
            });
            HtrabPorRecDto htrabPorRecDto = new HtrabPorRecDto()
            {
                TotalHorasRec = consulta.Sum(x => x.CatidadHorasTrab),
                PorPerfil     = sumaPerfiles,
                PorProyecto   = htrabDtos
            };

            return(htrabPorRecDto);
        }
コード例 #2
0
        private void getHorasPorPeriodo()
        {
            HtrabPorRecDto horasTrabajadas = null;

            HttpResponseMessage response = HttpUtils.getHorasTrabajadasFecha(Settings.Default.Client, "/horatrabajadas/porfecha/", ComboBoxPerfiles.SelectedValue.ToString(), fechaInicio.Value.Date.ToString(("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz")), fechaFin.Value.Date.ToString(("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz")));

            string stringCR = response.Content.ReadAsStringAsync().Result;

            horasTrabajadas = JsonConvert.DeserializeObject <HtrabPorRecDto>(stringCR);

            if (response.IsSuccessStatusCode && horasTrabajadas.TotalHorasRec > 0)
            {
                DialogResult result = MessageBox.Show("Total de horas: " + horasTrabajadas.TotalHorasRec, "Horas Trabajadas por Período", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("No posee horas cargadas en ese período.", "Oops!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }