/** * Record the transaction * * @param string $type Record type (inserting or updating) * @param integer $amount Amount to process * @param string $desc Transaction description * @param string $cat Transaction category * @param integer $ref ID of item transaction references * @return boolean True on success */ public function _saveTransaction($type, $amount, $desc, $cat, $ref) { $transaction = Transaction::blank()->set(array('uid' => $this->uid, 'type' => $type, 'amount' => $amount, 'description' => $desc, 'category' => $cat, 'referenceid' => $ref, 'balance' => $this->balance)); if (!$transaction->save()) { $this->setError($transaction->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')); }