/** * @param string $operator * @param string $value * @param string|null $locale * @param string|null $scope */ protected function applyFilter($operator, $value, $locale = null, $scope = null) { $joinAlias = $this->getUniqueAlias('filterCompleteness'); $field = $joinAlias . '.ratio'; $util = new CompletenessJoin($this->qb); $util->addJoins($joinAlias, $locale, $scope); $this->qb->andWhere($this->prepareCriteriaCondition($field, $operator, $value)); }
/** * {@inheritdoc} */ public function addFieldSorter($field, $direction, $locale = null, $scope = null) { $alias = 'sorterCompleteness'; $util = new CompletenessJoin($this->qb); $util->addJoins($alias, $locale, $scope); $this->qb->addOrderBy($alias . '.ratio', $direction); $idField = $this->qb->getRootAlias() . '.id'; $this->qb->addOrderBy($idField); return $this; }
/** * {@inheritdoc} */ public function addFieldFilter($field, $operator, $value, $locale = null, $scope = null, $options = []) { $this->checkValue($field, $value, $locale, $scope); $joinAlias = $this->getUniqueAlias('filterCompleteness'); $field = $joinAlias . '.ratio'; $util = new CompletenessJoin($this->qb); $util->addJoins($joinAlias, $locale, $scope); $this->qb->andWhere($this->prepareCriteriaCondition($field, $operator, $value)); return $this; }
/** * {@inheritdoc} */ public function apply(DatasourceInterface $datasource, DatagridConfiguration $configuration) { $qb = $datasource->getQueryBuilder(); $joinAlias = 'selectCompleteness'; $util = new CompletenessJoin($qb); $locale = $configuration->offsetGetByPath('[source][locale_code]'); $scope = $configuration->offsetGetByPath('[source][scope_code]'); $util->addJoins($joinAlias, $locale, $scope); $qb->addSelect($joinAlias . '.ratio AS ratio'); }