public function actionStep3()
 {
     if (isFrontUserLoggedIn()) {
         $visit_code = Yii::app()->session['visit_code'];
         $visit_model = Visits::model()->find(array('condition' => 'visit_code = "' . $visit_code . '" '));
         $step3_model = new Step3();
         if (isset($_POST['Step3'])) {
             $step3_model->attributes = $_POST['Step3'];
             if ($step3_model->validate()) {
                 $donation_model = new Donation();
                 $donation_model->user_id = Yii::app()->session['user_id'];
                 $donation_model->visit_id = $visit_model->id;
                 $donation_model->mobile = '123456789';
                 $donation_model->solicitor_id = $visit_model->solicitor->id;
                 $donation_model->amount = $step3_model->amount;
                 $donation_model->mode = 'web';
                 $donation_model->short_note = $step3_model->message;
                 $donation_model->payment_status = 'pending';
                 $donation_model->reference_number = getToken(8);
                 $donation_model->validate();
                 $donation_model->save();
                 // calculating the debit amount to be inserted in the user_trans table
                 $user_id = Yii::app()->session['user_id'];
                 $user_balance = Users::model()->getUserBalance($user_id);
                 $user_model = Users::model()->findByPk($user_id);
                 $credit_limits = $user_model->credit_limits;
                 $actual_don_amt = $step3_model->amount;
                 //                    if ($actual_don_amt > $user_balance) {
                 //                        // deducting the user credit
                 //                        if ($user_balance > 0) {
                 //                            $from_user_credit = $actual_don_amt - $user_balance;
                 //                        } else {
                 //                            $from_user_credit = $actual_don_amt;
                 //                        }
                 //                        $final_user_credit = $credit_limits - $from_user_credit;
                 //                        $user_model->credit_limits = $final_user_credit;
                 //                        $user_model->validate();
                 //                        $user_model->save();
                 //                    }
                 // for storing in the user_trans table
                 $trans_model = new UserTrans();
                 $trans_model->tran_type = 'DONATION';
                 $trans_model->user_id = $donation_model->user_id;
                 $trans_model->debit = $actual_don_amt;
                 $trans_model->donation_id = $donation_model->id;
                 $trans_model->save();
                 unset(Yii::app()->session['visit_code']);
                 $this->redirect(array("/user/default/accountSummary"));
             }
         }
         $this->render('step3', array('visit_model' => $visit_model, 'step3_model' => $step3_model));
     } else {
         $this->redirect(array("/user"));
     }
 }
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Donation();
     if (isset($_GET['user'])) {
         $model->user_id = $_GET['user'];
     }
     if (isset($_GET['visit'])) {
         $model->visit_id = $_GET['visit'];
         $model->solicitor_id = Visits::model()->findByPk($model->visit_id)->solicitor_id;
     }
     $users_lists = BaseModel::getAll('Users');
     $users = array();
     foreach ($users_lists as $user) {
         $users[$user->id] = $user->first_name . ' ' . $user->last_name . '(' . $user->username . ')';
     }
     // $users = CHtml::listData(BaseModel::getAll('Users'),'id','username');
     $lists = BaseModel::getAll('Solicitor');
     $solicitors = array();
     foreach ($lists as $list) {
         $solicitors[$list->id] = $list->first_name . ' ' . $list->last_name . '(' . $list->solicitor_code . ')';
     }
     $visits = CHtml::listData(BaseModel::getAll('Visits'), 'id', 'visit_code');
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Donation'])) {
         $model->attributes = $_POST['Donation'];
         $model->reference_number = getToken(8);
         $model->validate();
         if (!empty($model->user_id)) {
             $user_id = $model->user_id;
             $user_balance = Users::model()->getUserBalance($user_id);
             $user_model = Users::model()->findByPk($user_id);
             $credit_limits = $user_model->credit_limits;
             $donation_amt = $model->amount;
             if ($user_balance >= 0) {
                 if ($user_balance < $donation_amt) {
                     $user_allowable_amount = $user_balance + $credit_limits;
                     if ($donation_amt > $user_allowable_amount) {
                         $model->addError('amount', "Sorry. The user has not the sufficient balance.");
                     }
                 }
             } else {
                 if ($user_balance < 0) {
                     $user_allowable_amount = $credit_limits - abs($user_balance);
                     if ($donation_amt > $user_allowable_amount) {
                         $model->addError('amount', "Sorry. The user has not the sufficient balance.");
                     }
                 }
             }
         }
         if (empty($model->errors)) {
             if ($model->save()) {
                 $trans = new UserTrans();
                 $trans->tran_type = 'DONATION';
                 $trans->user_id = $model->user_id;
                 $trans->debit = $model->amount;
                 $trans->donation_id = $model->id;
                 $trans->save();
                 $this->redirect(array('view', 'id' => $model->id));
             }
         }
     }
     $this->render('create', array('model' => $model, 'users' => $users, 'solicitors' => $solicitors, 'visits' => $visits));
 }