public function search($params) { $query = Message::find()->innerJoinWith(['region' => function ($q) { /* @var \yii\db\ActiveQuery $q */ $q->onCondition([Region::tableName() . '.id' => \Yii::$app->user->identity->currentRegion]); }], false)->innerJoinWith(['payments', 'client', 'category'])->orderBy([Message::tableName() . '.create_dt' => SORT_DESC])->distinct(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 50, 'pageSizeParam' => 'inpage']]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } switch ($this->timeMark) { case self::TIME_ALL: $query->active(); break; case self::TIME_CURRENT: $query->active()->andWhere([Payment::tableName() . '.num' => Payment::currentNumber()]); break; case self::TIME_FUTURE: $query->active()->andWhere(['>', Payment::tableName() . '.num', Payment::currentNumber()]); break; case self::TIME_PREVIOUS: $query->active()->andWhere(['<', Payment::tableName() . '.num', Payment::currentNumber()]); break; case self::TIME_REMOVED: $query->deleted(); break; } if (!empty($this->subject)) { switch ($this->type) { case self::TYPE_PHONE: $query->andWhere(['LIKE', Phone::tableName() . '.number', $this->subject])->orWhere(['LIKE', Message::tableName() . '.phone', $this->subject]); break; case self::TYPE_CLIENT: $query->andWhere(['LIKE', Client::tableName() . '.name', $this->subject]); break; case self::TYPE_NUM: $query->andWhere([Payment::tableName() . '.num' => $this->subject]); break; } } return $dataProvider; }
public function actionAd_edit() { $id = \Yii::$app->request->get('id'); $model = AdForm::find($id); if (!$model) { $this->redirect(Url::previous()); } if ($model->load(\Yii::$app->request->post()) && ($msg = $model->save())) { Yii::$app->session->set('search', AdsGrid::SEARCH_CLIENT . ':' . $msg->client->name); Yii::$app->user->identity->cookies->lastClientId = $model->clientId; $this->redirect(['board/ads']); } return $this->render('addAd', ['model' => $model, 'currentNumber' => Payment::currentNumber() + (date('N_H:i') > '5_16:00' ? 1 : 0)]); }
public function rules() { return [[['number', 'region', 'submitter'], 'required'], [['region'], 'integer'], ['submitter', 'default', 'value' => self::SUBMITTER_ALL], ['number', 'default', 'value' => Payment::currentNumber()]]; }