Exemplo n.º 1
0
        public IEnumerable <SolicitudRecurso> GetSolicitudesFullByProyectoId(int proyectoId)
        {
            var solicitudes = GetMany(x => x.ProyectoId.Equals(proyectoId)).ToList();

            var buSolicitudRecursoDetalle = new BuSolicitudRecursoDetalle();
            var buRecurso        = new BuRecurso();
            var buAlmacenRecurso = new BuAlmacenRecurso();

            var prioridades  = new BuPrioridad().GetAll();
            var estados      = new BuEstado().GetAll();
            var trabajadores = new BuTrabajador().GetAll();

            foreach (var solicitud in solicitudes)
            {
                solicitud.Prioridad   = prioridades.FirstOrDefault(x => x.Id.Equals(solicitud.PrioridadId));
                solicitud.Estado      = estados.FirstOrDefault(x => x.Id.Equals(solicitud.EstadoId));
                solicitud.Responsable = trabajadores.FirstOrDefault(x => x.Id.Equals(solicitud.ResponsableId));

                solicitud.Recursos = buSolicitudRecursoDetalle.GetMany(x => x.SolicitudRecursoId.Equals(solicitud.Id)).ToList();
                foreach (var detalle in solicitud.Recursos)
                {
                    detalle.Recurso           = buRecurso.GetById(detalle.RecursoId);
                    detalle.QuantityAvailable = buAlmacenRecurso
                                                .Get(x => x.AlmacenId.Equals(1) && x.RecursoId.Equals(detalle.RecursoId))
                                                .StockAvailable;
                    detalle.QuantityToAssign = (detalle.QuantityAvailable > detalle.QuantityPending)
                        ? detalle.QuantityPending
                        : detalle.QuantityAvailable;
                }
            }

            return(solicitudes);
        }
Exemplo n.º 2
0
        public IEnumerable <Programa> GetProgramasFullByPortafolioId(int portafolioId)
        {
            var programas = GetMany(x => x.PortafolioId.HasValue && x.PortafolioId.Value.Equals(portafolioId)).ToList();

            var prioridades  = new BuPrioridad().GetAll();
            var estados      = new BuEstado().GetAll();
            var trabajadores = new BuTrabajador().GetAll();

            foreach (var programa in programas)
            {
                programa.Prioridad   = prioridades.FirstOrDefault(x => x.Id.Equals(programa.PrioridadId));
                programa.Estado      = estados.FirstOrDefault(x => x.Id.Equals(programa.EstadoId));
                programa.Responsable = trabajadores.FirstOrDefault(x => x.Id.Equals(programa.ResponsableId));
            }

            return(programas);
        }
Exemplo n.º 3
0
        public IEnumerable <Proyecto> GetProyectosFullByPortafolioIdOrProgramaId(int portafolioId, int programaId)
        {
            var id = portafolioId + programaId;

            var proyectos = !portafolioId.Equals(0)
                ? GetMany(x => x.PortafolioId.HasValue && x.PortafolioId.Value.Equals(id)).ToList()
                : GetMany(x => x.ProgramaId.HasValue && x.ProgramaId.Value.Equals(id)).ToList();

            var buCliente                 = new BuCliente();
            var buPatrocinador            = new BuPatrocinador();
            var buSolicitudRecurso        = new BuSolicitudRecurso();
            var buSolicitudRecursoDetalle = new BuSolicitudRecursoDetalle();
            var buRecurso                 = new BuRecurso();
            var buAlmacenRecurso          = new BuAlmacenRecurso();

            var prioridades        = new BuPrioridad().GetAll();
            var estados            = new BuEstado().GetAll();
            var estadoAprobaciones = new BuEstadoAprobacion().GetAll();
            var trabajadores       = new BuTrabajador().GetAll();
            var tipoProyectos      = new BuTipoProyecto().GetAll();

            foreach (var proyecto in proyectos)
            {
                proyecto.EstadoAprobacion = estadoAprobaciones.FirstOrDefault(x => x.Id.Equals(proyecto.EstadoAprobacionId));
                proyecto.Prioridad        = prioridades.FirstOrDefault(x => x.Id.Equals(proyecto.PrioridadId));
                proyecto.Estado           = estados.FirstOrDefault(x => x.Id.Equals(proyecto.EstadoId));
                proyecto.Cliente          = buCliente.GetById(proyecto.ClienteId);
                proyecto.TipoProyecto     = tipoProyectos.FirstOrDefault(x => x.Id.Equals(proyecto.TipoProyectoId));
                proyecto.Responsable      = trabajadores.FirstOrDefault(x => x.Id.Equals(proyecto.ResponsableId));
                proyecto.Patrocinador     = buPatrocinador.GetById(proyecto.PatrocinadorId);

                var solicitudes = buSolicitudRecurso.GetMany(x => x.ProyectoId.Equals(proyecto.Id) && x.EstadoId.Equals((int)Enums.EstadoType.Pendiente));
                if (solicitudes == null)
                {
                    continue;
                }
                {
                    proyecto.SolicitudesRecurso = solicitudes.ToList();
                    foreach (var solicitud in proyecto.SolicitudesRecurso)
                    {
                        solicitud.Prioridad = prioridades.FirstOrDefault(x => x.Id.Equals(solicitud.PrioridadId));
                        var detallesSolicitud = buSolicitudRecursoDetalle.GetMany(x => x.SolicitudRecursoId.Equals(solicitud.Id));
                        if (detallesSolicitud == null)
                        {
                            continue;
                        }
                        {
                            solicitud.Recursos = detallesSolicitud.ToList();
                            foreach (var detalle in solicitud.Recursos)
                            {
                                detalle.Recurso           = buRecurso.GetById(detalle.RecursoId);
                                detalle.QuantityAvailable = buAlmacenRecurso.Get(x => x.AlmacenId.Equals(1) && x.RecursoId.Equals(detalle.RecursoId)).StockAvailable;
                                detalle.QuantityToAssign  = (detalle.QuantityAvailable > detalle.QuantityPending) ? detalle.QuantityPending : detalle.QuantityAvailable;
                            }
                        }
                    }
                }
            }

            return(proyectos);
        }