public function afterSave($insert, $changedAttributes) { $reviews = \common\models\Reviews::find(); $transaction = new \yii\db\Query(); $id = $this->review_trainer_id; $rating_count = $reviews->where(['review_trainer_id' => $id])->count(); $rating_count_positive = $reviews->where(['review_trainer_id' => $id])->andWhere('review_rating > 3')->count(); $amount_sum = $transaction->from('transaction_history')->where("`class_id` IN (SELECT `class_id` FROM `classes` WHERE `class_trainer_id` = " . abs((int) $id) . ")")->sum('amount'); $rating_count_positive = @round($rating_count_positive / $rating_count * 100); $status = (int) $amount_sum > 1000 && $rating_count_positive >= 75 ? 'Gold' : 'Silver'; PaymentInformations::updateAll(['payment_user_status' => $status], ['payment_user_id' => [$id]]); }
public function getColor() { return $customer = PaymentInformations::find()->select('payment_user_color,payment_image')->where(['payment_user_id' => $this->id])->one(); }
public function actionGetUserStatusMax() { $model = new $this->modelClass(); $user = $model->findIdentityByAccessToken(\Yii::$app->request->get('access-token')); if ($user) { $data = \common\models\PaymentInformations::findOne(['payment_user_id' => $user->user_id]); $status = 'max_sum_for_' . strtolower($data->payment_user_status); $status = (int) AdminData::findOne(['admin_data_param' => $status])->admin_data_value; return ApiHelper::successResponse($status); } return ApiHelper::errorResponse(["Incorrect Access."], 422); }
private function getReceiver() { return $this->hasOne(PaymentInformations::className(), ['payment_user_id' => 'receiver_id'])->select('payment_image,payment_first_name,payment_last_name,payment_bussines_name')->where(['payment_user_id' => $this->receiver_id])->all(); }