private function summary($mysqli, $start_year, $end_year) { $data = Db\AnnualApi::getMultiYear($mysqli, $start_year, $end_year); $year_income = @$data[$end_year]['GROSS_INCOME']; $last_year_income = @$data[$end_year - 1]['GROSS_INCOME']; if ($end_year - $start_year >= 2) { @($three_year_income = $data[$end_year - 2]['GROSS_INCOME'] + $last_year_income + $year_income); $col1 = '$' . number_format($three_year_income / 3, 2); } else { $col1 = '--'; } $col2 = '$' . number_format($year_income, 2); if ($year_income && $last_year_income) { $col2 .= sprintf(' (+%s%% yoy)', number_format(100 * ($year_income - $last_year_income) / $last_year_income, 0)); } $investments = @$data[$end_year]['SAVINGS']; $col3 = '$' . number_format($investments, 2); if ($investments && $year_income) { $col3 .= sprintf(' (%s%% of income)', number_format(100 * $investments / $year_income, 0)); } $current_year = date("Y"); $est = $end_year >= $current_year ? ' (est)' : ''; $tdata = array('headers' => array('Average annual income (3-year trend)', 'Income for ' . $end_year . $est, 'Total savings for ' . $end_year . $est), 'rows' => array(array($col1, $col2, $col3))); echo json_encode(array("Table", $tdata)); }
public function yearReport($mysqli, $year) { echo '<h1>' . $year . ' Annual Report</h1>'; $data = Db\AnnualApi::getYear($mysqli, $year); echo '<h2>Income</h2>'; echo '<table border=1 style="border-collapse: collapse;"><tr><th>Key</th><th>Value</th></tr>'; foreach ($data as $key => $value) { printf('<tr><td>%s</td><td>%s</td>', $key, $value); } echo '</table>'; $this->renderAnnualPie($year); $categories = Db\InvestmentsApi::getCategories($mysqli); $data = Db\InvestmentsApi::getInvestments($mysqli, $year, $year); echo '<h2>Investments</h2>'; echo '<table border=1 style="border-collapse: collapse;"><tr><th>Month</th>'; foreach ($categories as $i) { printf('<th>%s</th>', $i->name); } echo '<th>Total</th></tr>'; for ($i = 1; $i <= 12; $i++) { if (empty($data[$year][$i])) { continue; } echo '<tr><td>' . date("F", mktime(0, 0, 0, $i, 1, $year)) . '</td>'; foreach ($categories as $category) { if (isset($data[$year][$i][$category->key])) { $value = $data[$year][$i][$category->key]; } else { $value = ''; } printf('<td>%s</td>', $value); } printf('<td>%s</td>', array_sum($data[$year][$i])); echo '</tr>'; } echo '</table>'; $id = 'canvaschart' . uniqid(); echo '<div class="canvascontainer line"><canvas data-src="/data/investments/year/' . $year . '" id="' . $id . '"></div>'; }