Example #1
0
 private function GetFilterConditionAsSQL(Dataset $dataset, FilterCondition $filter)
 {
     if ($filter->GetValue(0) == '' && $filter->GetDisplayValue() != '') {
         $newFilter = new FilterCondition($dataset->IsLookupFieldByPrimaryName($filter->GetFieldName()), $filter->GetOperator(), $filter->GetDisplayValue());
         $legacyFilter = $this->CreateLegacyFilter($newFilter);
         return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($newFilter->GetFieldName()));
     } else {
         $legacyFilter = $this->CreateLegacyFilter($filter);
         return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($filter->GetFieldName()));
     }
     /*return StringUtils::Format('(%s %s %s)',
           $filter->GetFieldName(),
           $this->GetConditionOperatorAsSQL($filter->GetOperator()),
           $this->GetFieldValueAsSQL($filter->GetFieldName(), $filter->GetValue(0))
       );*/
 }
 private function GetFilterConditionAsSQL(Dataset $dataset, FilterCondition $filter)
 {
     if (count($filter->GetValues()) == 0 && count($filter->GetDisplayValues()) > 0) {
         $newFilter = new FilterCondition($dataset->IsLookupFieldByPrimaryName($filter->GetFieldName()), $filter->GetOperator(), $filter->GetDisplayValue(0));
         $legacyFilter = $this->CreateLegacyFilter($newFilter);
     } else {
         $legacyFilter = $this->CreateLegacyFilter($filter);
     }
     return $this->legacyGenerator->CreateCondition($legacyFilter, $dataset->GetFieldInfoByName($filter->GetFieldName()));
 }
Example #3
0
 /**
  * @return mixed
  * @throws InvalidFilterException
  * @throws UnknownColumnException
  * @throws UnknownFilterException
  */
 protected function filterData()
 {
     try {
         $filters = array();
         foreach ($this->filter as $name => $value) {
             if (!$this->columnExists($name)) {
                 throw new UnknownColumnException("Neexistujúci stĺpec {$name}");
             }
             if (!$this['columns-' . $name]->hasFilter()) {
                 throw new UnknownFilterException("Neexistujúcí filter pre stĺpec {$name}");
             }
             $type = $this['columns-' . $name]->getFilterType();
             $filter = FilterCondition::prepareFilter($value, $type);
             if (method_exists("\\NiftyGrid\\FilterCondition", $filter["condition"])) {
                 $filter = call_user_func("\\NiftyGrid\\FilterCondition::" . $filter["condition"], $filter["value"]);
                 if (!empty($this['gridForm'][$this->name]['filter'][$name])) {
                     $filter["column"] = $name;
                     if (!empty($this['columns-' . $filter["column"]]->tableName)) {
                         $filter["column"] = $this['columns-' . $filter["column"]]->tableName;
                     }
                     $filters[] = $filter;
                 } else {
                     throw new InvalidFilterException("Neplatný filter");
                 }
             } else {
                 throw new InvalidFilterException("Neplatný filter");
             }
         }
         return $this->dataSource->filterData($filters);
     } catch (UnknownColumnException $e) {
         $this->flashMessage($e->getMessage(), "grid-error");
         $this->redirect("this", array("filter" => NULL));
     } catch (UnknownFilterException $e) {
         $this->flashMessage($e->getMessage(), "grid-error");
         $this->redirect("this", array("filter" => NULL));
     }
 }