-
Notifications
You must be signed in to change notification settings - Fork 8
/
reports.php
109 lines (95 loc) · 2.93 KB
/
reports.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
use phpGrid\C_DataGrid;
include_once("phpGrid/conf.php");
require_once("phpChart/conf.php");
include_once('inc/head.php');
?>
<h1>My Donation Manager</h1>
<?php
$_GET['currentPage'] = 'reports';
include_once('inc/menu.php');
?>
<h2>Campaign Totals</h2>
<?php
$pc = new C_PhpChartX(array(array(null)),'BarChart');
$pc->add_plugins(array('canvasTextRenderer','canvasAxisTickRenderer', 'pointLabels'),true);
$pc->set_animate(true);
$pc->set_series_default(array(
'renderer'=>'plugin::BarRenderer',
'rendererOptions' => array('barWidth'=>60),
'pointLabels'=> array('show'=>true)
));
$pc->set_axes(array(
'xaxis'=>array(
'label'=>'Campaign',
'renderer'=>'plugin::CategoryAxisRenderer',
'rendererOptions'=>array('tickRenderer'=>'plugin::CanvasAxisTickRenderer'),
'ticks'=>array(null),
'tickOptions'=>array(
'angle'=>-35,
'fontStretch'=>1)),
'yaxis'=>array('label'=>'Total Donations')
));
$pc->draw(600,400);
// pie series data must be 2D array e.g. array('Verwerkende industrie', 9)
$pc2 = new C_PhpChartX(array(array(null)),'PieChart');
$pc2->set_series_default(array( 'shadow'=> false,
'renderer'=> 'plugin::PieRenderer',
'rendererOptions'=> array(
'sliceMargin'=> 3,
'showDataLabels'=> true )
));
$pc2->set_legend(array('show'=>true,'location'=> 'w'));
$pc2->draw(600,400);
?>
<br /><br /><br /><br /><br /><br /><br /><br />
<div style="clear:both"></div>
<h2 style="margin-top:100px">Campaign Summary</h2>
<?php
$dgCampReport = new C_DataGrid(
"SELECT c.id, dn.CampaignId, c.CampaignName, c.Description, c.StartDate,
COUNT(*) As 'DonationCount',
SUM(dn.Amount) As 'TotalDonation'
FROM campaigns c
INNER JOIN donations dn on c.id = dn.CampaignId
GROUP BY dn.CampaignId, c.CampaignName, c.Description, c.StartDate",
"id", "campaigns");
$dgCampReport->set_col_hidden('id')->set_col_hidden('CampaignId');
$dgCampReport->set_col_currency('TotalDonation', '$');
$dgCampReport->set_dimension('1000px');
$onGridLoadComplete = <<<ONGRIDLOADCOMPLETE
function(status, rowid)
{
var barData1 = [];
var barData2 = [];
d1 = $('#campaigns').jqGrid('getCol', 'TotalDonation', false);
d2 = $('#campaigns').jqGrid('getCol', 'CampaignName', false);
npoints = d1.length;
for(var i=0; i < npoints; i++){
barData1[i] = [i+1, parseInt(d1[i])];
barData2[i] = [i+1, d2[i]];
}
_BarChart.series[0].data = barData1;
_BarChart.axes.xaxis.ticks = barData2;
_BarChart.replot({resetAxes:true});
var pieData = [];
for(var j=0; j < barData1.length; j++)
{
pieData.push([barData2[j][1],barData1[j][1]]);
}
// console.log(pieData);
_PieChart.series[0].data = pieData;
_PieChart.replot({resetAxes:true});
}
ONGRIDLOADCOMPLETE;
$dgCampReport->add_event("jqGridLoadComplete", $onGridLoadComplete);
$dgCampReport->enable_search(true)->enable_autowidth(true);
$dgCampReport->display();
?>
<style>
div#resizable{
float: left;
}
<?php
include_once('inc/footer.php');
?>