/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Data::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $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(['id' => $this->id, 'first_p' => $this->first_p, 'sec_p' => $this->sec_p, 'quantity' => $this->quantity]);
     $query->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'meta_k', $this->meta_k])->andFilterWhere(['like', 'meta_d', $this->meta_d])->andFilterWhere(['like', 'cat', $this->cat])->andFilterWhere(['like', 'text', $this->text])->andFilterWhere(['like', 'image', $this->image]);
     return $dataProvider;
 }
 public function actionComplete()
 {
     $id = Yii::$app->request->get('id');
     $model = Orders::findOne($id);
     if ($model->complite == 1) {
         $complite = 2;
     } else {
         $complite = 1;
     }
     $products = unserialize($model->product);
     foreach ($products as $key => $val) {
         $q = Data::find()->where(['title' => $val['title']])->one();
         if ($complite == 2) {
             $q->quantity = $q->quantity - $val['quantity'];
         } else {
             $q->quantity = $q->quantity + $val['quantity'];
         }
         $q->update();
     }
     $model->complite = $complite;
     $model->update();
 }