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(); } }
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]); } }
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(); }
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]; }