Пример #1
0
 /**
  * @param User $client
  * @return mixed
  */
 public function findNotCompletedInitRebalanceWorkflow(User $client)
 {
     /** @var QueryBuilder $qb */
     $qb = $this->repository->createQueryBuilder('w');
     $qb->where('w.client = :client')->andWhere('w.message_code = :message_code')->andWhere('w.status != :status')->setMaxResults(1)->setParameters(array('client' => $client, 'message_code' => Workflow::MESSAGE_CODE_PAPERWORK_INITIAL_REBALANCE, 'status' => Workflow::STATUS_COMPLETED));
     return $qb->getQuery()->getOneOrNullResult();
 }
 /**
  * @param string $username
  *
  * @return mixed
  */
 public function loadUserByUsername($username)
 {
     $q = $this->userRepository->createQueryBuilder('u')->where('u.username = :username OR u.email = :email')->setParameter('username', $username)->setParameter('email', $username)->getQuery();
     try {
         $user = $q->getSingleResult();
     } catch (NoResultException $e) {
         $message = sprintf('Unable to find an active admin AcmeDemoBundle:User object identified by "%s".', $username);
         throw new UsernameNotFoundException($message, 0, $e);
     }
     return $user;
 }
 /**
  * @param Criteria $criteria
  */
 public function search(Criteria $criteria)
 {
     $qb = $this->repository->createQueryBuilder('e');
     $this->buildWhereClause($qb, $criteria);
     $qb->select();
     if ($criteria->getOrderBy()) {
         $qb->orderBy('e.' . $criteria->getOrderBy(), $criteria->getOrderDir());
     }
     if ($criteria->getOffset()) {
         $qb->setFirstResult($criteria->getOffset());
     }
     if ($criteria->getLimit()) {
         $qb->setMaxResults($criteria->getLimit());
     }
     return $qb->getQuery()->execute();
 }
Пример #4
0
 /**
  * {@inheritdoc}
  */
 public function loadUserByUsername($username)
 {
     $q = $this->userRepository->createQueryBuilder('u')->select('u, r')->leftJoin('u.role', 'r')->where('u.username = :username OR u.email = :username')->setParameter('username', $username)->getQuery();
     $user = $q->getOneOrNullResult();
     if (empty($user)) {
         $message = sprintf('Unable to find an active admin MauticUserBundle:User object identified by "%s".', $username);
         throw new UsernameNotFoundException($message, 0);
     }
     //load permissions
     if ($user->getId()) {
         $permissions = $this->session->get('mautic.user.permissions', false);
         if ($permissions === false) {
             $permissions = $this->permissionRepository->getPermissionsByRole($user->getRole());
             $this->session->set('mautic.user.permissions', $permissions);
         }
         $user->setActivePermissions($permissions);
     }
     return $user;
 }
 /**
  * @param Criteria $criteria
  */
 public function search(Criteria $criteria)
 {
     $qb = $this->repository->createQueryBuilder();
     $this->buildWhereClause($qb, $criteria);
     $qb->select();
     if ($criteria->getOrderBy()) {
         $qb->sort($criteria->getOrderBy(), $criteria->getOrderDir());
     }
     if ($criteria->getOffset()) {
         $qb->skip($criteria->getOffset());
     }
     if ($criteria->getLimit()) {
         $qb->limit($criteria->getLimit());
     }
     $cursor = $qb->getQuery()->execute();
     $results = array();
     foreach ($cursor as $value) {
         $results[] = $value;
     }
     return $results;
 }
