<?php |
<?php |
|
$includedFlot = false; |
|
|
|
function includeFlot() { |
|
if (!$includedFlot) { |
|
echo ' <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="lib/flot/excanvas.min.js"></script><![endif]--> |
|
|
|
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.js"></script> |
|
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.pie.js"></script> |
|
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.selection.js"></script> |
|
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.stack.js"></script> |
|
|
|
'; |
|
$includedFlot = true; |
|
} |
|
} |
|
|
|
function CNDistributionGraph() { |
|
global $conn; |
|
includeFlot(); |
|
?> |
|
<center><div id="cndist" style="width:900px;height:550px"></div></center> |
|
<script type="text/javascript"> |
|
var placeholder = $("#cndist"); |
|
$(function () { |
|
|
|
var d1 = []; |
|
var d2 = []; |
|
<?php |
|
$query = 'select cnid, count(*) from |
|
(select ("CNID"::integer - MOD("CNID"::integer,100)) as cnid |
|
from contractnotice where "CNID"::integer < 999999 |
|
and "CNID" not like \'%-A%\' |
|
and "parentCN" is null) as a group by cnid order by cnid'; |
|
$query = $conn->prepare($query); |
|
$query->execute(); |
|
$errors = $conn->errorInfo(); |
|
if ($errors[2] != "") { |
|
echo("Export terminated, db error" . print_r($errors, true)); |
|
return Array(); |
|
} |
|
|
|
foreach ($query->fetchAll() as $delta) { |
|
|
|
echo "d1.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
|
}; |
|
$query = 'select cnid, count(*) from (select ("CNID"::integer - MOD("CNID"::integer,100)) as cnid |
|
from contractnotice where "CNID" not like \'%-A%\' and "parentCN" is not null) |
|
as a group by cnid order by cnid'; |
|
$query = $conn->prepare($query); |
|
$query->execute(); |
|
$errors = $conn->errorInfo(); |
|
if ($errors[2] != "") { |
|
echo("Export terminated, db error" . print_r($errors, true)); |
|
return Array(); |
|
} |
|
|
|
foreach ($query->fetchAll() as $delta) { |
|
|
|
echo "d2.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
|
}; |
|
?> |
|
|
|
var data = [ |
|
{ |
|
data: d1, |
|
series: { |
|
lines: { show: true }, |
|
points: { show: true } |
|
}, |
|
bars: { show: true } |
|
}, |
|
{ |
|
data: d2, |
|
series: { |
|
lines: { show: true }, |
|
points: { show: true } |
|
}, |
|
bars: { show: true } |
|
}] |
|
]; |
|
var options = |
|
{ |
|
series: { |
|
stack: true, |
|
}, |
|
grid: { hoverable: true, clickable: true, labelMargin: 17 }, |
|
selection: { mode: "x" } |
|
}; |
|
|
|
placeholder.bind("plotselected", function (event, ranges) { |
|
plot = $.plot(placeholder, data, |
|
$.extend(true, {}, options, { |
|
xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to } |
|
})); |
|
}); |
|
var previousPoint = null; |
|
placeholder.bind("plothover", function (event, pos, item) { |
|
$("#x").text(pos.x.toFixed(2)); |
|
$("#y").text(pos.y.toFixed(2)); |
|
|
|
if (item) { |
|
if (previousPoint != item.dataIndex) { |
|
previousPoint = item.dataIndex; |
|
|
|
$("#tooltip").remove(); |
|
var x = item.datapoint[0].toFixed(2), |
|
y = item.datapoint[1].toFixed(2); |
|
|
|
showTooltip(item.pageX, item.pageY, |
|
item.series.label + " of " + x + " = " + y); |
|
} |
|
} |
|
else { |
|
$("#tooltip").remove(); |
|
previousPoint = null; |
|
} |
|
}); |
|
|
|
var plot = $.plot(placeholder, data, |
|
options); |
|
}); |
|
|
|
function showTooltip(x, y, contents) { |
|
$('<div id="tooltip">' + contents + '</div>').css( { |
|
position: 'absolute', |
|
display: 'none', |
|
top: y + 5, |
|
left: x + 5, |
|
border: '1px solid #fdd', |
|
padding: '2px', |
|
'background-color': '#fee', |
|
opacity: 0.80 |
|
}).appendTo("body").fadeIn(200); |
|
} |
|
|
|
</script> |
|
<?php |
|
} |
|
|
function agenciesGraph() { |
function agenciesGraph() { |
$topX = 15; |
|
$query = "SELECT SUM(value) as val, agencyName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0 |
global $conn; |
GROUP BY agencyName ORDER BY val DESC limit $topX"; |
includeFlot(); |
$result = mysql_query($query); |
$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 |
$agencies = Array(); |
GROUP BY abn ORDER BY SUM("value") DESC'; |
$values = Array(); |
$query = $conn->prepare($query); |
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { |
$query->execute(); |
$agencies[] = $row['agencyName']; |
$errors = $conn->errorInfo(); |
$values[] = doubleval($row["val"]); |
if ($errors[2] != "") { |
} |
echo("Export terminated, db error" . print_r($errors, true)); |
mysql_free_result($result); |
return Array(); |
|
} |
$query = "SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, agencyName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0 |
?> |
GROUP BY agencyName ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a"; |
<script type="text/javascript"> |
$result = mysql_query($query); |
$(function () { |
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { |
// data |
$agencies[] = $row['count'] . " other agencies"; |
var data = [ |
$values[] = doubleval($row[0]); |
<?php |
} |
foreach ($query->fetchAll() as $row) { |
mysql_free_result($result); |
echo '{ label: "' . $row['agencyname'] . '", data: ' . doubleval($row["val"]) . '},'; |
|
} |
}; |
?> |
|
]; |
|
// 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 |
|
} |
|
|
|
; |
|
|
function agencySuppliersGraph($agency) { |
function agencySuppliersGraph($agency) { |
$agency = "AusAid"; |
|
$topX = 15; |
global $conn; |
$query = "SELECT SUM(value) as val, supplierName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0 AND agencyName = '$agency' |
$agency = "AusAid"; |
GROUP BY lower(supplierName) ORDER BY val DESC limit $topX"; |
$topX = 15; |
$result = mysql_query($query); |
$query = 'SELECT SUM(value) as val, "supplierName" FROM contractnotice WHERE (extract ("YEAR" from "contractStart") >= :startYear) AND "childCN" is null AND "agencyName" = :agency |
$suppliers = Array(); |
GROUP BY lower(supplierName) ORDER BY val DESC limit $topX'; |
$values = Array(); |
$query = $conn->prepare($query); |
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { |
$query->bindParam(":startYear",$startYear); |
$suppliers[] = ucsmart($row['supplierName']); |
$query->bindParam(":agency",$agency); |
$values[] = doubleval($row["val"]); |
$query->execute(); |
} |
databaseError($conn->errorInfo()); |
mysql_free_result($result); |
$suppliers = Array(); |
|
$values = Array(); |
$query = "SELECT sum(a.val) as value, count(1) as count from (SELECT SUM(value) as val, supplierName FROM `contractnotice` WHERE (YEAR(contractStart) >= $startYear) AND childCN = 0 and agencyName = '$agency' |
foreach ($query->fetchAll() as $row) { |
GROUP BY lower(supplierName) ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a"; |
$suppliers[] = ucsmart($row['supplierName']); |
$result = mysql_query($query); |
$values[] = doubleval($row["val"]); |
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { |
} |
if ($row['count'] > 0) { |
|
$suppliers[] = $row['count'] . " other suppliers"; |
|
$values[] = doubleval($row[0]); |
$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" = :agency |
} |
GROUP BY lower("supplierName") ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a'; |
} |
$query = $conn->prepare($query); |
mysql_free_result($result); |
$query->bindParam(":startYear",$startYear); |
|
$query->bindParam(":agency",$agency); |
|
$query->execute(); |
|
databaseError($conn->errorInfo()); |
|
foreach ($query->fetchAll() as $row) { |
|
if ($row['count'] > 0) { |
|
$suppliers[] = $row['count'] . " other suppliers"; |
|
$values[] = doubleval($row[0]); |
|
} |
|
} |
} |
} |
|
|
function CnCGraph() { |
function CnCGraph() { |
$query = "select procurementMethod, count(1) as count, SUM(value) as val, MONTH(contractStart) as month, YEAR(contractStart) as year from `contractnotice` |
|
|
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 YEAR(publishDate), MONTH(publishDate), |
|
SUM(value) as val, count(1) as count FROM contractnotice |
|
WHERE (YEAR(publishDate) >= 2008) |
|
AND "childCN" is null |
|
GROUP BY MONTH(publishDate), YEAR(publishDate) |
|
ORDER BY YEAR(publishDate), MONTH(publishDate)'; |
|
|
|
$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 YEAR(contractStart), MONTH(contractStart), |
|
SUM(value) as val, count(1) as count FROM contractnotice |
|
WHERE (YEAR(contractStart) >= 2008) |
|
AND "childCN" is null |
|
GROUP BY MONTH(contractStart), YEAR(contractStart) |
|
ORDER BY YEAR(contractStart), MONTH(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 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(); |
& |