<?php | <?php |
error_reporting(E_ALL); | error_reporting(E_ALL); |
include_once("../lib/common.inc.php"); | include_once("../lib/common.inc.php"); |
$unspscresult = $conn->prepare('select * from "UNSPSCcategories";'); | $unspscresult = $conn->prepare('select * from "UNSPSCcategories";'); |
$unspscresult->execute(); | $unspscresult->execute(); |
foreach ($unspscresult->fetchAll() as $row) { | foreach ($unspscresult->fetchAll() as $row) { |
$row['Title'] = strtolower($row['Title']); | $row['Title'] = strtolower($row['Title']); |
$unspsc[strtolower($row['Title'])] = $row['UNSPSC']; | $unspsc[strtolower($row['Title'])] = $row['UNSPSC']; |
// some Australian spellings | // some Australian spellings |
$isiz = str_replace("iz", "is", $row['Title']); | $isiz = str_replace("iz", "is", $row['Title']); |
$unspsc[$isiz] = $row['UNSPSC']; | $unspsc[$isiz] = $row['UNSPSC']; |
$iseize = str_replace("ize", "ise", $row['Title']); | |
$unspsc[$iseize] = $row['UNSPSC']; | |
$filfill = str_replace("fill", "fil", $row['Title']); | $filfill = str_replace("fill", "fil", $row['Title']); |
$unspsc[$filfill] = $row['UNSPSC']; | $unspsc[$filfill] = $row['UNSPSC']; |
$ampersand = str_replace("&", "and", $row['Title']); | $ampersand = str_replace("&", "and", $row['Title']); |
$unspsc[$ampersand] = $row['UNSPSC']; | $unspsc[$ampersand] = $row['UNSPSC']; |
$defence = str_replace("efense", "efence", $row['Title']); | $defence = str_replace("efense", "efence", $row['Title']); |
$unspsc[$defence] = $row['UNSPSC']; | $unspsc[$defence] = $row['UNSPSC']; |
$armor = str_replace("rmored", "rmoured", $row['Title']); | $armor = str_replace("rmored", "rmoured", $row['Title']); |
$unspsc[$armor] = $row['UNSPSC']; | $unspsc[$armor] = $row['UNSPSC']; |
$labour = str_replace("labor", "labour", $row['Title']); | |
$unspsc[$labour] = $row['UNSPSC']; | |
$erre = str_replace("er", "re", $row['Title']); | $erre = str_replace("er", "re", $row['Title']); |
$unspsc[$erre] = $row['UNSPSC']; | $unspsc[$erre] = $row['UNSPSC']; |
$center = str_replace("center", "centre", $row['Title']); | $center = str_replace("center", "centre", $row['Title']); |
$unspsc[$center] = $row['UNSPSC']; | $unspsc[$center] = $row['UNSPSC']; |
$accessory = str_replace("accesor", "accessor", $row['Title']); | $accessory = str_replace("accesor", "accessor", $row['Title']); |
$unspsc[$accessory] = $row['UNSPSC']; | $unspsc[$accessory] = $row['UNSPSC']; |
$lyslyz = str_replace("lyz", "lys", $row['Title']); | $lyslyz = str_replace("lyz", "lys", $row['Title']); |
$unspsc[$lyslyz] = $row['UNSPSC']; | $unspsc[$lyslyz] = $row['UNSPSC']; |
$tire = str_replace("ire", "yre", $row['Title']); | $tire = str_replace("ire", "yre", $row['Title']); |
$unspsc[$tire] = $row['UNSPSC']; | $unspsc[$tire] = $row['UNSPSC']; |
$pe = str_replace("pe", "pae", $row['Title']); | $pe = str_replace("pe", "pae", $row['Title']); |
$unspsc[$pe] = $row['UNSPSC']; | $unspsc[$pe] = $row['UNSPSC']; |
$ane = str_replace("ane", "anae", $row['Title']); | $ane = str_replace("ane", "anae", $row['Title']); |
$unspsc[$ane] = $row['UNSPSC']; | $unspsc[$ane] = $row['UNSPSC']; |
$airo = str_replace("airplane", "aeroplane", $row['Title']); | $airo = str_replace("airplane", "aeroplane", $row['Title']); |
$unspsc[$airo] = $row['UNSPSC']; | $unspsc[$airo] = $row['UNSPSC']; |
// some divergence from standard | // some divergence from standard |
$services = str_replace( " services", "", $row['Title']); | |
$unspsc[$services] = $row['UNSPSC']; | |
$microa = str_replace( "micro assemblies", "microassemblies", $row['Title']); | |
$unspsc[$microa] = $row['UNSPSC']; | |
$lightb = str_replace( "light bulbs", "lightbulbs", $row['Title']); | |
$unspsc[$lightb] = $row['UNSPSC']; | |
$kitchen = str_replace( "domestic kitchenware and kitchen supplies", "domestic kitchenware", $row['Title']); | |
$unspsc[$kitchen] = $row['UNSPSC']; | |
$forensicit = str_replace("Information technology consultation services", "Forensic IT Services", $row['Title']); | $forensicit = str_replace("Information technology consultation services", "Forensic IT Services", $row['Title']); |
$unspsc[$forensicit] = $row['UNSPSC']; | $unspsc[$forensicit] = $row['UNSPSC']; |
$powercable = str_replace( "Power cable", "Power cable installation and supply", $row['Title']); | $powercable = str_replace( "Power cable", "Power cable installation and supply", $row['Title']); |
$unspsc[$powercable] = $row['UNSPSC']; | $unspsc[$powercable] = $row['UNSPSC']; |
$tobacco = str_replace("Food Beverage and Tobacco Products", "Food and Beverage Products", $row['Title']); | $tobacco = str_replace("Food Beverage and Tobacco Products", "Food and Beverage Products", $row['Title']); |
$unspsc[$tobacco] = $row['UNSPSC']; | $unspsc[$tobacco] = $row['UNSPSC']; |
$architect = str_replace("Building and Construction and Maintenance Services", "Architectural services", $row['Title']); | $architect = str_replace("Building and Construction and Maintenance Services", "Architectural services", $row['Title']); |
$unspsc[$architect] = $row['UNSPSC']; | $unspsc[$architect] = $row['UNSPSC']; |
$powercable = str_replace("Power cable", "Power cable installation and supply", $row['Title']); | $powercable = str_replace("Power cable", "Power cable installation and supply", $row['Title']); |
$unspsc[$powercable] = $row['UNSPSC']; | $unspsc[$powercable] = $row['UNSPSC']; |
$unemployment = str_replace("Unemployment services", "Employment services", $row['Title']); | $unemployment = str_replace("Unemployment services", "Employment services", $row['Title']); |
$unspsc[$unemployment] = $row['UNSPSC']; | $unspsc[$unemployment] = $row['UNSPSC']; |
// some just plain wrong | // some just plain wrong |
$noOilRigs = str_replace("Building and Construction and Maintenance Services", "Management and provision of all facilities engineering modification and maintenance services for a site or platform", $row['Title']); | $noOilRigs = str_replace("Building and Construction and Maintenance Services", "Management and provision of all facilities engineering modification and maintenance services for a site or platform", $row['Title']); |
$unspsc[$noOilRigs] = $row['UNSPSC']; | $unspsc[$noOilRigs] = $row['UNSPSC']; |
} | } |
//print_r($unspsc); | //print_r($unspsc); |
$query = 'SELECT "CNID",lower("category") as category,"value" | $query = 'SELECT "CNID",lower("category") as category,"value" |
FROM contractnotice | FROM contractnotice |
WHERE "categoryUNSPSC" IS NULL OR "categoryUNSPSC" = 0'; | WHERE "categoryUNSPSC" IS NULL OR "categoryUNSPSC" = 0'; |
$emptycatresult = $conn->prepare($query); | $emptycatresult = $conn->prepare($query); |
$missing = Array(); | $missing = Array(); |
$emptycatresult->execute(); | $emptycatresult->execute(); |
foreach ($emptycatresult->fetchAll() as $record) { | foreach ($emptycatresult->fetchAll() as $record) { |
if (!isset($unspsc[$record['category']]) || $unspsc[$record['category']] == "") { | if (!isset($unspsc[$record['category']]) || $unspsc[$record['category']] == "") { |
$missing[$record['category']] = (isset($missing[$record['category']]) ? $missing[$record['category']] : 0) + $record['value']; | $missing[$record['category']] = (isset($missing[$record['category']]) ? $missing[$record['category']] : 0) + $record['value']; |
echo "<br>\n Category not found for: \n"; | echo "<br>\n Category not found for: \n"; |
print_r($record); | print_r($record); |
} else { | } else { |
$result = $conn->exec('UPDATE contractnotice SET "categoryUNSPSC" = \'' . $unspsc[$record['category']] . '\' where "CNID" = \'' . $record['CNID'] . '\';'); | $result = $conn->exec('UPDATE contractnotice SET "categoryUNSPSC" = \'' . $unspsc[$record['category']] . '\' where "CNID" = \'' . $record['CNID'] . '\';'); |
if ($result) { | if ($result) { |
echo $record['CNID'] . " set to " . ($unspsc[$record['category']]) . " <br>\n"; | echo $record['CNID'] . " set to " . ($unspsc[$record['category']]) . " <br>\n"; |
} else { | } else { |
echo "error<br>"; | echo "error<br>"; |
print_r($conn->errorInfo()); | print_r($conn->errorInfo()); |
} | } |
} | } |
} | } |
asort($missing, SORT_NUMERIC); | asort($missing, SORT_NUMERIC); |
print_r($missing); | print_r($missing); |
?> | ?> |
<?php | <?php |
include_once ("./lib/common.inc.php"); | include_once("./lib/common.inc.php"); |
if ($_REQUEST['category']) { | if ($_REQUEST['category']) { |
include_header($_REQUEST['category']." goods and services"); | |
echo "<center><h1>".$_REQUEST['category']."</h1></center>"; | // if UNSPSC code known show, say if is a parent and offer to include children, if child link to parent |
$query = 'SELECT "CNID", description, value, "agencyName", category, "contractStart", "supplierName" | $query = 'SELECT key, d."UNSPSC", "Title" AS category FROM |
(SELECT \'categoryUNSPSC\' AS key, "categoryUNSPSC"::TEXT AS "UNSPSC" FROM contractnotice WHERE category = :category | |
UNION SELECT \'parentUNSPSC\', substr( "categoryUNSPSC"::TEXT, 0, 5 )||\'0000\'::TEXT AS "parentUNSPSC" FROM contractnotice WHERE category = :category | |
UNION SELECT \'grandparentUNSPSC\', substr( "categoryUNSPSC"::TEXT, 0, 3 )||\'000000\'::TEXT AS "grandparentUNSPSC" | |
FROM contractnotice WHERE category = :category ) d | |
INNER JOIN (SELECT "Title", "UNSPSC" FROM "UNSPSCcategories" ) c ON c."UNSPSC"=d."UNSPSC"::INTEGER'; | |
$query = $conn->prepare($query); | |
$query->bindParam(":category", $_REQUEST['category']); | |
$query->execute(); | |
databaseError($conn->errorInfo()); | |
$unspsc = Array(); | |
foreach ($query->fetchAll() as $d) { | |
$unspsc[$d['key']] = $d; | |
} | |
include_header($_REQUEST['category'] . " goods and services"); | |
if ($unspsc['categoryUNSPSC']) { | |
echo "<center><h1>{$_REQUEST['category']} ({$unspsc['categoryUNSPSC']['UNSPSC']})</h1></center>"; | |
if ($unspsc['parentUNSPSC']['UNSPSC'] != $unspsc['categoryUNSPSC']['UNSPSC']) { | |
echo "Parent Category: <a href='displayCategory.php?category={$unspsc['parentUNSPSC']['category']}'>{$unspsc['parentUNSPSC']['UNSPSC']} {$unspsc['parentUNSPSC']['category']}</a> <br/>"; | |
} | |
if ($unspsc['grandparentUNSPSC']['UNSPSC'] != $unspsc['categoryUNSPSC']['UNSPSC']) { | |
echo "Grandparent Category: <a href='displayCategory.php?category={$unspsc['grandparentUNSPSC']['category']}'>{$unspsc['grandparentUNSPSC']['UNSPSC']} {$unspsc['grandparentUNSPSC']['category']}</a></br>"; | |
} | |
} else { | |
echo "<center><h1>{$_REQUEST['category']}</h1></center>"; | |
} | |
$query = ' | |
SELECT | |
sum((consultancy = \'Yes\')::int) AS consultancy, | |
sum(("confidentialityContract" = \'Yes\')::int) AS "confidentialityContract", | |
sum(("confidentialityOutputs" = \'Yes\')::int) AS "confidentialityOutputs", | |
sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS null)::int) AS open, | |
sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS NOT null)::int) AS "openSON", | |
sum(("procurementMethod" = \'Prequalified tender\' OR "procurementMethod" = \'Select\')::INT) AS prequalified, | |
sum(("procurementMethod" = \'Direct\' OR "procurementMethod" = \'Limited tender\')::int) AS limited, | |
sum("value") as total_value, | |
COUNT(*) AS total | |
FROM contractnotice | |
WHERE category = :category AND ' . " $yearQ $standardQ "; | |
$query = $conn->prepare($query); | |
$query->bindParam(":category", $_REQUEST['category']); | |
$query->execute(); | |
databaseError($conn->errorInfo()); | |
$stats = reset($query->fetchAll()); | |
show_stats($stats); | |
$query = 'SELECT "CNID", description, value, "agencyName", category, "contractStart", "supplierName" | |
FROM contractnotice | FROM contractnotice |
WHERE '.$yearQ.' "childCN" is null | WHERE ' . $yearQ . ' "childCN" IS NULL |
AND category = :category | AND CATEGORY = :CATEGORY |
ORDER BY value DESC'; | ORDER BY VALUE DESC'; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":category", $_REQUEST['category']); | $query->bindParam(":CATEGORY", $_REQUEST['category']); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
echo "<table> <thead> | echo "<table> <thead> |
<tr> | <tr> |
<th>Contract Notice Number</th> | <th>Contract Notice Number</th> |
<th>Contract Description</th> | <th>Contract Description</th> |
<th>Total Contract Value</th> | <th>Total Contract Value</th> |
<th>Agency</th> | <th>Agency</th> |
<th>Contract Start Date</th> | <th>Contract Start Date</th> |
<th>Supplier</th> | <th>Supplier</th> |
</tr> | </tr> |
</thead>"; | </thead>"; |
foreach ($query->fetchAll() as $row) { | foreach ($query->fetchAll() as $row) { |
setlocale(LC_MONETARY, 'en_US'); | setlocale(LC_MONETARY, 'en_US'); |
$value = number_format(doubleval($row['value']) , 2); | $value = number_format(doubleval($row['value']), 2); |
echo ("<tr> | echo("<tr> |
<td><a href=\"displayContract.php?CNID={$row['CNID']}\">{$row['CNID']}</a></td> | <td><a href=\"displayContract.php?CNID={$row['CNID']}\">{$row['CNID']}</a></td> |
<td><b>{$row['description']}</b></a></td> | <td><b>{$row['description']}</b></a></td> |
<td>\$$value</td><td>{$row['agencyName']}</td> | <td>\$$value</td><td>{$row['agencyName']}</td> |
<td>{$row['contractStart']}</td> | <td>{$row['contractStart']}</td> |
<td>{$row['supplierName']}</td> | <td>{$row['supplierName']}</td> |
</tr>"); | </tr>"); |
} | } |
echo "</table>"; | echo "</table>"; |
} else { | } else { |
/* | /* |
split by main categories | split by main categories |
*/ | */ |
include_header("Categories"); | include_header("Categories"); |
$query = 'SELECT sum(value), category | $query = 'SELECT sum(value), category |
FROM contractnotice | FROM contractnotice |
WHERE '.$yearQ.' "childCN" is null | WHERE ' . $yearQ . ' "childCN" IS NULL |
GROUP BY category ORDER BY sum(value) DESC '; | GROUP BY CATEGORY ORDER BY sum(VALUE) DESC '; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
echo "<table> <thead> | echo "<table> <thead> |
<tr> | <tr> |
<th>Category</th> | <th>Category</th> |
<th>Total Contracts Value</th> | <th>Total Contracts Value</th> |
</tr> | </tr> |
</thead>"; | </thead>"; |
foreach ($query->fetchAll() as $row) { | foreach ($query->fetchAll() as $row) { |
setlocale(LC_MONETARY, 'en_US'); | setlocale(LC_MONETARY, 'en_US'); |
$value = number_format(doubleval($row[0]) , 2); | $value = number_format(doubleval($row[0]), 2); |
echo ("<tr><td><A href=\"displayCategory.php?category={$row[1]}\"><b>{$row[1]}</b></a></td><td>\$$value</td></tr>"); | echo("<tr><td><A href=\"displayCategory.php?category={$row[1]}\"><b>{$row[1]}</b></a></td><td>\$$value</td></tr>"); |
} | } |
echo "</table>"; | echo "</table>"; |
} | } |
include_footer(); | include_footer(); |
?> | ?> |
<?php | <?php |
include_once("./lib/common.inc.php"); | include_once("./lib/common.inc.php"); |
if ($_REQUEST['SONID']) { | if ($_REQUEST['SONID']) { |
$query = 'SELECT title FROM standingoffers WHERE "SONID" = :SONID'; | $query = 'SELECT title FROM standingoffers WHERE "SONID" = :SONID'; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":SONID", $_REQUEST['SONID']); | $query->bindParam(":SONID", $_REQUEST['SONID']); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
$title = reset($query->fetchAll())['title']; | $title = reset($query->fetchAll())['title']; |
include_header($title); | include_header($title); |
echo "<center><h1>" . $_REQUEST['SONID'] . " - " . $title . "</h1></center>"; | echo "<center><h1>" . $_REQUEST['SONID'] . " - " . $title . "</h1></center>"; |
echo '<br><a href="https://www.tenders.gov.au/?event=public.advancedsearch.CNSONRedirect&type=sonSearchEvent&SONID=' . $_REQUEST['SONID'] . '"> View original record @ tenders.gov.au</a><br>'; | echo '<br><a href="https://www.tenders.gov.au/?event=public.advancedsearch.CNSONRedirect&type=sonSearchEvent&SONID=' . $_REQUEST['SONID'] . '"> View original record @ tenders.gov.au</a><br>'; |
$query = ' | $query = ' |
SELECT | SELECT |
sum((consultancy = \'Yes\')::int) AS consultancy, | sum((consultancy = \'Yes\')::int) AS consultancy, |
sum(("confidentialityContract" = \'Yes\')::int) AS "confidentialityContract", | sum(("confidentialityContract" = \'Yes\')::int) AS "confidentialityContract", |
sum(("confidentialityOutputs" = \'Yes\')::int) AS "confidentialityOutputs", | sum(("confidentialityOutputs" = \'Yes\')::int) AS "confidentialityOutputs", |
sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS null)::int) AS open, | sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS null)::int) AS open, |
sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS NOT null)::int) AS "openSON", | sum((("procurementMethod" = \'Open\' OR "procurementMethod" = \'Open tender\') AND "SONID" IS NOT null)::int) AS "openSON", |
sum(("procurementMethod" = \'Prequalified tender\' OR "procurementMethod" = \'Select\')::INT) AS prequalified, | sum(("procurementMethod" = \'Prequalified tender\' OR "procurementMethod" = \'Select\')::INT) AS prequalified, |
sum(("procurementMethod" = \'Direct\' OR "procurementMethod" = \'Limited tender\')::int) AS limited, | sum(("procurementMethod" = \'Direct\' OR "procurementMethod" = \'Limited tender\')::int) AS limited, |
sum("value") as total_value, | sum("value") as total_value, |
COUNT(*) AS total | COUNT(*) AS total |
FROM contractnotice | FROM contractnotice |
WHERE "SONID" = :SONID AND ' . " $yearQ $standardQ " ; | WHERE "SONID" = :SONID AND ' . " $yearQ $standardQ " ; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":SONID", $_REQUEST['SONID']); | $query->bindParam(":SONID", $_REQUEST['SONID']); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
$stats = reset($query->fetchAll()); | $stats = reset($query->fetchAll()); |
show_stats($stats); | show_stats($stats); |
$query = 'SELECT category, min("categoryUNSPSC") AS "categoryUNSPSC", count(*) AS count, sum(value) AS value | $query = 'SELECT category, min("categoryUNSPSC") AS "categoryUNSPSC", count(*) AS count, sum(value) AS value |
FROM contractnotice | FROM contractnotice |
WHERE "SONID" = :SONID AND ' . " $yearQ $standardQ " . ' | WHERE "SONID" = :SONID AND ' . " $yearQ $standardQ " . ' |
GROUP BY category'; | GROUP BY category'; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":SONID", $_REQUEST['SONID']); | $query->bindParam(":SONID", $_REQUEST['SONID']); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
echo "<h3>Categories</h3><table> <thead> | echo "<h3>Categories</h3><table> <thead> |
<tr> | <tr> |
<th>Category</th> | <th>Category</th> |
<th>Contracts Count</th> | <th>Contracts Count</th> |
<th>Total Contract Value</th> | <th>Total Contract Value</th> |
</tr> | </tr> |
</thead>"; | </thead>"; |
foreach ($query->fetchAll() as $row) { | foreach ($query->fetchAll() as $row) { |
setlocale(LC_MONETARY, 'en_US'); | setlocale(LC_MONETARY, 'en_US'); |
$value = number_format(doubleval($row['value']), 2); | $value = number_format(doubleval($row['value']), 2); |
$category = urlencode($row['category']); | $category = urlencode($row['category']); |
echo("<tr> | echo("<tr> |
<td><B><a href='displayCategory.php?category=$category'>{$row['category']}</a></b></td> | <td><B><a href='displayCategory.php?category=$category'>{$row['category']}</a></b></td> |
<td>{$row['count']}</td> | <td>{$row['count']}</td> |
<td>\$$value</td> | <td>\$$value</td> |
</tr>"); | </tr>"); |
} | } |
echo "</table><br/>"; | echo "</table><br/>"; |
$query = 'SELECT text_mode(contractnotice."agencyName") AS agencyname, count(*), sum(value) AS value FROM contractnotice | $query = 'SELECT text_mode(contractnotice."agencyName") AS agencyname, count(*), sum(value) AS value FROM contractnotice |
WHERE ' . $yearQ . ' "childCN" IS NULL AND "SONID" = :SONID GROUP BY "agencyName"'; | WHERE ' . $yearQ . ' "childCN" IS NULL AND "SONID" = :SONID GROUP BY "agencyName"'; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":SONID", $_REQUEST['SONID']); | $query->bindParam(":SONID", $_REQUEST['SONID']); |
$query->execute(); | $query->execute(); |