allow to search for balance for a account ID via transaction class, added template changes
This commit is contained in:
parent
961b6cc817
commit
c31bbb6f93
@ -7,12 +7,12 @@ if (!defined('SECURITY'))
|
||||
class Transaction {
|
||||
private $sError = '';
|
||||
private $table = 'transactions';
|
||||
// This defines each block
|
||||
public $account_id;
|
||||
private $tableBlocks = 'blocks';
|
||||
|
||||
public function __construct($debug, $mysqli) {
|
||||
public function __construct($debug, $mysqli, $config) {
|
||||
$this->debug = $debug;
|
||||
$this->mysqli = $mysqli;
|
||||
$this->config = $config;
|
||||
$this->debug->append("Instantiated Ledger class", 2);
|
||||
}
|
||||
|
||||
@ -90,6 +90,36 @@ class Transaction {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getBalance($account_id) {
|
||||
$stmt = $this->mysqli->prepare("
|
||||
SELECT IFNULL(c.credit - d.debit, 0) AS balance
|
||||
FROM (
|
||||
SELECT account_id, sum(t.amount) AS credit
|
||||
FROM $this->table AS t
|
||||
LEFT JOIN $this->tableBlocks AS b ON t.block_id = b.id
|
||||
WHERE type = 'Credit'
|
||||
AND b.confirmations > ?
|
||||
AND account_id = ? ) AS c
|
||||
LEFT JOIN (
|
||||
SELECT account_id, sum(amount) AS debit
|
||||
FROM $this->table
|
||||
WHERE type IN ('Debit_MP','Debit_AP')
|
||||
AND account_id = ? ) AS d
|
||||
ON c.account_id = d.account_id
|
||||
");
|
||||
if ($this->checkStmt($stmt)) {
|
||||
$stmt->bind_param("iii", $this->config['confirmations'], $account_id, $account_id);
|
||||
if (!$stmt->execute()) {
|
||||
$this->debug->append("Unable to execute statement: " . $stmt->error);
|
||||
$this->setErrorMessage("Fetching balance failed");
|
||||
}
|
||||
$result = $stmt->get_result();
|
||||
$stmt->close();
|
||||
return $result->fetch_object()->balance;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$transaction = new Transaction($debug, $mysqli);
|
||||
$transaction = new Transaction($debug, $mysqli, $config);
|
||||
|
||||
@ -23,6 +23,7 @@ define('SALT', 'LJKEHFuhgu7%&¤Hg783tr7gf¤%¤fyegfredfoGHYFGYe(%/(&%6');
|
||||
$config = array(
|
||||
'difficulty' => '31', // Target difficulty for this pool
|
||||
'reward' => '50', // Reward for finding blocks
|
||||
'confirmations' => '120', // Confirmations per block found to credit transactions
|
||||
'wallet' => array(
|
||||
'type' => 'http', // http or https are supported
|
||||
'host' => 'localhost:9332',
|
||||
|
||||
@ -6,6 +6,7 @@ if (!defined('SECURITY'))
|
||||
|
||||
// Globally available variables
|
||||
$debug->append('Global smarty variables', 3);
|
||||
|
||||
$aGlobal = array(
|
||||
'userdata' => $_SESSION['USERDATA']['id'] ? $user->getUserData($_SESSION['USERDATA']['id']) : array(),
|
||||
'slogan' => $settings->getValue('slogan'),
|
||||
@ -17,6 +18,10 @@ $aGlobal = array(
|
||||
'statstime' => $settings->getValue('statstime'),
|
||||
'motd' => $settings->getValue('motd')
|
||||
);
|
||||
// Append additional user information not from user table
|
||||
$aGlobal['userdata']['balance'] = $transaction->getBalance($_SESSION['USERDATA']['id']);
|
||||
|
||||
// Make it available in Smarty
|
||||
$smarty->assign('PATH', 'site_assets/' . THEME);
|
||||
$smarty->assign('GLOBAL', $aGlobal);
|
||||
?>
|
||||
|
||||
@ -73,13 +73,13 @@ if (!empty($action)) {
|
||||
$smarty->assign("PAGE", $page);
|
||||
$smarty->assign("ACTION", $action);
|
||||
|
||||
// Now with all loaded and processed, setup some globals we need for smarty templates
|
||||
require_once(INCLUDE_DIR . '/smarty_globals.inc.php');
|
||||
|
||||
// Debguger
|
||||
$debug->append("Loading debug information into template", 4);
|
||||
$smarty->assign('DebuggerInfo', $debug->getDebugInfo());
|
||||
|
||||
// Now with all loaded and processed, setup some globals we need for smarty templates
|
||||
require_once(INCLUDE_DIR . '/smarty_globals.inc.php');
|
||||
|
||||
// Display our page
|
||||
if (!@$supress_master)
|
||||
$smarty->display("master.tpl", md5(serialize($_REQUEST)));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user