/** * Save the current balance * * @param string $type Record type (inserting or updating) * @return boolean True on success */ public function _saveBalance($type) { if ($type == 'creation') { $model = Account::blank(); } else { $model = Account::oneByUserId($this->uid); } $model->set(['uid' => $this->uid, 'balance' => $this->balance, 'earnings' => $this->earnings, 'credit' => $this->credit]); if (!$model->save()) { $this->setError($model->getError()); return false; } return true; }
/** * Save an entry * * @return void */ public function saveTask() { // Check for request forgeries Request::checkToken(); $account = Request::getVar('account', array(), 'post'); $row = \Hubzero\Bank\Account::blank()->set($account); $row->set('uid', intval($row->get('uid'))); $row->set('balance', intval($row->get('balance'))); $row->set('earnings', intval($row->get('earnings'))); $data = Request::getVar('transaction', array(), 'post'); if (isset($data['amount']) && intval($data['amount']) > 0) { $data['uid'] = $row->get('uid'); $data['created'] = Date::toSql(); $data['amount'] = intval($data['amount']); if (!isset($data['category']) || !$data['category']) { $data['category'] = 'general'; } if (!isset($data['description']) || !$data['description']) { $data['description'] = 'Reason unspecified'; } if (!isset($data['type']) || !$data['type']) { $data['type'] = ''; } switch ($data['type']) { case 'withdraw': $row->balance -= $data['amount']; break; case 'deposit': $row->balance += $data['amount']; $row->earnings += $data['amount']; break; case 'creation': $row->balance = $data['amount']; $row->earnings = $data['amount']; break; } $data['balance'] = $row->balance; $BT = Transaction::blank()->set($data); if (!$BT->save()) { App::abort(500, $row->getError()); return; } } if (!$row->save()) { App::abort(500, $row->getError()); return; } App::redirect(Route::url('index.php?option=' . $this->_option . '&controller=' . $this->_controller . '&task=edit&uid=' . $row->uid, false), Lang::txt('User info saved')); }