From: maxious Date: Sun, 31 Jul 2011 14:17:09 +0000 Subject: Integrate supplier piechart X-Git-Url: http://maxious.lambdacomplex.org/git/?p=contractdashboard.git&a=commitdiff&h=1df4932d1afa9d62dc9ec59b8e822dc18e07d49d --- Integrate supplier piechart --- --- a/admin/linkAmendments.php +++ b/admin/linkAmendments.php @@ -25,4 +25,5 @@ else print_r($errors); } +// also need to eliminate CN 100528/100529 - check for double parent CNs with no childCN, latest sequent CN id wins childCN = 0 ?> --- a/displayCalendar.php +++ b/displayCalendar.php @@ -6,15 +6,23 @@ if ($_REQUEST['month']) { echo "

".$_REQUEST['month']."

"; $monthParts = explode("-",$_REQUEST['month']); - $query = "SELECT CNID, description, value, agencyName, category, contractStart, supplierName - FROM `contractnotice` - WHERE childCN = 0 - AND YEAR(contractStart) = {$monthParts[1]} - AND MONTH(contractStart) = {$monthParts[0]} - ORDER BY value DESC"; - $result = mysql_query($query); -echo ''; - echo ''; + $query = 'SELECT "CNID", "description", "value", "agencyName", "category", "contractStart", "supplierName" + FROM contractnotice + WHERE "childCN" = 0 + AND extract(year from "contractStart") = :year + AND extract(month from "contractStart") = :month + ORDER BY value DESC'; +$query = $conn->prepare($query); +$query->bindParam(":month", $monthParts[0]); + +$query->bindParam(":year", $monthParts[1]); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + } + +MethodCountGraph($supplier); +CnCGraph($supplier); echo " @@ -26,7 +34,7 @@ "; - while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + foreach ($query->fetchAll() as $row) { setlocale(LC_MONETARY, 'en_US'); $value = number_format(doubleval($row['value']) , 2); echo (" @@ -52,10 +60,14 @@ echo ''; -$query = "SELECT YEAR(contractStart), MONTH(contractStart), -SUM(value) as val, count(1) as count FROM `contractnotice` WHERE childCN = 0 GROUP BY MONTH(contractStart), YEAR(contractStart) ORDER BY YEAR(contractStart), MONTH(contractStart) "; +$query = 'SELECT extract(year from "contractStart"), extract(month from "contractStart"), +SUM(value) as val, count(1) as count FROM contractnotice WHERE "childCN" = 0 GROUP BY extract(year from "contractStart"), extract(month from "contractStart") ORDER BY extract(year from "contractStart"), extract(month from "contractStart") '; +$query = $conn->prepare($query); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + } -$result = mysql_query($query); echo "
Supplier
@@ -63,7 +75,7 @@ "; -while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + 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]) ); --- a/displayHeatmap.php +++ b/displayHeatmap.php @@ -1,7 +1,7 @@ = '$year' AND supplierPostcode = postcode GROUP BY supplierPostcode"; -$result = mysql_query($query); +$query = 'SELECT "supplierPostcode", sum("value") as value, max(lat) as lat, max(lon) as lon FROM contractnotice inner join postcodes on "supplierPostcode" = postcode::text where "childCN" = 0 AND "supplierCountry" = \'Australia\' GROUP BY "supplierPostcode"'; +$query = $conn->prepare($query); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + } + $left = "FFFF50"; $right= "EF0050"; @@ -41,8 +46,7 @@ $colorset[$i] = imagecolorallocatealpha($handle, $leftR + ($i*(($rightR-$leftR)/250)), $leftG + ($i*(($rightG-$leftG)/250)), $leftB + ($i*(($rightB-$leftB)/250)),117 - ($i/250)*40); } -while ($row = mysql_fetch_array($result, MYSQL_BOTH)) -{ + foreach ($query->fetchAll() as $row) { $xpage = round((($XRange - ($MaxX - $row['lon'])) / $xdivlength)); if ($row['lat'] < -40.25) $row['lat']-= 0.75; $ypage = round(($YRange - (abs($MaxY) - abs($row['lat']))) / $ydivheight); --- a/displaySupplier.php +++ b/displaySupplier.php @@ -4,9 +4,9 @@ include_header("Supplier"); $supplierS = htmlentities(strip_tags($_REQUEST['supplier'])); - echo ''; - echo ''; - echo ''; + MethodCountGraph($supplierS); + CnCGraph($supplierS); + MethodValueGraph($supplierS); /*lobbyist ties links to ABR/ASIC/Google News/ASX/Court records @@ -62,6 +62,7 @@ histograph of supplier size/value */ include_header("Suppliers"); +suppliersGraph(); $query = 'SELECT SUM("value") as val, MAX("supplierName") as supplierName, "supplierABN",( case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as supplierID FROM contractnotice --- a/lib/graphs.inc.php +++ b/lib/graphs.inc.php @@ -296,40 +296,63 @@ } function SuppliersGraph() { + + global $conn; + includeFlot(); $topX = 10; -$query = "SELECT value, supplierName -FROM `contractnotice` WHERE (YEAR(contractStart) >= 2009) AND childCN = 0 -GROUP BY supplierABN ORDER BY value DESC limit $topX"; -$result = mysql_query($query); $suppliers = Array(); $values = Array(); -while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + + +$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" = 0 +GROUP BY supplierID +ORDER BY value DESC +LIMIT '.$topX; +$query = $conn->prepare($query); + $query->execute(); + if (!$query) { + 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"]); } -mysql_free_result($result); - -$query = "SELECT sum(a.value) as val, supplierCountry from (SELECT value, supplierName, supplierCountry -FROM `contractnotice` WHERE (YEAR(contractStart) >= 2009) AND childCN = 0 -GROUP BY supplierName ORDER BY value LIMIT 18446744073709551610 OFFSET $topX) as a group by supplierCountry order by val DESC limit 5 offset 1"; -$result = mysql_query($query); -while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { - $suppliers[] = "Other suppliers in ".ucsmart($row["supplierCountry"]); + +$query = 'SELECT sum(a.svalue) as val, suppliercountry from (SELECT sum("value") as svalue, max("supplierCountry") as suppliercountry +FROM contractnotice WHERE "childCN" = 0 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(); + if (!$query) { + databaseError($conn->errorInfo()); + } + + foreach ($query->fetchAll() as $row) { + $suppliers[] = "Other suppliers in ".ucsmart($row["suppliercountry"]); $values[] = doubleval($row[0]); } -mysql_free_result($result); - -$query = "SELECT sum(a.value) as val, TRUNCATE(supplierPostcode,-2) as postcode from (SELECT value, supplierName, supplierPostcode, supplierCountry -FROM `contractnotice` WHERE (YEAR(contractStart) >= 2009) AND childCN = 0 -GROUP BY supplierName ORDER BY value LIMIT 18446744073709551610 OFFSET $topX) as a -WHERE (supplierCountry LIKE 'Australia' OR supplierCountry LIKE 'AUSTRALIA') AND supplierPostcode < 10000 -group by TRUNCATE(supplierPostcode,-2) -order by val DESC"; -$result = mysql_query($query); -while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { + +$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" = 0 +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(); + if (!$query) { + 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]; @@ -339,7 +362,6 @@ else if ($row['postcode'][0] == 7) $Tasvalue += $row[0]; else if ($row['postcode'][0] == 0) $NTvalue += $row[0]; } -mysql_free_result($result); $suppliers[] = "Other suppliers in Australia - ACT"; $values[] = doubleval($ACTvalue); $suppliers[] = "Other suppliers in Australia - NSW"; @@ -356,7 +378,53 @@ $values[] = doubleval($SAvalue); $suppliers[] = "Other suppliers in Australia - Tasmania"; $values[] = doubleval($Tasvalue); - -} + ?> + +
+ +
Month/YearNumber of Contracts