/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = MemberStack::find()->joinWith(['member' => function ($query) {
         $query->from(['member' => 'member']);
     }])->joinWith(['stack' => function ($query) {
         $query->from(['stack' => 'stack']);
     }])->orderBy(['created_at' => SORT_DESC]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!Yii::$app->user->identity->isAdmin()) {
         $this->member_id = Yii::$app->user->identity->id;
     }
     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, 'member_id' => $this->member_id, 'stack_id' => $this->stack_id, 'sell_volume' => $this->sell_volume, 'lock_volume' => $this->lock_volume, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at])->andFilterWhere(['like', 'member.username', $this->membername])->andFilterWhere(['like', 'stack.code', $this->stackcode])->andFilterWhere(['like', 'stack.name', $this->stackname])->orderBy(['created_at' => SORT_DESC]);
     return $dataProvider;
 }
Esempio n. 2
0
 public static function getMemberStack($transaction, $calculeteVolume = true)
 {
     $volume = $transaction->volume;
     $member_id = $transaction->member_id;
     $stack_id = $transaction->stack_id;
     $model = MemberStack::find()->where(['=', 'member_id', $member_id])->andWhere(['=', 'stack_id', $stack_id])->one();
     if ($model && $model->id) {
         if ($calculeteVolume) {
             if ($transaction->type === 0) {
                 $model->lock_volume += $volume;
             } else {
                 $model->lock_volume -= $volume;
             }
         }
     } else {
         if ($transaction->type === 0) {
             $model = new MemberStack();
             $data = array('member_id' => $member_id, 'stack_id' => $stack_id, 'lock_volume' => $calculeteVolume ? $volume : 0, 'sell_volume' => 0);
             $model->load($data, '');
         }
     }
     return $model;
 }
Esempio n. 3
0
 public function getMemberStack($stack_id)
 {
     return MemberStack::find()->where(['member_id' => Yii::$app->user->identity->id, 'stack_id' => $stack_id])->one();
 }