Start graph and import refactoring
[contractdashboard.git] / lib / graphs.inc.php
blob:a/lib/graphs.inc.php -> blob:b/lib/graphs.inc.php
--- a/lib/graphs.inc.php
+++ b/lib/graphs.inc.php
@@ -1,27 +1,117 @@
 <?php
+$includedFlot = false;
+function includeFlot() {
+	if (!$includedFlot) {
+		echo '   <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="lib/flot/excanvas.min.js"></script><![endif]--> 
+ 
+    <script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.js"></script> 
+        <script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.pie.js"></script> 
+
+';
+$includedFlot = true;
+	}
+}
+
+function CNDistributionGraph() {
+	global $conn;
+	includeFlot();
+	 ?>
+	   <center><div id="cndist" style="width:900px;height:550px"></div></center>
+<script type="text/javascript"> 
+	 $(function () {
+
+ var d1 = [];
+<?php
+$query = 'select cnid, count(*) from (select ("CNID" - MOD("CNID",100)) as cnid from contractnotice where "CNID" < 999999) as a group by cnid order by cnid';
+$query = $conn->prepare($query);
+$query->execute();
+if (!$query) {
+	databaseError($conn->errorInfo());
+	return Array();
+}
+
+foreach ($query->fetchAll() as $delta) {
+
+	echo "d1.push([ ".intval($delta['cnid']).", ".intval($delta['count'])."]); \n";
+};
+?>
+
+       var placeholder = $("#cndist");
+
+    var plot = $.plot(placeholder, [
+       {
+            data: d1,
+            bars: { show: true }
+        },
+    ],
+        {
+
+            grid: { hoverable: true, clickable: true, labelMargin: 17  },
+    });
+
+ });
+
+</script> 
+<?php
+}
 
 function agenciesGraph() {
-	$topX = 15;
-$query = "SELECT SUM(value) as val, agencyName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0
-GROUP BY agencyName ORDER BY val DESC limit $topX";
-$result = mysql_query($query);
-$agencies = Array();
-$values = Array();
-while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
-  $agencies[] = $row['agencyName'];
-  $values[] = doubleval($row["val"]);
-}
-mysql_free_result($result);
-
-$query = "SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, agencyName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0
-GROUP BY agencyName ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a";
-$result = mysql_query($query);
-while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
-  $agencies[] = $row['count'] . " other agencies";
-  $values[] = doubleval($row[0]);
-}
-mysql_free_result($result);
-
+	
+	global $conn;
+	includeFlot();
+$query = 'SELECT SUM("value") as val, MAX(contractnotice."agencyName") as agencyname FROM contractnotice join agency on contractnotice."agencyName"=agency."agencyName"  WHERE "childCN" = 0
+GROUP BY abn ORDER BY SUM("value") DESC';
+$query = $conn->prepare($query);
+$query->execute();
+if (!$query) {
+	databaseError($conn->errorInfo());
+	return Array();
+}
+?>
+<script type="text/javascript">
+$(function () {
+	// data
+	var data = [
+  <?php
+foreach ($query->fetchAll() as $row) {
+		echo '{ label: "'.$row['agencyname'].'",  data: '.doubleval($row["val"]).'},';
+  }
+    ?>
+	];
+	// GRAPH 7
+	$.plot($("#graph7"), data, 
+	{
+		series: {
+			pie: { 
+				show: true,
+          radius: 1,
+          tilt: 0.75,
+                label: {
+                    show: true,
+                    radius: 1,
+                    formatter: function(label, series){
+                        return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+': '+Math.round(series.percent)+'%</div>';
+                    },
+                    background: { 
+                        opacity: 0.5,
+                        color: '#000'
+                    }
+                  },
+				combine: {
+					color: '#999',
+					threshold: 0.012
+				}
+			}
+		},
+		legend: {
+			show: false
+		}
+	});
+});
+</script>
+    <div id="graph7" style="width:900px;height:550px"></div>
+
+<?php
 };
 
 function agencySuppliersGraph($agency) {