src/Cpm/JovenesBundle/Entity/UsuarioRepository.php
/**
	 * Recibe un QueryBuilder con la entidad Usuario u, y un ciclo $ciclo. 
	 * Retorna el mismo QueryBuilder al cual le agrega dos subqueries para buscar usuarios (u) en proyectos del ciclo $ciclo, ya sean colaboradores o coordinadores de dichos proyectos
	 * 
	 */
Recibe un QueryBuilder con la entidad Usuario u, y un ciclo $ciclo.
Retorna el mismo QueryBuilder al cual le agrega dos subqueries para buscar usuarios (u) en proyectos del ciclo $ciclo, ya sean colaboradores o coordinadores de dichos proyectos
Recibe un QueryBuilder con la entidad Usuario u y un ciclo $ciclo . Retorna el mismo QueryBuilder al cual le agrega dos subqueries para buscar usuarios ( u ) en proyectos del ciclo $ciclo ya sean colaboradores o coordinadores de dichos proyectos
private function incluirCoordinadoresYColaboradores($qb,$ciclo) {
			 	$qb_colaboradores = $this->getEntityManager()->createQueryBuilder();
			 	$qb_coordinadores = $this->getEntityManager()->createQueryBuilder();
			 	$qb_colaboradores->add('select','colaboradores')->add('from','CpmJovenesBundle:Proyecto proyecto')
						 	->innerJoin('proyecto.colaboradores','colaboradores')
						 	->innerJoin('proyecto.ciclo','ciclo1')->andWhere('ciclo1 = :ciclo');
				$qb_coordinadores->add('select','coordinadores')->add('from','CpmJovenesBundle:Proyecto proyecto2')
						 	->innerJoin('proyecto2.coordinador','coordinadores')
						 	->innerJoin('proyecto2.ciclo','ciclo2')->andWhere('ciclo2 = :ciclo');
			 	$qb->orWhere($qb->expr()->in('u',$qb_coordinadores->getDQL()))->setParameter('ciclo',$ciclo);
			 	$qb->orWhere($qb->expr()->in('u',$qb_colaboradores->getDQL()));
			 	return $qb;
	}
private function incluirCoordinadoresYColaboradores ( $ qb , $ ciclo ) { $ qb_colaboradores = $ this -> getEntityManager ( ) -> createQueryBuilder ( ) ; $ qb_coordinadores = $ this -> getEntityManager ( ) -> createQueryBuilder ( ) ; $ qb_colaboradores -> add ( 'select' , 'colaboradores' ) -> add ( 'from' , 'CpmJovenesBundle:Proyecto proyecto' ) -> innerJoin ( 'proyecto.colaboradores' , 'colaboradores' ) -> innerJoin ( 'proyecto.ciclo' , 'ciclo1' ) -> andWhere ( 'ciclo1 = :ciclo' ) ; $ qb_coordinadores -> add ( 'select' , 'coordinadores' ) -> add ( 'from' , 'CpmJovenesBundle:Proyecto proyecto2' ) -> innerJoin ( 'proyecto2.coordinador' , 'coordinadores' ) -> innerJoin ( 'proyecto2.ciclo' , 'ciclo2' ) -> andWhere ( 'ciclo2 = :ciclo' ) ; $ qb -> orWhere ( $ qb -> expr ( ) -> in ( 'u' , $ qb_coordinadores -> getDQL ( ) ) ) -> setParameter ( 'ciclo' , $ ciclo ) ; $ qb -> orWhere ( $ qb -> expr ( ) -> in ( 'u' , $ qb_colaboradores -> getDQL ( ) ) ) ; return $ qb ; }
Recibe un QueryBuilder con la entidad Usuario u, y un ciclo $ciclo.
Recibe un QueryBuilder con la entidad Usuario u y un ciclo $ciclo .
//NOTA: GUARDA CON PONER UN ANDWHERE despues de estos, porque se puede romper el query