You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.3 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
/* For licensing terms, see /license.txt */
 | 
						|
 | 
						|
namespace Chamilo\PluginBundle\Zoom;
 | 
						|
 | 
						|
use Chamilo\UserBundle\Entity\User;
 | 
						|
use DateInterval;
 | 
						|
use DateTime;
 | 
						|
use Doctrine\ORM\EntityRepository;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class RegistrantEntityRepository.
 | 
						|
 */
 | 
						|
class RegistrantRepository extends EntityRepository
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Returns the upcoming meeting registrations for the given user.
 | 
						|
     *
 | 
						|
     * @param User $user
 | 
						|
     *
 | 
						|
     * @return array|Registrant[]
 | 
						|
     */
 | 
						|
    public function meetingsComingSoonRegistrationsForUser($user)
 | 
						|
    {
 | 
						|
        $start = new DateTime();
 | 
						|
        $end = new DateTime();
 | 
						|
        $end->add(new DateInterval('P7D'));
 | 
						|
        $meetings = $this->getEntityManager()->getRepository(Meeting::class)->periodMeetings($start, $end);
 | 
						|
 | 
						|
        return $this->findBy(['meeting' => $meetings, 'user' => $user]);
 | 
						|
    }
 | 
						|
 | 
						|
    public function findByMeetingPaginated(Meeting $meeting, int $from, int $limit, string $column, string $direction)
 | 
						|
    {
 | 
						|
        $queryBuilder = $this->createQueryBuilder('r')
 | 
						|
            ->join('r.user', 'u')
 | 
						|
            ->leftJoin('r.signature', 's')
 | 
						|
            ->where('r.meeting = :meeting')
 | 
						|
            ->setFirstResult($from)
 | 
						|
            ->setMaxResults($limit)
 | 
						|
            ->orderBy($column, $direction)
 | 
						|
        ;
 | 
						|
 | 
						|
        $queryBuilder->setParameter('meeting', $meeting);
 | 
						|
 | 
						|
        return $queryBuilder->getQuery()->getResult();
 | 
						|
    }
 | 
						|
}
 | 
						|
 |