From 8ca869e7dd804f12c2d752a5eb2bf466db6009a0 Mon Sep 17 00:00:00 2001 From: Romain d'Alverny Date: Mon, 2 Jul 2012 17:16:37 +0000 Subject: use new report format, code reorg --- en/about/reports/template_lib.php | 161 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 en/about/reports/template_lib.php (limited to 'en/about/reports/template_lib.php') diff --git a/en/about/reports/template_lib.php b/en/about/reports/template_lib.php new file mode 100644 index 000000000..72bf48bd6 --- /dev/null +++ b/en/about/reports/template_lib.php @@ -0,0 +1,161 @@ +'; + $html .= ''; + + $line = array_shift($v); + $sums = array(); + + $html .= sprintf('', + $line[0], $line[1], + $line[2], $line[3], + $line[4], + $line[5]); + + foreach ($v as $line) { + if (count($line) < 2) + continue; + + $html .= sprintf('', + date('Y-M-d', strtotime($line[0])), $line[1], + $line[2], + number_format(str_replace(',', '.', $line[3]), 2, '.', ',')); + + $cat = explode(':', $line[1]); + $sums[$cat[0]] += $line[3]; + $sums['total'] += $line[3]; + } + + $html .= ' + + + + +
%s%s%s%s
%s%s%s%s
Total:' . number_format(str_replace(',', '.', $sums['total']), 2, '.', ',') . '
'; + + unset($sums['total']); + arsort($sums); + foreach ($sums as $k => $v) + $sums[$k] = "['{$k}', $v]"; + + $values = implode(', ', $sums); + $html .= << + google.setOnLoadCallback(drawChartExpenses); + function drawChartExpenses() { + var data = new google.visualization.DataTable(); + data.addColumn('string', 'Source'); + data.addColumn('number', 'Amount'); + data.addRows([{$values}]); + var options = {'title':'Expenses by category', + 'width':400, + 'height':300}; + + var chart = new google.visualization.PieChart(document.getElementById('expenses-cats-pie')); + chart.draw(data, options); + } + +H; + + return array('html' => $html); +} + +/** + * @param string $v + * + * @return array('html' => string, 'data' => mixed) +*/ +function get_revenues($v) +{ + global $_months; + + $html = '
'; + $html .= ''; + + $line = array_shift($v); + $html .= sprintf(' + + ', + $line[0], $line[1], $line[2], + $line[3], + $line[4], + $line[5], $line[6]); + + $html .= ''; + + $sums = array(); + + foreach ($v as $line) { + $html .= sprintf(' + + + + + + ', + $_months[$line[0]], + $line[1], + number_format(str_replace(',', '.', $line[2]), 2, '.', ','), + number_format(str_replace(',', '.', $line[3]), 2, '.', ','), + number_format(str_replace(',', '.', $line[4]), 2, '.', ','), + number_format(str_replace(',', '.', $line[5]), 2, '.', ','), + number_format(str_replace(',', '.', $line[6]), 2, '.', ','), + $line[1] > 0 ? number_format(str_replace(',', '.', $line[2] / $line[1]), 2, '.', ',') : '' + ); + + $sums['count'] += $line[1]; + $sums['total'] += $line[2]; + $sums['check'] += $line[3]; + $sums['xfer'] += $line[4]; + $sums['paypal'] += $line[5]; + $sums['cash'] += $line[6]; + } + $html .= ''; + $html .= sprintf(' + + + + + + + ', + $sums['count'], + number_format(str_replace(',', '.', $sums['total']), 2, '.', ','), + number_format(str_replace(',', '.', $sums['check']), 2, '.', ','), + number_format(str_replace(',', '.', $sums['xfer']), 2, '.', ','), + number_format(str_replace(',', '.', $sums['paypal']), 2, '.', ','), + number_format(str_replace(',', '.', $sums['cash']), 2, '.', ','), + $sums['count'] > 0 ? number_format(str_replace(',', '.', $sums['total'] / $sums['count']), 2, '.', ',') : '' + ); + $total_revenues = $sums['total']; + $html .= '
%s%s%s%s%s%s%saverage
%s%s%s%s%s%s%s%s
Total%s%s%s%s%s%s%s
'; + + $html .= << + google.setOnLoadCallback(drawChart); + function drawChart() { + var data = new google.visualization.DataTable(); + data.addColumn('string', 'Source'); + data.addColumn('number', 'Amount'); + data.addRows([ + ['Paypal', {$sums['paypal']}], + ['Bank transfer', {$sums['xfer']}], + ['Check', {$sums['check']}], + ['Cash', {$sums['cash']}], + ]); + + var options = {'title':'Donations by source', + 'width':400, + 'height':300}; + + var chart = new google.visualization.PieChart(document.getElementById('income-pie')); + chart.draw(data, options); + } + +S; + + return array('html' => $html, 'data' => array('total' => $total_revenues)); +} \ No newline at end of file -- cgit v1.2.1