public function getFilters($source)
 {
     $parentFilters = parent::getFilters($source);
     $filters = array();
     foreach ($parentFilters as $filter) {
         switch ($filter->getOperator()) {
             case self::OPERATOR_EQ:
             case self::OPERATOR_NEQ:
                 $value = $filter->getValue();
                 $filters[] = new Filter($filter->getOperator(), $value);
                 break;
             case self::OPERATOR_LIKE:
             case self::OPERATOR_NLIKE:
                 $value = $filter->getValue();
                 $filters[] = new Filter($filter->getOperator(), $value);
                 break;
             case self::OPERATOR_ISNULL:
                 $filters[] = new Filter(self::OPERATOR_ISNULL);
                 $filters[] = new Filter(self::OPERATOR_EQ, '');
                 $this->setDataJunction(self::DATA_DISJUNCTION);
                 break;
             case self::OPERATOR_ISNOTNULL:
                 $filters[] = new Filter(self::OPERATOR_ISNOTNULL);
                 $filters[] = new Filter(self::OPERATOR_NEQ, '');
                 break;
             default:
                 $filters[] = $filter;
         }
     }
     return $filters;
 }
Esempio n. 2
0
 public function getFilters($source)
 {
     $parentFilters = parent::getFilters($source);
     $filters = array();
     foreach ($parentFilters as $filter) {
         $filters[] = $filter->getValue() === null ? $filter : $filter->setValue(new \DateTime($filter->getValue()));
     }
     return $filters;
 }
Esempio n. 3
0
 public function getFilters($source)
 {
     $parentFilters = parent::getFilters($source);
     $filters = array();
     foreach ($parentFilters as $filter) {
         if ($source === "document") {
             $filters[] = $filter;
         } else {
             switch ($filter->getOperator()) {
                 case self::OPERATOR_EQ:
                 case self::OPERATOR_NEQ:
                     $filterValues = (array) $filter->getValue();
                     $value = '';
                     $counter = 1;
                     foreach ($filterValues as $filterValue) {
                         $len = strlen($filterValue);
                         $value .= 'i:' . $counter++ . ';s:' . $len . ':"' . $filterValue . '";';
                     }
                     $filters[] = new Filter($filter->getOperator(), 'a:' . count($filterValues) . ':{' . $value . '}');
                     break;
                 case self::OPERATOR_LIKE:
                 case self::OPERATOR_NLIKE:
                     $len = strlen($filter->getValue());
                     $value = 's:' . $len . ':"' . $filter->getValue() . '";';
                     $filters[] = new Filter($filter->getOperator(), $value);
                     break;
                 case self::OPERATOR_ISNULL:
                     $filters[] = new Filter(self::OPERATOR_ISNULL);
                     $filters[] = new Filter(self::OPERATOR_EQ, 'a:0:{}');
                     $this->setDataJunction(self::DATA_DISJUNCTION);
                     break;
                 case self::OPERATOR_ISNOTNULL:
                     $filters[] = new Filter(self::OPERATOR_ISNOTNULL);
                     $filters[] = new Filter(self::OPERATOR_NEQ, 'a:0:{}');
                     break;
                 default:
                     $filters[] = $filter;
             }
         }
     }
     return $filters;
 }
 public function getFilters($source)
 {
     $parentFilters = parent::getFilters($source);
     $filters = array();
     foreach ($parentFilters as $filter) {
         // Transforme in number for ODM
         $filters[] = $filter->getValue() === null ? $filter : $filter->setValue($filter->getValue() + 0);
     }
     return $filters;
 }
Esempio n. 5
0
 /**
  * @param array  $subColumn
  * @param Column \APY\DataGridBundle\Grid\Column\Column
  */
 protected function addReferencedColumnn(array $subColumn, Column $column)
 {
     $this->referencedColumns[$subColumn[0]][] = $subColumn[1];
     if ($column->isFiltered()) {
         $helperQuery = $this->manager->createQueryBuilder($this->referencedMappings[$subColumn[0]]);
         $filters = $column->getFilters('document');
         foreach ($filters as $filter) {
             $operator = $this->normalizeOperator($filter->getOperator());
             $value = $this->normalizeValue($filter->getOperator(), $filter->getValue());
             $helperQuery->field($subColumn[1])->{$operator}($value);
             $this->prepareQuery($this->query);
             $cursor = $helperQuery->getQuery()->execute();
             foreach ($cursor as $resource) {
                 if ($cursor->count() > 0) {
                     $this->query->select($subColumn[0]);
                 }
                 if ($cursor->count() == 1) {
                     $this->query->field($subColumn[0])->references($resource);
                 } else {
                     $this->query->addOr($this->query->expr()->field($subColumn[0])->references($resource));
                 }
             }
         }
     }
 }