/**
  * @param array $params
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Company::find()->from(['c' => self::tableName()])->joinWith(['user', 'ownership']);
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['attributes' => ['id', 'name', 'userName' => ['asc' => ['u.first_name' => SORT_ASC, 'u.last_name' => SORT_ASC], 'desc' => ['u.first_name' => SORT_DESC, 'u.last_name' => SORT_DESC]], 'ownershipName' => ['asc' => ['ot.name' => SORT_ASC], 'desc' => ['ot.name' => SORT_DESC]], 'edrpou']]]);
     $this->load($params);
     if (!$this->validate()) {
         return $dataProvider;
     }
     $query->andFilterWhere(['c.id' => $this->id, 'c.edrpou' => $this->edrpou]);
     $query->andFilterWhere(['like', 'c.name', $this->name])->andFilterWhere(['like', 'u.first_name', $this->userName])->orFilterWhere(['like', 'u.last_name', $this->userName])->andFilterWhere(['like', 'ot.name', $this->ownershipName]);
     return $dataProvider;
 }