<?php | <?php |
include_once ("../lib/common.inc.php"); | include_once ("../lib/common.inc.php"); |
$query = 'SELECT c."CNID",c."parentCN",p."childCN" FROM contractnotice as c LEFT OUTER JOIN contractnotice as p on c."parentCN" = p."CNID" | $query = 'SELECT c."CNID",c."parentCN",p."childCN" FROM contractnotice as c LEFT OUTER JOIN contractnotice as p on c."parentCN" = p."CNID" |
WHERE | WHERE |
c."parentCN" > 0 AND p."childCN" IS NULL '; | c."parentCN" IS NOT NULL AND p."childCN" IS NULL '; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
foreach ($query->fetchAll() as $row) { | foreach ($query->fetchAll() as $row) { |
$conn->exec('UPDATE contractnotice SET "childCN" = \'' . | $conn->exec('UPDATE contractnotice SET "childCN" = \'' . |
$row['CNID'] . '\' where "CNID" = \'' . | $row['CNID'] . '\' where "CNID" = \'' . |
$row['parentCN'] . '\';'); | $row['parentCN'] . '\';'); |
echo 'UPDATE contractnotice SET "childCN" = \'' . | echo 'UPDATE contractnotice SET "childCN" = \'' . |
$row['CNID'] . '\' where "CNID" = \'' . | $row['CNID'] . '\' where "CNID" = \'' . |
$row['parentCN'] . '\';'; | $row['parentCN'] . '\';'; |
$errors = $conn->errorInfo(); | $errors = $conn->errorInfo(); |
if ($errors[1] == 7 || $errors[1] ==0) | if ($errors[1] == 7 || $errors[1] ==0) |
echo $row['CNID'] . " linked to parent " . $row['parentCN'] . | echo $row['CNID'] . " linked to parent " . $row['parentCN'] . |
"<br>\n"; | "<br>\n"; |
else print_r($errors); | else print_r($errors); |
} | } |
// also need to eliminate CN 100528/100529 - check for double parent CNs with no childCN, latest sequent CN id keeps childCN = 0 | // also need to eliminate CN 100528/100529 - check for double parent CNs with no childCN, latest sequent CN id keeps childCN = 0 |
$query = 'SELECT "parentCN", array_agg("CNID"), count(*) from contractnotice WHERE "parentCN" IN | $query = 'SELECT "parentCN", array_agg("CNID"), count(*) from contractnotice WHERE "parentCN" IN |
( | ( |
SELECT "parentCN" | SELECT "parentCN" |
FROM contractnotice | FROM contractnotice |
GROUP BY "parentCN" | GROUP BY "parentCN" |
HAVING COUNT(*) > 1 | HAVING COUNT(*) > 1 |
AND "parentCN" != 0 | AND "parentCN" IS NOT NULL |
) | ) |
AND "childCN" = 0 | AND "childCN" IS NULL |
GROUP BY "parentCN" having count(*) > 1'; | GROUP BY "parentCN" having count(*) > 1'; |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->execute(); | $query->execute(); |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
foreach ($query->fetchAll() as $row) { | foreach ($query->fetchAll() as $row) { |
$cnids = explode(",",str_replace(Array("{","}"),"",$row['array_agg'])); | $cnids = explode(",",str_replace(Array("{","}"),"",$row['array_agg'])); |
$last_cnid = array_pop($cnids); | $last_cnid = array_pop($cnids); |
foreach ($cnids as $cnid) { | foreach ($cnids as $cnid) { |
$conn->exec('UPDATE contractnotice SET "childCN" = \'' . | $conn->exec('UPDATE contractnotice SET "childCN" = \'' . |
$last_cnid . '\' where "CNID" = \'' . | $last_cnid . '\' where "CNID" = \'' . |
$cnid . '\';'); | $cnid . '\';'); |
$errors = $conn->errorInfo(); | $errors = $conn->errorInfo(); |
if ($errors[1] == 7 || $errors[1] ==0) | if ($errors[1] == 7 || $errors[1] ==0) |
echo $cnid . " linked to latest child " . $last_cnid . | echo $cnid . " linked to latest child " . $last_cnid . |
"<br>\n"; | "<br>\n"; |
else print_r($errors); | else print_r($errors); |
} | } |
} | } |
?> | ?> |
<?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) { |
$unspsc[$row['Title']] = $row['UNSPSC']; | $unspsc[$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']; |
$filfill = str_replace("fill", "fil", $row['Title']); | $filfill = str_replace("fill", "fil", $row['Title']); |
$unspsc[$filfill] = $row['UNSPSC']; | $unspsc[$filfill] = $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']; |
$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 |
$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']); | |
$unspsc[$powercable] = $row['UNSPSC']; | |
$forensicIT = str_replace("Building and Construction and Maintenance Services", "Architectural services", $row['Title']); | |
$unspsc[$architect] = $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']; |
} | } |
$query = 'SELECT "CNID","category","value" | $query = 'SELECT "CNID","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" = | $result = $conn->exec('UPDATE contractnotice SET "categoryUNSPSC" = |
\'' . $unspsc[$record['category']] . '\' where "CNID" = \'' . $record['CNID'] . '\';'); | \'' . $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); |
?> | ?> |
{ | { |
"dataset":{ | "dataset": { |
"name":"australian_federal_government_contract_spending", | "languages": [ |
"label":"Australian Federal Government Contract Spending", | "en" |
"description":"Spending by Australian Federal Government agencies on goods and services from 2007 onwards.", | ], |
"currency":"AUD", | "currency": "AUD", |
"unique_keys":[ | "name": "australian_federal_government_contract_spending", |
"id" | "territories": [], |
], | "default_time": null, |
"temporal_granularity":"year" | "description": "Spending by Australian Federal Government agencies on goods and services from 2007 onwards.", |
}, | "schema_version": "2011-12-07", |
"mapping":{ | "label": "Australian Federal Government Contract Spending" |
"category": { | |
"fields": [ { | |
"column": "category", | |
"datatype": "string", | |
"name": "label" | |
} ], | |
"type": "classifier", | |
"description": "", | |
"taxonomy": "unspsc", | |
"label": "Contract Goods/Services Category" | |
}, | }, |
"from":{ | "mapping": { |
"fields":[ | "category": { |
{ | "description": "Contract Goods/Services Category", |
"column":"agencyABN", | "datatype": "string", |
"datatype":"string", | "label": "category", |
"name":"id" | "column": "cat1", |
}, | "type": "attribute", |
{ | "dimension": "category" |
"column":"agencyName", | }, |
"datatype":"string", | "sourceurl": { |
"name":"label" | "description": "Source Document URL", |
} | "datatype": "string", |
], | "label": "sourceurl", |
"type":"entity", | "column": "sourceurl", |
"description":"", | "type": "attribute", |
"label":"Government Agency Australian Business Number" | "dimension": "sourceurl" |
}, | }, |
"description":{ | "from": { |
"column":"description", | "attributes": { |
"datatype":"string", | "name": { |
"type":"value", | "column": "agencyABN", |
"description":"Contract as described by agency", | "datatype": "id", |
"label":"Contract Description" | "type": "id", |
}, | "description": null |
"to":{ | }, |
"fields":[ | "label": { |
{ | "column": "agencyName", |
"column":"supplierName", | "datatype": "string", |
"datatype":"string", | "type": "attribute", |
"name":"label" | "description": null |
}, | } |
{ | }, |
"column":"supplierID", | "label": "Government Agency", |
"datatype":"string", | "type": "compound", |
"name":"id" | "dimension": "from", |
} | "description": "Government Agency" |
], | }, |
"type":"entity", | "description": { |
"description":"Government Supplier", | "description": null, |
"label":"Supplier Name" | "datatype": "string", |
}, | "label": "description", |
"currency":{ | "column": "description", |
"default_value":"AUD", | "type": "attribute", |
"description":"All entries in AUD, foreign transactions are converted at the time of their payment", | "dimension": "description" |
"column":"", | }, |
"label":"", | "publishdate": { |
"datatype":"currency", | "description": null, |
"type":"value" | "format": null, |
}, | "datatype": "date", |
"amount":{ | "label": "publishDate", |
"column":"value", | "column": "publishDate", |
"datatype":"float", | "type": "date", |
"type":"value", | "dimension": "publishdate" |
"description":"The total value of the contract including all variations/amendments/extensions", | }, |
"label":"Contract Value" | "to": { |
}, | "attributes": { |
"time":{ | "name": { |
"column":"contractStart", | "column": "supplierid", |
"datatype":"date", | "datatype": "id", |
"type":"value", | "type": "id" |
"description":"Start of the contract period (goods or services being received)", | }, |
"label":"Contract Start Date" | "label": { |
}, | "column": "supplierName", |
"id":{ | "datatype": "string", |
"column": "CNID", | "type": "attribute" |
"datatype": "string", | } |
"name": "label", | }, |
"type": "value", | "label": "Supplier Name", |
"description": "", | "type": "compound", |
"label": "Contract Notice ID" | "dimension": "to", |
} | "description": "Government Supplier" |
}, | }, |
"amount": { | |
"views": [ | "description": "The total value of the contract including all variations/amendments/extensions", |
"datatype": "float", | |
"label": "value", | |
"column": "value", | |
"type": "measure", | |
"dimension": "amount" | |
}, | |
"cnid": { | |
"description": "Contract Notice ID", | |
"datatype": "string", | |
"label": "CNID", | |
"column": "CNID", | |
"key": true, | |
"type": "attribute", | |
"dimension": "cnid" | |
}, | |
"contractend": { | |
"description": "End of the contract period (goods or services being received)", | |
"format": null, | |
"datatype": "date", | |
"label": "contractEnd", | |
"column": "contractEnd", | |
"type": "date", | |
"dimension": "contractend" | |
}, | |
"time": { | |
"description": "Start of the contract period (goods or services being received)", | |
"format": null, | |
"datatype": "date", | |
"label": "contractStart", | |
"column": "contractStart", | |
"type": "date", | |
"dimension": "time" | |
} | |
}, | |
"views": [ | |
{ | { |
"name": "default", | "name": "default", |
"entity": "dataset", | "label": "Breakdown by Category", |
"label": "Default breakdown by Category", | "cuts": {}, |
"dimension": "dataset", | "drilldown": "category", |
"breakdown": "category", | "entity": "dataset", |
"filters" : {"name": "australian_federal_government_contract_spending" } | "dimension": "dataset" |
}, | }, |
{ | { |
"name":"default", | "name": "by_supplier", |
"entity": "classifier", | "label": "Breakdown by Supplier", |
"label":"Breakdown of Spending Areas by Supplier Company", | "cuts": {}, |
"dimension": "category", | "drilldown": "to", |
"breakdown": "to", | "entity": "dataset", |
"filters": {"taxonomy": "unspsc"} | "dimension": "dataset" |
}, | }, |
{ | { |
"name":"default", | "name": "by_agency", |
"entity": "classifier", | "label": "Breakdown by Agency", |
"label":"Breakdown of Spending Areas by Government Agency", | "cuts": {}, |
"dimension": "category", | "drilldown": "from", |
"breakdown": "from", | "entity": "dataset", |
"filters": {"taxonomy": "unspsc"} | "dimension": "dataset" |
} | }, |
] | { |