Пример #6
0
 /**
  * {@inheritDoc}
  *
  * @param \Symfony\Component\HttpFoundation\Request $request Request object
  *
  * @return array
  */
 public function findAll(Request $request)
 {
     $pageNumber = $request->query->get('page', 1);
     $numberPerPage = (int) $request->query->get('perPage', 10);
     $startAt = ($pageNumber - 1) * $numberPerPage;
     /** @var \Doctrine\ODM\MongoDB\Query\Builder $queryBuilder */
     $queryBuilder = $this->repository->createQueryBuilder();
     // *** do we have an RQL expression, do we need to filter data?
     $filter = $request->query->get('q');
     if (!empty($filter)) {
         // set filtering attributes on request
         $request->attributes->set('filtering', true);
         $queryBuilder = $this->doRqlQuery($queryBuilder, $filter);
     } else {
         // @todo [lapistano]: seems the offset is missing for this query.
         /** @var \Doctrine\ODM\MongoDB\Query\Builder $qb */
         $queryBuilder->find($this->repository->getDocumentName());
     }
     // define offset and limit
     if (!array_key_exists('skip', $queryBuilder->getQuery()->getQuery())) {
         $queryBuilder->skip($startAt);
     }
     if (!array_key_exists('limit', $queryBuilder->getQuery()->getQuery())) {
         $queryBuilder->limit($numberPerPage);
     } else {
         $numberPerPage = (int) $queryBuilder->getQuery()->getQuery()['limit'];
     }
     /**
      * add a default sort on id if none was specified earlier
      *
      * not specifying something to sort on leads to very weird cases when fetching references
      */
     if (!array_key_exists('sort', $queryBuilder->getQuery()->getQuery())) {
         $queryBuilder->sort('_id');
     }
     // run query
     $query = $queryBuilder->getQuery();
     $records = array_values($query->execute()->toArray());
     $totalCount = $query->count();
     $numPages = (int) ceil($totalCount / $numberPerPage);
     if ($numPages > 1) {
         $request->attributes->set('paging', true);
         $request->attributes->set('numPages', $numPages);
         $request->attributes->set('perPage', $numberPerPage);
     }
     return $records;
 }
Пример #7
0
 /**
  * @param $item
  * @param  \DateTime $date
  * @return bool
  */
 public function isAvailableForDate($item, \DateTime $date)
 {
     $qb = $this->repository->createQueryBuilder('b');
     $results = $qb->select('b.id')->where('b.start <= :date AND b.end >= :date')->andWhere('b.item = :item')->setParameter('item', $item)->setParameter('date', $date)->getQuery()->getResult();
     return count($results) === 0;
 }
Пример #8
0
 /**
  * Get a list of Citations.
  *
  * @param int $limit  the limit of the result
  * @param int $offset starting from the offset
  *
  * @return array
  */
 public function all($limit = 5, $offset = 0)
 {
     return $this->repository->createQueryBuilder('c')->join('c.articles', 'a')->where('a.id = :articleId')->setParameter('articleId', $this->getArticle()->getId())->setFirstResult($offset)->setMaxResults($limit)->getQuery()->getResult();
 }
Пример #9
0
 /**
  * @inheritdoc
  */
 public function createQuery($data)
 {
     $qb = $this->repository->createQueryBuilder($this->alias);
     $query = $qb->getQuery();
     return $query;
 }
Пример #10
0
 /**
  * @return \Kontuak\PeriodicalMovement\Collection
  */
 public function collection()
 {
     return new Collection($this->repository->createQueryBuilder('pm'));
 }
Пример #11
-5
 public function findAllPublicWithQuery($query, $page, $itemPerPage)
 {
     $publicCriteria = new Criteria();
     $publicCriteria->where($publicCriteria->expr()->eq('r.published', true));
     $queryCriteria = new Criteria();
     $queryCriteria->where($queryCriteria->expr()->contains('r.title', $query));
     $queryCriteria->orWhere($queryCriteria->expr()->contains('r.content', $query));
     $orderCriteria = new Criteria();
     $orderCriteria->orderBy(['r.dateUpdated' => 'DESC']);
     /** @var QueryBuilder $queryBuilder */
     $queryBuilder = $this->objectRepository->createQueryBuilder('r');
     $queryBuilder->addCriteria($publicCriteria);
     $queryBuilder->addCriteria($queryCriteria);
     $queryBuilder->addCriteria($orderCriteria);
     $queryBuilder->setFirstResult(($page - 1) * $itemPerPage);
     $queryBuilder->setMaxResults($itemPerPage);
     return new Paginator($queryBuilder);
 }