private function CreateLegacyFilter(FilterCondition $filterCondition)
 {
     switch ($filterCondition->GetOperator()) {
         case FilterConditionOperator::IsBetween:
             return new BetweenFieldFilter($filterCondition->getValue(0), $filterCondition->getValue(1));
         case FilterConditionOperator::IsNotBetween:
             return new NotPredicateFilter(new BetweenFieldFilter($filterCondition->getValue(0), $filterCondition->getValue(1)));
         case FilterConditionOperator::Contains:
             return new FieldFilter('%' . $filterCondition->GetValue(0) . '%', 'ILIKE');
         case FilterConditionOperator::DoesNotContain:
             return new NotPredicateFilter(new FieldFilter('%' . $filterCondition->GetValue(0) . '%', 'ILIKE'));
         case FilterConditionOperator::BeginsWith:
             return new FieldFilter($filterCondition->GetValue(0) . '%', 'ILIKE');
         case FilterConditionOperator::EndsWith:
             return new FieldFilter('%' . $filterCondition->GetValue(0), 'ILIKE');
         case FilterConditionOperator::IsNotLike:
             return new NotPredicateFilter(new FieldFilter($filterCondition->GetValue(0), 'ILIKE'));
         case FilterConditionOperator::IsBlank:
             return new IsBlankFieldFilter();
         case FilterConditionOperator::IsNotBlank:
             return new NotPredicateFilter(new IsBlankFieldFilter());
         default:
             return new FieldFilter($filterCondition->GetValue(0), $this->GetConditionOperatorName($filterCondition->GetOperator()));
     }
 }
Esempio n. 2
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))
       );*/
 }