コード例 #1
0
 public function actionAd_add()
 {
     $model = new AdForm();
     if ($model->load(\Yii::$app->request->post())) {
         $msg = $model->save();
         if ($msg) {
             Yii::$app->user->identity->cookies->lastClientId = $model->clientId;
             Yii::$app->session->set('lastClient', $msg->client->id);
             Yii::$app->session->set('search', AdsGrid::SEARCH_CLIENT . ':' . $msg->client->name);
             $this->redirect(['board/ads']);
         }
     }
     //Yii::$app->session->remove('lastClient');
     if (!Yii::$app->session->get('lastClient') && ($cl = Client::find()->where(['region_id' => Yii::$app->user->identity->currentRegion])->andWhere(['like', 'name', 'безымянный'])->one())) {
         Yii::$app->session->set('lastClient', $cl->id);
     }
     return $this->render('addAd', ['model' => $model, 'currentNumber' => Payment::currentNumber() + (date('N_H:i') > '5_16:00' ? 1 : 0)]);
 }
コード例 #2
0
 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;
 }