Data update
[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
@@ -155,11 +155,19 @@
 
 function agenciesGraph() {
 
-    global $conn;
+    global $conn, $yearQ, $supplierParts,$supplierQ, $supplierABN, $supplierName;
     includeFlot();
-    $query = 'SELECT SUM("value") as val, MAX(contractnotice."agencyName") as agencyname FROM contractnotice join agency_nametoabn on contractnotice."agencyName"=agency_nametoabn."agencyName"  WHERE "childCN" is null
+    $query = 'SELECT SUM("value") as val, MAX(contractnotice."agencyName") as agencyname FROM contractnotice join agency_nametoabn on contractnotice."agencyName"=agency_nametoabn."agencyName"  
+WHERE ' .$yearQ . ' '.$supplierQ.' "childCN" is null 
 GROUP BY abn ORDER BY SUM("value") DESC';
     $query = $conn->prepare($query);
+if (count($supplierParts) > 0) {
+  if ($supplierParts[0] > 0) {
+    $query->bindParam(":supplierABN", $supplierABN);
+  } else {
+      $query->bindParam(":supplierName", $supplierName);
+  }
+}
     $query->execute();
     $errors = $conn->errorInfo();
     if ($errors[2] != "") {
@@ -217,11 +225,12 @@
 
 function agencySuppliersGraph($agency) {
 
-    global $conn;
-    $agency = "AusAid";
-    $topX = 15;
-    $query = 'SELECT SUM(value) as val, "supplierName" FROM contractnotice WHERE extract ("YEAR" from "contractStart") >= :startYear AND "childCN" is null AND "agencyName" like :agency
-GROUP BY lower(supplierName) ORDER BY val DESC limit $topX';
+    global $conn,$startYear, $yearQ;
+    includeFlot();
+
+    $topX = 20;
+    $query = 'SELECT SUM(value) as val, mode("supplierName") "supplierName" FROM contractnotice WHERE ' .$yearQ . ' extract ("YEAR" from "contractStart") >= :startYear AND "childCN" is null AND "agencyName" like :agency
+GROUP BY lower("supplierName") ORDER BY val DESC limit '.$topX;
     $query = $conn->prepare($query);
     $query->bindParam(":startYear", $startYear);
     $query->bindParam(":agency", $agency);
@@ -235,8 +244,8 @@
     }
 
 
-    $query = 'SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, "supplierName" FROM contractnotice WHERE (extract ("YEAR" from "contractStart") >= :startYear) AND "childCN" is null and "agencyName" like :agency
-GROUP BY lower("supplierName") ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a';
+    $query = 'SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, mode("supplierName") FROM contractnotice WHERE ' .$yearQ . '(extract ("YEAR" from "contractStart") >= :startYear) AND "childCN" is null and "agencyName" like :agency
+GROUP BY lower("supplierName") ORDER BY val DESC LIMIT 184467440 OFFSET '.$topX.') as a';
     $query = $conn->prepare($query);
     $query->bindParam(":startYear", $startYear);
     $query->bindParam(":agency", $agency);
@@ -248,296 +257,6 @@
             $values[] = doubleval($row[0]);
         }
     }
