/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Financy::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     //если пользователь НЕ админ, показываем только его финансы
     //if user not admin
     if (Yii::$app->user->identity->isAdmin()) {
         $query->joinWith(['user']);
         //            $query->andFilterWhere([
         //                'user_id' => Yii::$app->user->id,
         //            ]);
     } else {
         $query->andFilterWhere(['user_id' => Yii::$app->user->id]);
     }
     $query->orderBy('financy.id DESC');
     if (!$this->validate()) {
         // uncomment the following line if you do not want to any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'type_operation' => $this->type_operation, 'sum_operation' => $this->sum_operation, 'created_at' => $this->created_at]);
     return $dataProvider;
 }
Exemple #2
0
 public function getTypeOperation()
 {
     $list = Financy::getTypeOperations();
     return $list[$this->type_operation];
 }
 public function TaskEnd()
 {
     //обновим запись по заданию и укажем файл результата по ней
     $sql = 'UPDATE ' . Tasks::tableName() . ' SET status=:status, file_result=:file, complete_at=:complete_at WHERE id=:id';
     $query = \Yii::$app->db->createCommand($sql);
     //спишим с баланса юзера сумма за выборку
     $query->bindValues([':status' => Tasks::STATUS_COMPLETE, ':id' => $this->task->id, ':file' => $this->task->link . '.txt', ':complete_at' => time()]);
     $query->execute();
     //запишим операцию списания денег в лог фин. операций
     $financy = new Financy();
     $financy->sum_operation = \Yii::$app->params['task.cost'];
     $financy->type_operation = Financy::TYPE_OPERATION_MINUS;
     $financy->user_id = $this->task->user_id;
     $financy->balance_user_after_operation = (int) ($this->task->user->balance - \Yii::$app->params['task.cost']);
     if ($financy->validate()) {
         $financy->save();
         //обновим баланс юзера
         User::minusBalance($financy->user_id);
     } else {
         print_r($financy->errors) . PHP_EOL;
         $this->log('error');
     }
     \Yii::$app->get('mutex')->release($this->tasks_mutex_name);
 }
 /**
  * @param integer $id
  * @return Financy
  * @throws \yii\web\BadRequestHttpException
  */
 protected function loadModel($id)
 {
     $model = Financy::findOne($id);
     if ($model === null) {
         throw new BadRequestHttpException();
     }
     return $model;
 }
Exemple #5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getFinancy()
 {
     return $this->hasMany(Financy::className(), ['id' => 'user_id']);
 }