Exemplo n.º 1
0
 /**
  * Применение кастомной логики к объекту umiSelection
  *
  * @param umiSelection $selection Объект umiSelection
  */
 public function applyCustomCountFilters(&$selection)
 {
     $arCustomFilters = $this->customLogic->filters();
     $oType = umiObjectTypesCollection::getInstance()->getType($this->objectsTypeId);
     if (!$oType) {
         return;
     }
     foreach ($arCustomFilters as $arCustomFilter) {
         $iFieldId = $oType->getFieldId($arCustomFilter[0]);
         $sOperator = $arCustomFilter[1];
         $value = $arCustomFilter[2];
         switch ($sOperator) {
             case "eq":
                 $selection->addPropertyFilterEqual($iFieldId, $value);
                 break;
             case "noteq":
                 $selection->addPropertyFilterNotEqual($iFieldId, $value);
                 break;
             case "null":
                 $selection->addPropertyFilterIsNull($iFieldId);
                 break;
             case "notnull":
                 $selection->addPropertyFilterIsNotNull($iFieldId);
                 break;
             case "gt":
                 $selection->addPropertyFilterMore($iFieldId, $value);
                 break;
             case "lt":
                 $selection->addPropertyFilterLess($iFieldId, $value);
                 break;
             case "like":
                 $selection->addPropertyFilterLike($iFieldId, $value);
                 break;
         }
     }
 }