-}
-
-function CnCGraph() {
-
-    global $conn;
-    $query = 'select procurementMethod, count(1) as count, SUM(value) as val, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
-where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month';
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    $methods = Array("Direct", "Open", "Select");
-    $dates = Array();
-    $methodCountsP = Array();
-    $methodCounts = Array();
-    $maxValue = 0;
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        if ($row['val'] > $maxValue)
-            $maxValue = $row['val'];
-        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
-        if (array_search($date, $dates) === false) {
-            $dates[$row["year"] * 100 + $row["month"]] = $date;
-            ksort($dates);
-        }
-        $methodCountsP[$row["procurementMethod"]][$date] = $row["count"];
-    }
-    foreach ($methods as $method) {
-        foreach ($dates as $date) {
-            if ($methodCountsP[$method][$date] > 0)
-                $methodCounts[$method][] = $methodCountsP[$method][$date];
-            else
-                $methodCounts[$method][] = 0;
-        }
-    }
-    $dates = array_values($dates);
-    $totalRecords = array_sum_all($methodCounts);
-
-    function formatCallback($aVal) {
-        global $totalRecords;
-        return percent($aVal, $totalRecords) . "%";
-    }
-
-    $attributes = Array();
-    $attributeNames = Array(
-        "Consultancies",
-        "Confidentialities"
-    );
-    $query = 'SELECT \'consultancy\', count(1) FROM contractnotice WHERE $agencyQ $supplierQ consultancy=\'Yes\' AND "childCN" is null;';
-    $result = $conn->query($query);
-    $row = $result->fetch(PDO::FETCH_ASSOC);
-    $attributes[0] = $row[1];
-    $query = 'SELECT \'confidentiality\', count(1) FROM contractnotice WHERE $agencyQ $supplierQ (confidentialityContract=\'Yes\' OR confidentialityOutputs=\'Yes\') AND "childCN" is null;';
-    $result = $conn->query($query);
-    $row = $result->fetch(PDO::FETCH_ASSOC);
-    $attributes[1] = $row[1];
-}
-
-function ContractPublishedGraph() {
-
-    global $conn;
-    $query = 'SELECT extract(year from "contractStart"),extract(month from "contractStart"),
-SUM(value) as val, count(1) as count FROM contractnotice
-WHERE (extract(year from "contractStart") >= 2008)
-AND "childCN" is null
-GROUP BY extract(month from "contractStart"), extract(year from "contractStart") 
-ORDER BY extract(year from "contractStart"), extract(month from "contractStart")';
-
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    $dates = Array();
-    $values = Array();
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        $value = number_format(doubleval($row["val"]), 2);
-        $month_name = date('F', mktime(0, 0, 0, $row[1]));
-        $dates[] = $month_name . " {$row[0]}";
-        $counts[] = doubleval($row["count"]);
-        $values[] = doubleval($row["val"]);
-    }
-}
-
-function ContractStartingGraph() {
-
-    global $conn;
-    $query = 'SELECT extract (YEAR from "contractStart") as year, extract (MONTH from "contractStart") as month,
-SUM(value) as val, count(*) as count FROM contractnotice
-WHERE extract (YEAR from "contractStart") >= 2008
-AND "childCN" is null 
-GROUP BY extract (MONTH from "contractStart"), extract (YEAR from "contractStart") 
-ORDER BY extract (YEAR from "contractStart"), extract (MONTH from"contractStart")';
-
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-$dates = Array();
-    $counts = Array();
-    $values = Array();
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        $value = number_format(doubleval($row["val"]), 2);
-        $date = mktime(0, 0, 0, $row["month"],1,$row["year"])*1000;
-        if ($row["count"] > 1) {
-        $dates[] = $date;
-        $counts[] = $row["count"];
-        $values[] = $row["val"];
-        }
-    }
-    includeFlot();
-    ?>
-    <center><div id="cstart" style="width:900px;height:550px"></div></center>
-    <script type="text/javascript"> 
-        var placeholder = $("#cstart");
-        $(function () {
-
-            var d1 = [];
-            var d2 = [];
-    <?php
-    foreach ($counts as $key => $count) {
-
-        echo "d1.push([ " . $dates[$key] . ", " . $count . "]); \n";
-    };
-    foreach ($values as $key => $value) {
-
-        echo "d2.push([ " . $dates[$key] . ", " . $value . "]); \n";
-    };    
-    d1d2Graph(true);
-}
-
-function MethodCountGraph() {
-
-    global $conn;
-    $query = 'select procurementMethod, count(1) as count, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
-where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month';
-    $methods = Array("Direct", "Open", "Select");
-    $dates = Array();
-    $methodCountsP = Array();
-    $methodCounts = Array();
-    $maxValue = 0;
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        if ($row['value'] > $maxValue)
-            $maxValue = $row['value'];
-        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
-        if (array_search($date, $dates) === false) {
-            $dates[$row["year"] * 100 + $row["month"]] = $date;
-            ksort($dates);
-        }
-        $methodCountsP[$row["procurementMethod"]][$date] = $row["count"];
-    }
-    foreach ($methods as $method) {
-        foreach ($dates as $date) {
-            if ($methodCountsP[$method][$date] > 0)
-                $methodCounts[$method][] = $methodCountsP[$method][$date];
-            else
-                $methodCounts[$method][] = 0;
-        }
-    }
-    $dates = array_values($dates);
-    $totalRecords = array_sum_all($methodCounts);
-}
-
-function MethodValueGraph() {
-
-    global $conn;
-    $query = "select procurementMethod, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
-where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month";
-    $methods = Array("Direct", "Open", "Select");
-    $dates = Array();
-    $methodValuesP = Array();
-    $methodValues = Array();
-    $maxValue = 0;
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        if ($row['value'] > $maxValue)
-            $maxValue = $row['value'];
-        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
-        if (array_search($date, $dates) === false) {
-            $dates[$row["year"] * 100 + $row["month"]] = $date;
-            ksort($dates);
-        }
-        $methodValuesP[$row["procurementMethod"]][$date] = $row["value"];
-    }
-    foreach ($methods as $method) {
-        foreach ($dates as $date) {
-            if ($methodValuesP[$method][$date] > 0)
-                $methodValues[$method][] = $methodValuesP[$method][$date];
-            else
-                $methodValues[$method][] = 0;
-        }
-    }
-    $dates = array_values($dates);
-    $totalRecords = array_sum_all($methodValues);
-}
-
-function SuppliersGraph() {
-
-    global $conn;
-    includeFlot();
-    $topX = 10;
-    $suppliers = Array();
-    $values = Array();
-
-
-    $query = 'SELECT SUM("value") as value, MAX("supplierName") as supplierName, (
- case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as supplierID 
-FROM contractnotice
-WHERE "childCN" is null
-GROUP BY supplierID
-ORDER BY value DESC
-LIMIT ' . $topX;
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-    foreach ($query->fetchAll() as $row) {
-        setlocale(LC_MONETARY, 'en_US');
-        // $value = number_format(doubleval($row["value"]) , 2);
-        $suppliers[] = ucsmart($row[1]);
-        $values[] = doubleval($row["value"]);
-    }
-
-    $query = 'SELECT sum(a.svalue) as val, suppliercountry from (SELECT sum("value") as svalue,  max("supplierCountry") as suppliercountry
-FROM contractnotice WHERE "childCN" is null and "supplierCountry" NOT ILIKE \'Australia\'
-GROUP BY "supplierName" ORDER BY svalue LIMIT 18446744073 OFFSET 10) as a group by suppliercountry order by val DESC limit 10 ';
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    foreach ($query->fetchAll() as $row) {
-        $suppliers[] = "Other suppliers in " . ucsmart($row["suppliercountry"]);
-        $values[] = doubleval($row[0]);
-    }
-
-
-    $query = 'SELECT sum(a.value) as val, substring(
-supplierpostcode from 0 for 2) as postcode from (SELECT sum(value) as value, max("supplierPostcode") as supplierpostcode, max("supplierCountry") as suppliercountry
-FROM contractnotice WHERE "childCN" is null 
-GROUP BY "supplierABN" ORDER BY sum(value) LIMIT 1844674 OFFSET 10) as a
-WHERE (suppliercountry ILIKE \'Australia\')
-group by substring(
-supplierpostcode from 0 for 2)
-order by val DESC;';
-    $query = $conn->prepare($query);
-    $query->execute();
-    databaseError($conn->errorInfo());
-
-    foreach ($query->fetchAll() as $row) {
-        if ($row['postcode'][0] == 2 && $row['postcode'][1] == 6)
-            $ACTvalue += $row[0];
-        else if ($row['postcode'][0] == 2 || $row['postcode'][0] == 1)
-            $NSWvalue += $row[0];
-        else if ($row['postcode'][0] == 3 || $row['postcode'][0] == 8)
-            $Vicvalue += $row[0];
-        else if ($row['postcode'][0] == 4 || $row['postcode'][0] == 9)
-            $QLDvalue += $row[0];
-        else if ($row['postcode'][0] == 5)
-            $SAvalue += $row[0];
-        else if ($row['postcode'][0] == 6)
-            $WAvalue += $row[0];
-        else if ($row['postcode'][0] == 7)
-            $Tasvalue += $row[0];
-        else if ($row['postcode'][0] == 0)
-            $NTvalue += $row[0];
-    }
-    $suppliers[] = "Other suppliers in Australia - ACT";
-    $values[] = doubleval($ACTvalue);
-    $suppliers[] = "Other suppliers in Australia - NSW";
-    $values[] = doubleval($NSWvalue);
-    $suppliers[] = "Other suppliers in Australia - Victoria";
-    $values[] = doubleval($Vicvalue);
-    $suppliers[] = "Other suppliers in Australia - Queensland";
-    $values[] = doubleval($QLDvalue);
-    $suppliers[] = "Other suppliers in Australia - NT";
-    $values[] = doubleval($NTvalue);
-    $suppliers[] = "Other suppliers in Australia - West Australia";
-    $values[] = doubleval($WAvalue);
-    $suppliers[] = "Other suppliers in Australia - South Australia";
-    $values[] = doubleval($SAvalue);
-    $suppliers[] = "Other suppliers in Australia - Tasmania";
-    $values[] = doubleval($Tasvalue);
     ?>
     <script type="text/javascript">
         $(function () {
@@ -584,5 +303,340 @@
 
     <?php
 }
+
+function CnCGraph() {
+
+    global $conn;
+    $query = 'select procurementMethod, count(1) as count, SUM(value) as val, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
+where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month';
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    $methods = Array("Direct", "Open", "Select");
+    $dates = Array();
+    $methodCountsP = Array();
+    $methodCounts = Array();
+    $maxValue = 0;
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        if ($row['val'] > $maxValue)
+            $maxValue = $row['val'];
+        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
+        if (array_search($date, $dates) === false) {
+            $dates[$row["year"] * 100 + $row["month"]] = $date;
+            ksort($dates);
+        }
+        $methodCountsP[$row["procurementMethod"]][$date] = $row["count"];
+    }
+    foreach ($methods as $method) {
+        foreach ($dates as $date) {
+            if ($methodCountsP[$method][$date] > 0)
+                $methodCounts[$method][] = $methodCountsP[$method][$date];
+            else
+                $methodCounts[$method][] = 0;
+        }
+    }
+    $dates = array_values($dates);
+    $totalRecords = array_sum_all($methodCounts);
+
+    function formatCallback($aVal) {
+        global $totalRecords;
+        return percent($aVal, $totalRecords) . "%";
+    }
+
+    $attributes = Array();
+    $attributeNames = Array(
+        "Consultancies",
+        "Confidentialities"
+    );
+    $query = 'SELECT \'consultancy\', count(1) FROM contractnotice WHERE $agencyQ $supplierQ consultancy=\'Yes\' AND "childCN" is null;';
+    $result = $conn->query($query);
+    $row = $result->fetch(PDO::FETCH_ASSOC);
+    $attributes[0] = $row[1];
+    $query = 'SELECT \'confidentiality\', count(1) FROM contractnotice WHERE $agencyQ $supplierQ (confidentialityContract=\'Yes\' OR confidentialityOutputs=\'Yes\') AND "childCN" is null;';
+    $result = $conn->query($query);
+    $row = $result->fetch(PDO::FETCH_ASSOC);
+    $attributes[1] = $row[1];
+}
+
+function ContractPublishedGraph() {
+
+    global $conn, $yearQ;
+    $query = 'SELECT extract(year from "contractStart"),extract(month from "contractStart"),
+SUM(value) as val, count(1) as count FROM contractnotice
+WHERE '.$yearQ.' (extract(year from "contractStart") >= 2008)
+AND "childCN" is null
+GROUP BY extract(month from "contractStart"), extract(year from "contractStart") 
+ORDER BY extract(year from "contractStart"), extract(month from "contractStart")';
+
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    $dates = Array();
+    $values = Array();
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        $value = number_format(doubleval($row["val"]), 2);
+        $month_name = date('F', mktime(0, 0, 0, $row[1]));
+        $dates[] = $month_name . " {$row[0]}";
+        $counts[] = doubleval($row["count"]);
+        $values[] = doubleval($row["val"]);
+    }
+}
+
+function ContractStartingGraph() {
+
+    global $conn, $yearQ;
+    $query = 'SELECT extract (YEAR from "contractStart") as year, extract (MONTH from "contractStart") as month,
+SUM(value) as val, count(*) as count FROM contractnotice
+WHERE '.$yearQ.' extract (YEAR from "contractStart") >= 2008
+AND "childCN" is null 
+GROUP BY extract (MONTH from "contractStart"), extract (YEAR from "contractStart") 
+ORDER BY extract (YEAR from "contractStart"), extract (MONTH from"contractStart")';
+
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+$dates = Array();
+    $counts = Array();
+    $values = Array();
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        $value = number_format(doubleval($row["val"]), 2);
+        $date = mktime(0, 0, 0, $row["month"],1,$row["year"])*1000;
+        if ($row["count"] > 1) {
+        $dates[] = $date;
+        $counts[] = $row["count"];
+        $values[] = $row["val"];
+        }
+    }
+    includeFlot();
+    ?>
+    <center><div id="cstart" style="width:900px;height:550px"></div></center>
+    <script type="text/javascript"> 
+        var placeholder = $("#cstart");
+        $(function () {
+
+            var d1 = [];
+            var d2 = [];
+    <?php
+    foreach ($counts as $key => $count) {
+
+        echo "d1.push([ " . $dates[$key] . ", " . $count . "]); \n";
+    };
+    foreach ($values as $key => $value) {
+
+        echo "d2.push([ " . $dates[$key] . ", " . $value . "]); \n";
+    };    
+    d1d2Graph(true);
+}
+
+function MethodCountGraph() {
+
+    global $conn;
+    $query = 'select procurementMethod, count(1) as count, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
+where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month';
+    $methods = Array("Direct", "Open", "Select");
+    $dates = Array();
+    $methodCountsP = Array();
+    $methodCounts = Array();
+    $maxValue = 0;
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        if ($row['value'] > $maxValue)
+            $maxValue = $row['value'];
+        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
+        if (array_search($date, $dates) === false) {
+            $dates[$row["year"] * 100 + $row["month"]] = $date;
+            ksort($dates);
+        }
+        $methodCountsP[$row["procurementMethod"]][$date] = $row["count"];
+    }
+    foreach ($methods as $method) {
+        foreach ($dates as $date) {
+            if ($methodCountsP[$method][$date] > 0)
+                $methodCounts[$method][] = $methodCountsP[$method][$date];
+            else
+                $methodCounts[$method][] = 0;
+        }
+    }
+    $dates = array_values($dates);
+    $totalRecords = array_sum_all($methodCounts);
+}
+
+function MethodValueGraph() {
+
+    global $conn;
+    $query = "select procurementMethod, SUM(value) as value, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice
+where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month";
+    $methods = Array("Direct", "Open", "Select");
+    $dates = Array();
+    $methodValuesP = Array();
+    $methodValues = Array();
+    $maxValue = 0;
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        if ($row['value'] > $maxValue)
+            $maxValue = $row['value'];
+        $date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"];
+        if (array_search($date, $dates) === false) {
+            $dates[$row["year"] * 100 + $row["month"]] = $date;
+            ksort($dates);
+        }
+        $methodValuesP[$row["procurementMethod"]][$date] = $row["value"];
+    }
+    foreach ($methods as $method) {
+        foreach ($dates as $date) {
+            if ($methodValuesP[$method][$date] > 0)
+                $methodValues[$method][] = $methodValuesP[$method][$date];
+            else
+                $methodValues[$method][] = 0;
+        }
+    }
+    $dates = array_values($dates);
+    $totalRecords = array_sum_all($methodValues);
+}
+
+function SuppliersGraph() {
+
+    global $conn, $yearQ;
+    includeFlot();
+    $topX = 10;
+    $suppliers = Array();
+    $values = Array();
+
+
+    $query = 'SELECT SUM("value") as value, mode("supplierName") as supplierName, (
+ case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as supplierID 
+FROM contractnotice
+WHERE ' .$yearQ . ' "childCN" is null
+GROUP BY supplierID
+ORDER BY value DESC
+LIMIT ' . $topX;
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+    foreach ($query->fetchAll() as $row) {
+        setlocale(LC_MONETARY, 'en_US');
+        // $value = number_format(doubleval($row["value"]) , 2);
+        $suppliers[] = ucsmart($row[1]);
+        $values[] = doubleval($row["value"]);
+    }
+
+    $query = 'SELECT sum(a.svalue) as val, suppliercountry from (SELECT sum("value") as svalue,  max("supplierCountry") as suppliercountry
+FROM contractnotice WHERE "childCN" is null and "supplierCountry" NOT ILIKE \'Australia\'
+GROUP BY "supplierName" ORDER BY svalue LIMIT 18446744073 OFFSET 10) as a group by suppliercountry order by val DESC limit 10 ';
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    foreach ($query->fetchAll() as $row) {
+        $suppliers[] = "Other suppliers in " . ucsmart($row["suppliercountry"]);
+        $values[] = doubleval($row[0]);
+    }
+
+
+    $query = 'SELECT sum(a.value) as val, substring(
+supplierpostcode from 0 for 2) as postcode from (SELECT sum(value) as value, max("supplierPostcode") as supplierpostcode, max("supplierCountry") as suppliercountry
+FROM contractnotice WHERE "childCN" is null 
+GROUP BY "supplierABN" ORDER BY sum(value) LIMIT 1844674 OFFSET 10) as a
+WHERE (suppliercountry ILIKE \'Australia\')
+group by substring(
+supplierpostcode from 0 for 2)
+order by val DESC;';
+    $query = $conn->prepare($query);
+    $query->execute();
+    databaseError($conn->errorInfo());
+
+    foreach ($query->fetchAll() as $row) {
+        if ($row['postcode'][0] == 2 && $row['postcode'][1] == 6)
+            $ACTvalue += $row[0];
+        else if ($row['postcode'][0] == 2 || $row['postcode'][0] == 1)
+            $NSWvalue += $row[0];
+        else if ($row['postcode'][0] == 3 || $row['postcode'][0] == 8)
+            $Vicvalue += $row[0];
+        else if ($row['postcode'][0] == 4 || $row['postcode'][0] == 9)
+            $QLDvalue += $row[0];
+        else if ($row['postcode'][0] == 5)
+            $SAvalue += $row[0];
+        else if ($row['postcode'][0] == 6)
+            $WAvalue += $row[0];
+        else if ($row['postcode'][0] == 7)
+            $Tasvalue += $row[0];
+        else if ($row['postcode'][0] == 0)
+            $NTvalue += $row[0];
+    }
+    $suppliers[] = "Other suppliers in Australia - ACT";
+    $values[] = doubleval($ACTvalue);
+    $suppliers[] = "Other suppliers in Australia - NSW";
+    $values[] = doubleval($NSWvalue);
+    $suppliers[] = "Other suppliers in Australia - Victoria";
+    $values[] = doubleval($Vicvalue);
+    $suppliers[] = "Other suppliers in Australia - Queensland";
+    $values[] = doubleval($QLDvalue);
+    $suppliers[] = "Other suppliers in Australia - NT";
+    $values[] = doubleval($NTvalue);
+    $suppliers[] = "Other suppliers in Australia - West Australia";
+    $values[] = doubleval($WAvalue);
+    $suppliers[] = "Other suppliers in Australia - South Australia";
+    $values[] = doubleval($SAvalue);
+    $suppliers[] = "Other suppliers in Australia - Tasmania";
+    $values[] = doubleval($Tasvalue);
+    ?>
+    <script type="text/javascript">
+        $(function () {
+            // data
+            var data = [
+    <?php
+    foreach ($suppliers as $key => $supplier) {
+        echo '{ label: "' . $supplier . '",  data: ' . doubleval($values[$key]) . '},';
+    }
+    ?>
+            ];
+            // 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
+}
 ?>