<?php |
<?php |
$includedFlot = false; |
$includedFlot = false; |
|
|
function includeFlot() { |
function includeFlot() { |
if (!$includedFlot) { |
if (!$includedFlot) { |
echo ' <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="lib/flot/excanvas.min.js"></script><![endif]--> |
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.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.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.selection.js"></script> |
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.stack.js"></script> |
<script language="javascript" type="text/javascript" src="lib/flot/jquery.flot.stack.js"></script> |
|
|
'; |
'; |
$includedFlot = true; |
$includedFlot = true; |
} |
} |
} |
} |
|
|
function CNDistributionGraph() { |
function CNDistributionGraph() { |
global $conn; |
global $conn; |
includeFlot(); |
includeFlot(); |
?> |
?> |
<center><div id="cndist" style="width:900px;height:550px"></div></center> |
<center><div id="cndist" style="width:900px;height:550px"></div></center> |
<script type="text/javascript"> |
<script type="text/javascript"> |
var placeholder = $("#cndist"); |
var placeholder = $("#cndist"); |
$(function () { |
$(function () { |
|
|
var d1 = []; |
var d1 = []; |
var d2 = []; |
var d2 = []; |
<?php |
<?php |
$query = 'select cnid, count(*) from (select ("CNID" - MOD("CNID",100)) as cnid from contractnotice where "CNID" < 999999 and "parentCN" is null) as a group by cnid order by cnid'; |
$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 = $conn->prepare($query); |
$query->execute(); |
$query->execute(); |
$errors = $conn->errorInfo(); |
$errors = $conn->errorInfo(); |
if ($errors[2] != "") { |
if ($errors[2] != "") { |
echo("Export terminated, db error" . print_r($errors, true)); |
echo("Export terminated, db error" . print_r($errors, true)); |
return Array(); |
return Array(); |
} |
} |
|
|
foreach ($query->fetchAll() as $delta) { |
foreach ($query->fetchAll() as $delta) { |
|
|
echo "d1.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
echo "d1.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
}; |
}; |
$query = 'select cnid, count(*) from (select ("CNID" - MOD("CNID",100)) as cnid from contractnotice where "CNID" < 999999 and "parentCN" is not null) as a group by cnid order by cnid'; |
$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 = $conn->prepare($query); |
$query->execute(); |
$query->execute(); |
$errors = $conn->errorInfo(); |
$errors = $conn->errorInfo(); |
if ($errors[2] != "") { |
if ($errors[2] != "") { |
echo("Export terminated, db error" . print_r($errors, true)); |
echo("Export terminated, db error" . print_r($errors, true)); |
return Array(); |
return Array(); |
} |
} |
|
|
foreach ($query->fetchAll() as $delta) { |
foreach ($query->fetchAll() as $delta) { |
|
|
echo "d2.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
echo "d2.push([ " . intval($delta['cnid']) . ", " . intval($delta['count']) . "]); \n"; |
}; |
}; |
?> |
?> |
|
|
var data = [ |
var data = [ |
{ |
{ |
data: d1, |
data: d1, |
series: { |
series: { |
lines: { show: true }, |
lines: { show: true }, |
points: { show: true } |
points: { show: true } |
}, |
}, |
bars: { show: true } |
bars: { show: true } |
}, |
}, |
{ |
{ |
data: d2, |
data: d2, |
series: { |
series: { |
lines: { show: true }, |
lines: { show: true }, |
points: { show: true } |
points: { show: true } |
}, |
}, |
bars: { show: true } |
bars: { show: true } |
}, |
}] |
]; |
]; |
var options = |
var options = |
{ |
{ |
series: { |
series: { |
stack: true, |
stack: true, |
}, |
}, |
grid: { hoverable: true, clickable: true, labelMargin: 17 }, |
grid: { hoverable: true, clickable: true, labelMargin: 17 }, |
selection: { mode: "x" } |
selection: { mode: "x" } |
}; |
}; |
|
|
placeholder.bind("plotselected", function (event, ranges) { |
placeholder.bind("plotselected", function (event, ranges) { |
plot = $.plot(placeholder, data, |
plot = $.plot(placeholder, data, |
$.extend(true, {}, options, { |
$.extend(true, {}, options, { |
xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to } |
xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to } |
})); |
})); |
}); |
}); |
var previousPoint = null; |
var previousPoint = null; |
placeholder.bind("plothover", function (event, pos, item) { |
placeholder.bind("plothover", function (event, pos, item) { |
$("#x").text(pos.x.toFixed(2)); |
$("#x").text(pos.x.toFixed(2)); |
$("#y").text(pos.y.toFixed(2)); |
$("#y").text(pos.y.toFixed(2)); |
|
|
if (item) { |
if (item) { |
if (previousPoint != item.dataIndex) { |
if (previousPoint != item.dataIndex) { |
previousPoint = item.dataIndex; |
previousPoint = item.dataIndex; |
|
|
$("#tooltip").remove(); |
$("#tooltip").remove(); |
var x = item.datapoint[0].toFixed(2), |
var x = item.datapoint[0].toFixed(2), |
y = item.datapoint[1].toFixed(2); |
y = item.datapoint[1].toFixed(2); |
|
|
showTooltip(item.pageX, item.pageY, |
showTooltip(item.pageX, item.pageY, |
item.series.label + " of " + x + " = " + y); |
item.series.label + " of " + x + " = " + y); |
} |
} |
} |
} |
else { |
else { |
$("#tooltip").remove(); |
$("#tooltip").remove(); |
previousPoint = null; |
previousPoint = null; |
} |
} |
}); |
}); |
|
|
var plot = $.plot(placeholder, data, |
var plot = $.plot(placeholder, data, |
options); |
options); |
}); |
}); |
|
|
function showTooltip(x, y, contents) { |
function showTooltip(x, y, contents) { |
$('<div id="tooltip">' + contents + '</div>').css( { |
$('<div id="tooltip">' + contents + '</div>').css( { |
position: 'absolute', |
position: 'absolute', |
display: 'none', |
display: 'none', |
top: y + 5, |
top: y + 5, |
left: x + 5, |
left: x + 5, |
border: '1px solid #fdd', |
border: '1px solid #fdd', |
padding: '2px', |
padding: '2px', |
'background-color': '#fee', |
'background-color': '#fee', |
opacity: 0.80 |
opacity: 0.80 |
}).appendTo("body").fadeIn(200); |
}).appendTo("body").fadeIn(200); |
} |
} |
|
|
</script> |
</script> |
<?php |
<?php |
} |
} |
|
|
function agenciesGraph() { |
function agenciesGraph() { |
|
|
global $conn; |
global $conn; |
includeFlot(); |
includeFlot(); |
$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 |
$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 |
GROUP BY abn ORDER BY SUM("value") DESC'; |
GROUP BY abn ORDER BY SUM("value") DESC'; |
$query = $conn->prepare($query); |
$query = $conn->prepare($query); |
$query->execute(); |
$query->execute(); |
$errors = $conn->errorInfo(); |
$errors = $conn->errorInfo(); |
if ($errors[2] != "") { |
if ($errors[2] != "") { |
echo("Export terminated, db error" . print_r($errors, true)); |
echo("Export terminated, db error" . print_r($errors, true)); |
return Array(); |
return Array(); |
} |
} |
?> |
?> |
<script type="text/javascript"> |
<script type="text/javascript"> |
$(function () { |
$(function () { |
// data |
// data |
var data = [ |
var data = [ |
<?php |
<?php |
foreach ($query->fetchAll() as $row) { |
foreach ($query->fetchAll() as $row) { |
echo '{ label: "' . $row['agencyname'] . '", data: ' . doubleval($row["val"]) . '},'; |
echo '{ label: "' . $row['agencyname'] . '", data: ' . doubleval($row["val"]) . '},'; |
} |
} |
?> |
?> |
]; |
]; |
// GRAPH 7 |
// GRAPH 7 |
$.plot($("#graph7"), data, |
$.plot($("#graph7"), data, |
{ |
{ |
series: { |
series: { |
pie: { |
pie: { |
show: true, |
show: true, |
radius: 1, |
radius: 1, |
tilt: 0.75, |
tilt: 0.75, |
label: { |
label: { |
show: true, |
show: true, |
radius: 1, |
radius: 1, |
formatter: function(label, series){ |
formatter: function(label, series){ |
return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+': '+Math.round(series.percent)+'%</div>'; |
return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+': '+Math.round(series.percent)+'%</div>'; |
}, |
}, |
background: { |
background: { |
opacity: 0.5, |
opacity: 0.5, |
color: '#000' |
color: '#000' |
} |
} |
}, |
}, |
combine: { |
combine: { |
color: '#999', |
color: '#999', |
threshold: 0.012 |
threshold: 0.012 |
} |
} |
} |
} |
}, |
}, |
legend: { |
legend: { |
show: false |
show: false |
} |
} |
}); |
}); |
}); |
}); |
</script> |
</script> |
<div id="graph7" style="width:900px;height:550px"></div> |
<div id="graph7" style="width:900px;height:550px"></div> |
|
|
<?php |
<?php |
} |
} |
|
|
; |
; |
|
|
function agencySuppliersGraph($agency) { |
function agencySuppliersGraph($agency) { |
|
|
global $conn; |
global $conn; |
$agency = "AusAid"; |
$agency = "AusAid"; |
$topX = 15; |
$topX = 15; |
$query = 'SELECT SUM(value) as val, "supplierName" FROM contractnotice WHERE (extract ("YEAR" from "contractStart") >= :startYear) AND "childCN" is null AND "agencyName" = :agency |
$query = '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 $topX'; |
GROUP BY lower(supplierName) ORDER BY val DESC limit $topX'; |
$query = $conn->prepare($query); |
$query = $conn->prepare($query); |
$query->bindParam(":startYear",$startYear); |
$query->bindParam(":startYear",$startYear); |
$query->bindParam(":agency",$agency); |
$query->bindParam(":agency",$agency); |
$query->execute(); |
$query->execute(); |
databaseError($conn->errorInfo()); |
databaseError($conn->errorInfo()); |
$suppliers = Array(); |
$suppliers = Array(); |
$values = Array(); |
$values = Array(); |
foreach ($query->fetchAll() as $row) { |
foreach ($query->fetchAll() as $row) { |
$suppliers[] = ucsmart($row['supplierName']); |
$suppliers[] = ucsmart($row['supplierName']); |
$values[] = doubleval($row["val"]); |
$values[] = doubleval($row["val"]); |
} |
} |
|
|
|
|
$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 |
$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'; |
GROUP BY lower("supplierName") ORDER BY val DESC LIMIT 18446744073709551610 OFFSET $topX) as a'; |
$query = $conn->prepare($query); |
$query = $conn->prepare($query); |
$query->bindParam(":startYear",$startYear); |
$query->bindParam(":startYear",$startYear); |
$query->bindParam(":agency",$agency); |
$query->bindParam(":agency",$agency); |
$query->execute(); |
$query->execute(); |
databaseError($conn->errorInfo()); |
databaseError($conn->errorInfo()); |
foreach ($query->fetchAll() as $row) { |
foreach ($query->fetchAll() as $row) { |
if ($row['count'] > 0) { |
if ($row['count'] > 0) { |
$suppliers[] = $row['count'] . " other suppliers"; |
$suppliers[] = $row['count'] . " other suppliers"; |
$values[] = doubleval($row[0]); |
$values[] = doubleval($row[0]); |
} |
} |
} |
} |
} |
} |
|
|
function CnCGraph() { |
function CnCGraph() { |
|
|
global $conn; |
global $conn; |
$query = 'select procurementMethod, count(1) as count, SUM(value) as val, MONTH(contractStart) as month, YEAR(contractStart) as year from contractnotice |
$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'; |
where $agencyQ $supplierQ $standardQ group by procurementMethod,year,month order by procurementMethod,year,month'; |
$query = $conn->prepare($query); |
$query = $conn->prepare($query); |
$query->execute(); |
$query->execute(); |
databaseError($conn->errorInfo()); |
databaseError($conn->errorInfo()); |
|
|
$methods = Array("Direct", "Open", "Select"); |
$methods = Array("Direct", "Open", "Select"); |
$dates = Array(); |
$dates = Array(); |
$methodCountsP = Array(); |
$methodCountsP = Array(); |
$methodCounts = Array(); |
$methodCounts = Array(); |
$maxValue = 0; |
$maxValue = 0; |
foreach ($query->fetchAll() as $row) { |
foreach ($query->fetchAll() as $row) { |
setlocale(LC_MONETARY, 'en_US'); |
setlocale(LC_MONETARY, 'en_US'); |
if ($row['val'] > $maxValue) |
if ($row['val'] > $maxValue) |
$maxValue = $row['val']; |
$maxValue = $row['val']; |
$date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"]; |
$date = date('F ', mktime(0, 0, 0, $row["month"])) . $row["year"]; |
if (array_search($date, $dates) === false) { |
if (array_search($date, $dates) === false) { |
$dates[$row["year"] * 100 + $row["month"]] = $date; |
$dates[$row["year"] * 100 + $row["month"]] = $date; |
ksort($dates); |
ksort($dates); |
} |
} |
$methodCountsP[$row["procurementMethod"]][$date] = $row["count"]; |
$methodCountsP[$row["procurementMethod"]][$date] = $row["count"]; |
} |
} |
foreach ($methods as $method) { |
foreach ($methods as $method) { |
foreach ($dates as $date) { |
foreach ($dates as $date) { |
if ($methodCountsP[$method][$date] > 0) |
if ($methodCountsP[$method][$date] > 0) |
|