/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = User::find()->joinWith('profile.region');
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $dataProvider->sort->attributes['region'] = ['asc' => [Region::tableName() . '.name' => SORT_ASC], 'desc' => [Region::tableName() . '.name' => SORT_DESC]];
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['status' => $this->status, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, Region::tableName() . '.id' => $this->region]);
     $query->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'auth_key', $this->auth_key])->andFilterWhere(['like', 'password_hash', $this->password_hash])->andFilterWhere(['like', 'password_reset_token', $this->password_reset_token])->andFilterWhere(['like', 'email', $this->email]);
     return $dataProvider;
 }
 public function excel($params)
 {
     $query = Mon1str::find()->joinWith('monitoring1.user.profile.region');
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => array('pageSize' => 10000)]);
     $dataProvider->sort->attributes['region'] = ['asc' => [Region::tableName() . '.name' => SORT_ASC], 'desc' => [Region::tableName() . '.name' => SORT_DESC]];
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     //
     $query->andFilterWhere([Monitoring1::tableName() . '.date' => $this->date, Region::tableName() . '.id' => $this->region]);
     return $dataProvider;
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     if (Yii::$app->user->can('admin')) {
         $query = WeekMon1::find()->joinWith('user.profile.region');
     } else {
         $query = WeekMon1::find()->joinWith('user.profile.region')->where([Monitoring1::tableName() . '.user_id' => Yii::$app->user->id]);
     }
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $dataProvider->sort->attributes['region'] = ['asc' => [Region::tableName() . '.name' => SORT_ASC], 'desc' => [Region::tableName() . '.name' => SORT_DESC]];
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     //
     $query->andFilterWhere(['user_id' => $this->user_id, WeekMon1::tableName() . '.startDate' => $this->startDate, Region::tableName() . '.id' => $this->region, WeekMon1::tableName() . '.status' => $this->status]);
     //        $query->andFilterWhere(['like', 'date', $this->date]);
     return $dataProvider;
 }
 public function searchAll($params)
 {
     if (Yii::$app->user->can('admin')) {
         $query = Monitoring2::find()->joinWith('user.profile.region');
     } else {
         $query = Monitoring2::find()->joinWith('user.profile.region')->where([Monitoring2::tableName() . '.user_id' => Yii::$app->user->id]);
     }
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $query->all();
     }
     $query->andFilterWhere(['user_id' => $this->user_id, 'month_id' => $this->month_id, 'year_id' => $this->year_id, 'date' => $this->date, Region::tableName() . '.id' => $this->region, Monitoring2::tableName() . '.status' => $this->status]);
     return $query->all();
 }
示例#5
0
 public function getAccessableOfficesWhereUserIs($role)
 {
     switch ($role) {
         case self::MANAGER:
             return $this->offices;
             break;
         case self::COMDIR:
             /* Коммерческий директор имеет доступ к офисам своего региона */
             $offices = [];
             $regions = Region::find(['user_id' => 'id'])->innerJoin('questionlist_users_to_regions utr', 'utr.region_id=' . Region::tableName() . '.id', ['utr.user_id' => $this->id])->with('offices')->all();
             if (!$regions) {
                 return;
             }
             foreach ($regions as $region) {
                 $offices = array_merge($offices, $region->offices);
             }
             return $offices;
             break;
         case self::ADMIN:
             /* Админ имеет доступ к всем офисам */
             if (!$this->isAdmin) {
                 return;
             }
             return Office::find()->all();
             break;
     }
 }