findValidOrderQuery(); $query->andWhere('e.user = :user'); $query->leftJoin('e.orderReductionCredits', 'orc'); $query->andWhere('orc.reductionCredit = :reductionCredit'); $query->setParameter('reductionCredit', $reductionCredit); $query->setParameter('user', $user); return $query->getQuery()->getResult(); } public function findValidOrderQuery(){ $query = $this->findByMerchantQuery(); $query->leftJoin('e.orderStatus', 'os'); $query->andWhere('os.alias IN (:alias)'); $query->setParameter('alias', $this->statusAliasAsValid); return $query; } public function findCartCurrent($params) { $query = $this->findByMerchantQuery() ; if(isset($params['user'])) { $query->andWhere('e.user = :user')->setParameter('user', $params['user']) ; } if(isset($params['visitor'])) { $query->andWhere('e.visitor = :visitor')->setParameter('visitor', $params['visitor']) ; } $query->leftJoin('e.orderStatusHistories', 'orderStatusHistories') ->andWhere('SIZE(e.orderStatusHistories) = 0') ; $results = $query->getQuery()->getResult() ; if($results) { return $results[0] ; } return null ; } public function findAllBy($params = []) { $query = $this->findByMerchantQuery() ; if(isset($params['dateStart'])) { $query->andWhere('e.createdAt >= :dateStart')->setParameter('dateStart', $params['dateStart']) ; } if(isset($params['dateEnd'])) { $query->andWhere('e.createdAt <= :dateEnd')->setParameter('dateEnd', $params['dateEnd']) ; } if(!isset($params['isCart'])) { $query = $this->filterOrderCart($query) ; } if(isset($params['user'])) { $query->andWhere('e.user = :user')->setParameter('user', $params['user']) ; } $query->orderBy('e.id', 'DESC') ; return $query->getQuery()->getResult() ; } public function findAllByDateStartEnd($dateStart, $dateEnd) { $query = $this->findByMerchantQuery() ->andWhere('e.createdAt >= :dateStart') ->setParameter('dateStart', $dateStart) ->andWhere('e.createdAt <= :dateEnd') ->setParameter('dateEnd', $dateEnd); $this->filterOrderCart($query) ; return $query->getQuery()->getResult() ; } public function filterOrderCart($query, $isCart = false) { $operator = $isCart ? '=' : '>' ; return $query->leftJoin('e.orderStatusHistories', 'orderStatusHistories') ->andWhere('SIZE(e.orderStatusHistories) '.$operator.' 0') ; } //getValidOrders() }