From: root Date: Wed, 18 Jan 2017 09:16:19 +0000 Subject: fix search X-Git-Url: http://maxious.lambdacomplex.org/git/?p=contractdashboard.git&a=commitdiff&h=7e7016ae152090fbd943c65bebfac8c59d0c4909 --- fix search --- --- a/displayAgency.php +++ b/displayAgency.php @@ -7,24 +7,10 @@ include_header($agency); echo '

'.$agency.'

'; agencySuppliersGraph($agency); -// MethodCountGraph($agency); - // CnCGraph($agency); - // MethodValueGraph($agency); - /* biggest contracts - spending by year - spending by industry/category - spending by supplier - - spread procurement methods (stacked bar graph) - + percent consultancies + percent confidential (bar graph) - - Average value by procurement type - - --- info - website, procurement plan, annual reports - Breakdown of divisions/branches - Breakdown percentage,number,value by procurement type - Histograph, overlaying number value reported per week over X years +/* + * * Common categories and uncommon categories + * Procurement method in text, seperate Open via SON from Open + * Consultancies, Confidentialities percentage Compliance statistics: amendments, delay in reporting average and number completely late */ $query = 'SELECT "CNID", "description", "value", "agencyName", "category", --- a/displaySupplier.php +++ b/displaySupplier.php @@ -2,27 +2,26 @@ include_once ("./lib/common.inc.php"); if ($_REQUEST['supplier']) { - $supplierS = htmlentities(strip_tags($_REQUEST['supplier'])); - include_header(str_replace("%","",$supplierName)); -echo '

'.str_replace("%","",$supplierName).'

'; +$title = $supplierName; +if ($supplierABN) { + $query = 'SELECT text_mode("supplierName") as "supplierName" from contractnotice where "supplierABN" = :supplierABN group by "supplierABN"'; +$query = $conn->prepare($query); +$query->bindParam(":supplierABN", $supplierABN); + $query->execute(); + databaseError($conn->errorInfo()); + $title = reset($query->fetchAll())['supplierName']; +} + include_header(str_replace("%","",$title)); +echo '

'.str_replace("%","",$title).'

'; agenciesGraph(); - // MethodCountGraph($supplierS); - // CnCGraph($supplierS); - // MethodValueGraph($supplierS); - /* lobbyist ties - - links to ABR/ASIC/Google News/ASX/Court records - - total value to various agencies (bar graph) - - spread procurement methods + percent consultancies + percent confidential (bar graph) - - spread of contract values - - spread of industries (textual?) */ - // echo ''; - // echo ''; + /* + * Make supplier name the most common name for this ABN + * Common names and uncommon names + * Common categories and uncommon categories + * Procurement method in text, seperate Open via SON from Open + * Consultancies, Confidentialities percentage + */ $query = 'select contractnotice."SONID", min(title) as title, count(*), sum(value) as value from contractnotice inner join standingoffers on contractnotice."SONID" = standingoffers."SONID" WHERE ' .$yearQ . ' ' . $supplierQ . ' ' . $standardQ . ' and contractnotice."SONID" != \'\' group by contractnotice."SONID"'; @@ -36,7 +35,7 @@ } $query->execute(); databaseError($conn->errorInfo()); -echo " +echo "

Standing Offers/Panels

@@ -52,7 +51,7 @@ "); } - echo "
Standing Offer Contracts Count\$$value
+ echo "

Contracts

@@ -96,7 +95,7 @@ */ include_header("Suppliers"); suppliersGraph(); - $query = 'SELECT SUM("value") as val, mode("supplierName") as supplierName, "supplierABN",( + $query = 'SELECT SUM("value") as val, text_mode("supplierName") as supplierName, "supplierABN",( case when "supplierABN" != 0 THEN lower("supplierABN"::text) ELSE lower("supplierName") END) as supplierID FROM contractnotice WHERE ' .$yearQ . ' "childCN" is null --- a/install.sql +++ b/install.sql @@ -11,10 +11,15 @@ LANGUAGE 'sql' IMMUTABLE; -- Tell Postgres how to use our aggregate -CREATE AGGREGATE mode(anyelement) ( +CREATE AGGREGATE text_mode(anyelement) ( SFUNC=array_append, --Function to call for each row. Just builds the array STYPE=anyarray, FINALFUNC=_final_mode, --Function to call after everything has been added to array INITCOND='{}' --Initialize an empty array when starting ); +CREATE VIEW suppliers AS + select distinct on ("supplierABN") "supplierABN", "supplierName", count("supplierName") from contractnotice + where "supplierABN" is not null + group by "supplierABN", "supplierName" + order by "supplierABN" asc, count("supplierName") desc; --- a/lib/graphs.inc.php +++ b/lib/graphs.inc.php @@ -229,7 +229,7 @@ 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 + $query = 'SELECT SUM(value) as val, text_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); @@ -244,7 +244,7 @@ } - $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 + $query = 'SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, text_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); @@ -516,7 +516,7 @@ $values = Array(); - $query = 'SELECT SUM("value") as value, mode("supplierName") as supplierName, ( + $query = 'SELECT SUM("value") as value, text_mode("supplierName") as supplierName, ( case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as supplierID FROM contractnotice WHERE ' .$yearQ . ' "childCN" is null --- a/search_autosuggest.php +++ b/search_autosuggest.php @@ -6,10 +6,10 @@ $limit = isset($_GET['limit']) ? (int) $_GET['limit'] : 0; $aResults = array(); $count = 0; -if ($len) { - $query = 'SELECT mode("supplierName"), MAX("supplierABN"), count(*) as count +if ($len > 2) { + $query = 'SELECT text_mode("supplierName"), MAX("supplierABN"), count(*) as count FROM contractnotice -WHERE "supplierName" ILIKE :supplierName +WHERE "supplierName" ILIKE :supplierName or "supplierABN"::text = :supplierABN GROUP BY "supplierName" ORDER BY count(*) DESC LIMIT 4; @@ -17,12 +17,14 @@ $query = $conn->prepare($query); $supplierName = $input . '%'; $query->bindParam(":supplierName", $supplierName); + $supplierABN = $input ; + $query->bindParam(":supplierABN", $supplierABN); $query->execute(); databaseError($conn->errorInfo()); foreach ($query->fetchAll() as $row) { $count++; $aResults[] = array( - "id" => "supplier-" . $row[1] . '-' . $row[0], + "id" => "supplier-" . $row[1] . '-' . htmlspecialchars($row[0]), "value" => htmlspecialchars($row[0]), "info" => htmlspecialchars("Supplier - " . $row['count'] . " records") );
Contract Notice Number Contract Description