示例#1
0
 private function getBookingsCount()
 {
     if ($this->actives_group === NULL) {
         return false;
     }
     if (!$this->actives_group) {
         return TransactionHistory::find()->where("`class_id` IN (SELECT `class_id` FROM `classes` WHERE `class_activity` = {$this->actives_id}) ")->andWhere("`status` != 'REFUNDED'")->count();
     } else {
         return TransactionHistory::find()->where("`class_id` IN \r\n\t\t\t\t\t(SELECT `class_id` FROM `classes` WHERE `class_activity` IN \r\n\t\t\t\t\t(SELECT `actives_id` FROM `actives` WHERE `actives_group_parent` = {$this->actives_id})\r\n\t\t\t\t\t)\r\n\t\t\t\t")->andWhere("`status` != 'REFUNDED'")->count();
     }
 }
示例#2
0
 public function actionUpdateList($id)
 {
     $this->checkAccess('admin_staff');
     $post = Yii::$app->request->post();
     $model = Classes::findOne((int) $id);
     $dataProvider = new ActiveDataProvider(['query' => TransactionHistory::find()->where(['class_id' => $id, 'transaction_dispute_status' => 'open'])]);
     if (!empty($post)) {
         switch ($post['Classes']['class_name']) {
             case 'approved':
                 TransactionHistory::setRefundDispute($model);
                 TransactionHistory::sendEmailStudentList($model);
                 break;
         }
         TransactionHistory::updateAll(['transaction_dispute_status' => $post['Classes']['class_name']], ['class_id' => $id, 'transaction_dispute_status' => 'open']);
         return $this->redirect('/dispute/list');
     } else {
         return $this->render('update-list', ['model' => $model, 'dataProvider' => $dataProvider]);
     }
 }
示例#3
0
 private function getBookingsCount()
 {
     return TransactionHistory::find()->where("`class_id` IN (SELECT `class_id` FROM `classes` WHERE `class_trainer_id` = {$this->user_id})")->andWhere("`status` != 'REFUNDED'")->count();
 }
示例#4
0
 public static function getTrainersRevenue()
 {
     $gross = 0;
     $gusers = [];
     $users_ids = [];
     $date_start = date('j M Y', strtotime('- ' . (date('N') + 7) . ' days'));
     $date_end = date('j M Y', strtotime('- ' . date('N') . ' days'));
     $period_start = strtotime($date_start) + 180 * 60;
     $period_end = strtotime($date_end) + 180 * 60;
     $users = Users::find()->all();
     foreach ($users as $val) {
         $uid = (int) $val['user_id'];
         $subquery = (new \yii\db\Query())->from('classes')->select('class_id')->where(['class_trainer_id' => $uid])->andWhere('`class_etime` >= :start AND `class_etime` <= :end', [":start" => $period_start, ":end" => $period_end])->one()['class_id'];
         if (!$subquery) {
             $transac = (int) TransactionHistory::find()->where("`transaction_dispute_status` = 'declined' AND `transaction_dispute_time` >= :start AND `transaction_dispute_time` <= :end", [":start" => $period_start, ":end" => $period_end])->sum('amount');
         } else {
             $transac = (int) TransactionHistory::find()->where("`class_id` IN ({$subquery})")->andWhere(['transaction_dispute_status' => 'close'])->orWhere("`transaction_dispute_status` = 'declined' AND `transaction_dispute_time` >= :start AND `transaction_dispute_time` <= :end", [":start" => $period_start, ":end" => $period_end])->sum('amount');
         }
         if ($transac) {
             $gross += $transac - $transac * (int) $val['user_fees'] / 100;
             @($users_ids[] = $uid);
             @($gusers[$uid] = $transac - $transac * (int) $val['user_fees'] / 100);
         }
     }
     $users = Users::find()->where(['in', 'user_id', $users_ids]);
     return ['gusers' => $gusers, 'gross' => $gross, 'users' => $users, 'date_start' => $date_start, 'date_end' => $date_end];
 }