Ejemplo n.º 1
0
 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));
 }
	/**
	 * 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);
			if($model->save()){
				
				$user_balance = Users::model()->getUserBalance($model->user_id);
                $user_model = Users::model()->findByPk($model->user_id);
                $credit_limits = $user_model->credit_limits;

                if ($model->amount > $user_balance) {
                    // deducting the user credit
                    if ($user_balance > 0) {
                        $from_user_credit = $model->amount - $user_balance;
                    } else {
                        $from_user_credit = $model->amount;
                    }
                    $final_user_credit = $credit_limits - $from_user_credit;
                    $user_model->credit_limits = $final_user_credit;
                    $user_model->save();
                }

                // for storing in the user_trans table
                $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
		));
	}
    /**
     * Updates a particular model.
     * If update is successful, the browser will be redirected to the 'view' page.
     * @param integer $id the ID of the model to be updated
     */
    public function actionUpdate($id) {
        $model = $this->loadModel($id);
        $users = CHtml::listData(BaseModel::getAll('Users', array("condition" => "is_admin = 0 ")), 'id', 'username');
        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if (isset($_POST['UserCredit'])) {
            $model->attributes = $_POST['UserCredit'];
            if ($model->save()){
                $trans = UserTrans::model()->find(array("condition" => "credit_id = '$model->id'"));
                if($trans === null && $model->payment_status == 'a'){
                    $trans_model = new UserTrans;
                    $trans_model->tran_type = 'PAYMENT_RECEIVED';
                    $trans_model->user_id = $model->user_id;
                    $trans_model->credit = $model->amount;
                    $trans_model->credit_id = $model->id;
                    $trans_model->save();
                } else {
                    $trans->credit = $model->amount;
                    $trans->save();
                }
                $this->redirect(array('view', 'id' => $model->id));
            }
        }

        $this->render('update', array(
            'model' => $model,
            'users' => $users
        ));
    }