<?php include "trader-functions.php"; redirect_login_pf(); draw_trader_header('history'); // Load the HTML_QuickForm module global $db_hostname, $db_database, $db_user, $db_password; $username = $_SESSION['username']; $uid = $_SESSION['uid']; $portfolio = new portfolio($_SESSION['pfid']); $pf_id = $portfolio->getID(); $exch = $portfolio->getExch(); $pf_working_date = $portfolio->getWorkingDate(); $cash_in_hand = $portfolio->getCashInHand(); $this_page = $_SERVER['REQUEST_URI']; try { $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("ERROR: Cannot connect: " . $e->getMessage()); } function draw_performance_table($portfolio) { global $pdo; $pf_id = $portfolio->getID(); $pf_name = $portfolio->getName(); $pf_opening_balance = $portfolio->getOpeningBalance(); $pf_opening_date = $portfolio->getStartDate(); $pf_days_traded = $portfolio->countDaysTraded(); $pf_exchange_name = $portfolio->getExch()->getName(); $pf_exch = $portfolio->getExch()->getID();
<?php include "../html/trader-functions.php"; require_once "../ChartDirector/lib/phpchartdir.php"; global $db_hostname, $db_database, $db_user, $db_password; redirect_login_pf(); $username = $_SESSION['username']; $uid = $_SESSION['uid']; // make sure they're logged in" if (isset($username)) { $c = new XYChart(640, 480); $portfolio = new portfolio($_SESSION['pfid']); $pf_id = $portfolio->getID(); $pf_name = $portfolio->getName(); $pf_working_date = $portfolio->getWorkingDate(); $pf_exch = $portfolio->getExch()->getID(); $symb = $_GET['symb']; $symb_name = get_symb_name($symb, $pf_exch); $endDate = chartTime2(strtotime($pf_working_date)); if (isset($_SESSION['chart_period'])) { $chart_period = $_SESSION['chart_period']; } else { $chart_period = 180; } $durationInDays = (int) $chart_period; $startDate = $endDate - $durationInDays * 24 * 60 * 60; $first_date = $c->formatValue($startDate, "{value|yyyy-mm-dd}"); $first = true; try { $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
<?php include "trader-functions.php"; redirect_login_pf(); draw_trader_header('booty'); // Load the HTML_QuickForm module global $db_hostname, $db_database, $db_user, $db_password; $username = $_SESSION['username']; $uid = $_SESSION['uid']; $portfolio = new portfolio($_SESSION['pfid']); $pf_id = $portfolio->getID(); $exch = $portfolio->getExch(); $pf_working_date = $portfolio->getWorkingDate(); $next_trade_day = $portfolio->getExch()->nextTradeDay($pf_working_date); $cash_in_hand = $portfolio->getCashInHand(); $this_page = $_SERVER['REQUEST_URI']; try { $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("ERROR: Cannot connect: " . $e->getMessage()); } function stop_loss($portfolio) { global $pdo; $pf_auto_stop_loss = $portfolio->getAutoStopLoss(); if ($pf_auto_stop_loss) { $pf_id = $portfolio->getID(); $query = "select * from holdings where pfid = '{$pf_id}' order by symb;"; $pf_exch = $portfolio->getExch()->getID(); $pf_working_date = $portfolio->getWorkingDate();
require_once "../ChartDirector/lib/phpchartdir.php"; global $db_hostname, $db_database, $db_user, $db_password; redirect_login_pf(); $username = $_SESSION['username']; $uid = $_SESSION['uid']; // make sure they're logged in" if (isset($username)) { $c1 = new XYChart(640, 180); $c2 = new XYChart(640, 180); $c3 = new XYChart(640, 180); $m = new MultiChart(640, 3 * 180); $portfolio = new portfolio($_SESSION['pfid']); $pf_id = $portfolio->getID(); $pf_name = $portfolio->getName(); $pf_working_date = $portfolio->getWorkingDate(); $pf_exch = $portfolio->getExch()->getID(); $pf_exch_name = $portfolio->getExch()->getName(); $endDate = chartTime2(strtotime($pf_working_date)); if (isset($_SESSION['chart_period'])) { $chart_period = $_SESSION['chart_period']; } else { $chart_period = 180; } $durationInDays = (int) $chart_period; $startDate = $endDate - $durationInDays * 24 * 60 * 60; $first_date = $c1->formatValue($startDate, "{value|yyyy-mm-dd}"); $count = 0; try { $pdo = new PDO("pgsql:host={$db_hostname};dbname={$db_database}", $db_user, $db_password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) {
function create_choose_form() { // Instantiate a new form tp choose the portfolio to work with global $choose_pf_form, $pdo; $choose_pf_form->addElement('header', null, 'Choose a portfolio'); $uid = $pdo->quote($_SESSION['uid']); $query = "select pfid, name, exch, parcel, working_date from portfolios where uid = {$uid} order by name;"; $first_row = true; foreach ($pdo->query($query) as $row) { $pf_id = $row['pfid']; $portfolio = new portfolio($pf_id); $pf_desc = $portfolio->getName(); $exch = $portfolio->getExch()->getID(); $exch_name = $portfolio->getExch()->getName(); $pf_parcel = $portfolio->getParcel(); $pf_working_date = $portfolio->getWorkingDate(); $pf_start_date = $portfolio->getStartDate(); if ($first_row) { $choose_pf_form->addElement('radio', 'portfolio', 'Portfolios:', "{$pf_desc}<td>{$exch_name}</td> <td>{$pf_parcel}</td> <td>{$pf_start_date}</td> <td>{$pf_working_date}</td>", $pf_id); $choose_pf_form->addRule('portfolio', 'You must select a portfolio to trade', 'required'); $first_row = false; } else { $choose_pf_form->addElement('radio', 'portfolio', null, "{$pf_desc}<td>{$exch_name}</td> <td>{$pf_parcel}</td> <td>{$pf_start_date}</td> <td>{$pf_working_date}</td>", $pf_id); } } $choose_pf_form->addElement('submit', 'choose', 'Trade with Portfolio'); $choose_pf_form->addElement('submit', 'delete', 'Delete Portfolio', 'onclick="return confirm(\'Delete portfolio\\nAre you Sure?\')"'); }
function draw_trader_header($active_page, $allow_others = true) { // dray the header with a table linking the trader pages like tabs in a notebook // session infomation is used to communicate between the tabs $active_page = strtolower($active_page); $active_colour = 'white'; $inactive_colour = 'grey'; if (!isset($_SESSION['uid'])) { // don't allow other page links if uid isn't set $active_page = 'login'; $allow_others = false; } elseif (!isset($_SESSION['pfid'])) { // uid is set but pf id isn't. Only allowable active page is 'login' or 'portfolio' if ($active_page != 'login' and $active_page != 'portfolios') { // force to the portfolio page $active_page = 'portfolios'; } $allow_others = false; } if (isset($_SESSION['username'])) { $username = $_SESSION['username']; } else { $username = '******'; } if (isset($_SESSION['pfid'])) { $portfolio = new portfolio($_SESSION['pfid']); $pfid = $portfolio->getID(); $pf_name = $portfolio->getName(); $exch = $portfolio->getExch(); $exch_name = $exch->getName(); $working_date = $portfolio->getWorkingDate(); $pf_gain = $portfolio->dayGain(1); $pf_CIH = $portfolio->getCashInHand(); $pf_currency_symb = $exch->getCurrency(); if ($pf_gain > 0) { $pf_gain = sprintf("%.2f", $pf_gain); $pf_gain = "<font color=\"green\">+{$pf_currency_symb}{$pf_gain}</font>"; } else { $pf_gain = sprintf("%.2f", $pf_gain); $pf_gain = "<font color=\"red\">{$pf_currency_symb}{$pf_gain}</font>"; } $pf_name = "{$pf_name} ({$pf_currency_symb}{$pf_CIH}/{$pf_gain})"; } else { $pf_name = $exch_name = $working_date = 'N/A'; } if (isset($_SESSION['sql_name'])) { $qid = $_SESSION['qid']; $query_name = $_SESSION['sql_name']; $query_name = "{$query_name} ({$qid})"; } else { $query_name = 'N/A'; } if (isset($_SESSION['chart_name'])) { $chid = $_SESSION['chid']; $chart_name = $_SESSION['chart_name']; $chart_name = "{$chart_name} ({$chid})"; } else { $chart_name = 'N/A'; } switch ($active_page) { case 'login': print "<html><title>Trader Login</title><body>\n"; break; case 'portfolios': print "<html><title>Select or Create a Portfolio</title><body>\n"; break; case 'booty': print "<html><title>Report Portfolio Performance</title><body>\n"; break; case 'select': print "<html><title>Choose Securities to trade</title><body>\n"; break; case 'trade': print "<html><title>Buy selected Securities</title><body>\n"; break; case 'watch': print "<html><title>Watch with a view to buy</title><body>\n"; break; case 'queries': print "<html><title>Create queries to find securities</title><body>\n"; break; case 'chart': print "<html><title>Inspect all symbols</title><body>\n"; break; case 'history': print "<html><title>Historical trades</title><body>\n"; break; case 'docs': print "<html><title>Documentation of the Trader Relations</title><body>\n"; break; default: tr_warn("[FATAL]Cannot create header, given {$active_page}\n"); $active_page = 'login'; $allow_others = false; break; } print '<table width="100%" border="0">'; print '<table border="1" cellpadding="5" cellspacing="0" width="100%" align="center">'; print "\n<tr><td colspan=\"100\" valign=\"bottom\" bgcolor=\"{$inactive_colour}\"><h1 style=\"font-family:verdana\">Trader DSS</h1></td></tr><tr>\n"; if ($active_page == 'login') { draw_cell($active_page, '/login.php', $active_colour, true); } else { // must always be possible to choose the login page draw_cell('login', '/login.php', $inactive_colour, true); } if ($active_page == 'portfolios') { draw_cell($active_page, '/portfolios.php', $active_colour, $allow_others); } else { draw_cell('portfolios', '/portfolios.php', $inactive_colour, $allow_others); } if ($active_page == 'booty') { draw_cell($active_page, '/booty.php', $active_colour, $allow_others); } else { draw_cell('booty', '/booty.php', $inactive_colour, $allow_others); } if ($active_page == 'select') { draw_cell($active_page, '/select.php', $active_colour, $allow_others); } else { draw_cell('select', '/select.php', $inactive_colour, $allow_others); } if ($active_page == 'trade') { draw_cell($active_page, '/trade.php', $active_colour, $allow_others); } else { draw_cell('trade', '/trade.php', $inactive_colour, $allow_others); } if ($active_page == 'watch') { draw_cell($active_page, '/watch.php', $active_colour, $allow_others); } else { draw_cell('watch', '/watch.php', $inactive_colour, $allow_others); } if ($active_page == 'queries') { draw_cell($active_page, '/queries.php', $active_colour, $allow_others); } else { draw_cell('queries', '/queries.php', $inactive_colour, $allow_others); } if ($active_page == 'chart') { draw_cell($active_page, '/chart.php', $active_colour, $allow_others); } else { draw_cell('chart', '/chart.php', $inactive_colour, $allow_others); } if ($active_page == 'history') { draw_cell($active_page, '/history.php', $active_colour, $allow_others); } else { draw_cell('history', '/history.php', $inactive_colour, $allow_others); } if ($active_page == 'docs') { draw_cell($active_page, '/docs.php', $active_colour, $allow_others); } else { draw_cell('docs', '/docs.php', $inactive_colour, $allow_others); } draw_summary($username, $pf_name, $exch_name, $working_date, $query_name, $chart_name); print "</tr></table></table>\n"; }