<?php |
<?php |
$heuristics["HISTORY_LOW_TRANSACTIONS_AGENCY"] = Array( |
$heuristics["HISTORY_LOW_TRANSACTIONS_AGENCY"] = Array( |
"description" => "unusual for agency due to previous low number of transactions " |
"description" => "unusual for agency due to previous low number of transactions " |
); |
); |
function HISTORY_LOW_TRANSACTIONS_AGENCY($cn) |
function HISTORY_LOW_TRANSACTIONS_AGENCY($cn) |
{ |
{ |
$thisAgencyTransactions = getAgencyTransactions($cn['agencyName']); |
$thisAgencyTransactions = getAgencyTransactions($cn['agencyName']); |
$averageAgencyTransactions = getAverageAgencyTransactions(); |
$averageAgencyTransactions = getAverageAgencyTransactions(); |
$stddevAgencyTransactions = getstddevAgencyTransactions(); |
$stddevAgencyTransactions = getstddevAgencyTransactions(); |
$diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); |
$diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); |
$days = intval($diff / (60 * 60 * 24)); |
$days = intval($diff / (60 * 60 * 24)); |
$value = abs($days - $averageAgencyTransactions) / $stddevAgencyTransactions; |
$value = abs($days - $averageAgencyTransactions) / $stddevAgencyTransactions; |
return Array( |
return Array( |
"heuristic_value" => $value, |
"heuristic_value" => $value, |
"raw_value" => $days, |
"raw_value" => $days, |
"mean" => $averageAgencyTransactions, |
"mean" => $averageAgencyTransactions, |
"stddev" => $stddevAgencyTransactions |
"stddev" => $stddevAgencyTransactions |
); |
); |
} |
} |
$agencyTransactions = Array(); |
$agencyTransactions = Array(); |
function getAgencyTransactions($agencyName) |
function getAgencyTransactions($agencyName) |
{ |
{ |
global $agencyTransactions; |
global $agencyTransactions,$conn; |
if (!$agencyTransactions[$agencyName]) { |
if (!$agencyTransactions[$agencyName]) { |
$query = 'select count(*) from contractnotice where agencyName = "' . $agencyName . '"'; |
$query = 'select count(*) from contractnotice where "agencyName" = \'' . pg_escape_string ($agencyName) . '"\''; |
$result = $conn->query($query); |
$result = $conn->query($query); |
|
//echo $query; |
$r = $result->fetch(PDO::FETCH_BOTH); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$agencyTransactions[$agencyName] = $r[0]; |
$agencyTransactions[$agencyName] = $r[0]; |
} |
} |
return $agencyTransactions[$agencyName]; |
return $agencyTransactions[$agencyName]; |
} |
} |
$averageAgencyTransactions; |
$averageAgencyTransactions; |
function getAverageAgencyTransactions() |
function getAverageAgencyTransactions() |
{ |
{ |
global $averageAgencyTransactions; |
global $averageAgencyTransactions; |
if (!$averageAgencyTransactions) { |
if (!$averageAgencyTransactions) { |
getStatsAgencyTransactions(); |
getStatsAgencyTransactions(); |
} |
} |
return $averageAgencyTransactions; |
return $averageAgencyTransactions; |
} |
} |
$stddevAgencyTransactions; |
$stddevAgencyTransactions; |
function getstddevAgencyTransactions() |
function getstddevAgencyTransactions() |
{ |
{ |
global $stddevAgencyTransactions; |
global $stddevAgencyTransactions; |
if (!$stddevAgencyTransactions) { |
if (!$stddevAgencyTransactions) { |
getStatsAgencyTransactions(); |
getStatsAgencyTransactions(); |
} |
} |
return $stddevAgencyTransactions; |
return $stddevAgencyTransactions; |
} |
} |
function getStatsAgencyTransactions() |
function getStatsAgencyTransactions() |
{ |
{ |
global $averageAgencyTransactions, $stddevAgencyTransactions; |
global $averageAgencyTransactions, $stddevAgencyTransactions,$conn; |
$query = "select avg(count), STDDEV(count) from (select count(*) as count |
$query = 'select avg(count), STDDEV(count) from (select count(*) as count |
from contractnotice group by agencyName) as a;"; |
from contractnotice group by "agencyName") as a;'; |
$result = $conn->query($query); |
$result = $conn->query($query); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$averageAgencyTransactions = $r[0]; |
$averageAgencyTransactions = $r[0]; |
$stddevAgencyTransactions = $r[1]; |
$stddevAgencyTransactions = $r[1]; |
} |
} |
$heuristics["HISTORY_LOW_TRANSACTIONS_SUPPLIER"] = Array( |
$heuristics["HISTORY_LOW_TRANSACTIONS_SUPPLIER"] = Array( |
"description" => "unusual for supplier due to previous low number of transactions " |
"description" => "unusual for supplier due to previous low number of transactions " |
); |
); |
function HISTORY_LOW_TRANSACTIONS_SUPPLIER($cn) |
function HISTORY_LOW_TRANSACTIONS_SUPPLIER($cn) |
{ |
{ |
$thisSupplierTransactions = getSupplierTransactions($cn['supplierName'], $cn['supplierABN']); |
$thisSupplierTransactions = getSupplierTransactions($cn['supplierName'], $cn['supplierABN']); |
$averageSupplierTransactions = getAverageSupplierTransactions(); |
$averageSupplierTransactions = getAverageSupplierTransactions(); |
$stddevSupplierTransactions = getstddevSupplierTransactions(); |
$stddevSupplierTransactions = getstddevSupplierTransactions(); |
$diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); |
$diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); |
$days = intval($diff / (60 * 60 * 24)); |
$days = intval($diff / (60 * 60 * 24)); |
$value = abs($days - $averageSupplierTransactions) / $stddevSupplierTransactions; |
$value = abs($days - $averageSupplierTransactions) / $stddevSupplierTransactions; |
return Array( |
return Array( |
"heuristic_value" => $value, |
"heuristic_value" => $value, |
"raw_value" => $days, |
"raw_value" => $days, |
"mean" => $averageSupplierTransactions, |
"mean" => $averageSupplierTransactions, |
"stddev" => $stddevSupplierTransactions |
"stddev" => $stddevSupplierTransactions |
); |
); |
} |
} |
$supplierTransactions = Array(); |
$supplierTransactions = Array(); |
function getSupplierTransactions($supplierName, $supplierABN) |
function getSupplierTransactions($supplierName, $supplierABN) |
{ |
{ |
global $supplierTransactions; |
global $supplierTransactions,$conn; |
if ($supplierABN != 0 && $supplierABN != "") { |
if ($supplierABN != 0 && $supplierABN != "") { |
if (!$supplierTransactions[$supplierABN]) { |
if (!$supplierTransactions[$supplierABN]) { |
$query = 'select count(*) from contractnotice where supplierABN = "' . $supplierABN . '"'; |
$query = "select count(*) from contractnotice where \"supplierABN\" = '" . $supplierABN . "'"; |
$result = $conn->query($query); |
$result = $conn->query($query); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$supplierTransactions[$supplierABN] = $r[0]; |
$supplierTransactions[$supplierABN] = $r[0]; |
} |
} |
return $supplierTransactions[$supplierABN]; |
return $supplierTransactions[$supplierABN]; |
} |
} |
if (!$supplierTransactions[$supplierName]) { |
if (!$supplierTransactions[$supplierName]) { |
$query = 'select count(*) from contractnotice where supplierName = "' . $supplierName . '"'; |
$query = "select count(*) from contractnotice where \"supplierName\" = '" . $supplierName . "'"; |
|
|
$result = $conn->query($query); |
$result = $conn->query($query); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$supplierTransactions[$supplierName] = $r[0]; |
$supplierTransactions[$supplierName] = $r[0]; |
} |
} |
return $supplierTransactions[$supplierName]; |
return $supplierTransactions[$supplierName]; |
} |
} |
$averageSupplierTransactions; |
$averageSupplierTransactions; |
function getAverageSupplierTransactions() |
function getAverageSupplierTransactions() |
{ |
{ |
global $averageSupplierTransactions; |
global $averageSupplierTransactions; |
if (!$averageSupplierTransactions) { |
if (!$averageSupplierTransactions) { |
getStatsSupplierTransactions(); |
getStatsSupplierTransactions(); |
} |
} |
return $averageSupplierTransactions; |
return $averageSupplierTransactions; |
} |
} |
$stddevSupplierTransactions; |
$stddevSupplierTransactions; |
function getstddevSupplierTransactions() |
function getstddevSupplierTransactions() |
{ |
{ |
global $stddevSupplierTransactions; |
global $stddevSupplierTransactions; |
if (!$stddevSupplierTransactions) { |
if (!$stddevSupplierTransactions) { |
getStatsSupplierTransactions(); |
getStatsSupplierTransactions(); |
} |
} |
return $stddevSupplierTransactions; |
return $stddevSupplierTransactions; |
} |
} |
function getStatsSupplierTransactions() |
function getStatsSupplierTransactions() |
{ |
{ |
global $averageSupplierTransactions, $stddevSupplierTransactions; |
global $averageSupplierTransactions, $stddevSupplierTransactions,$conn; |
$query = 'select avg(count), stddev(count) from (select IF(supplierABN != "",supplierABN,supplierName) as supplierID, count(*) as count from contractnotice group by supplierID) as a;'; |
$query = 'select avg(count), stddev(count) from ( |
|
select (case when "supplierABN" != 0 THEN "supplierABN"::text ELSE "supplierName" END) as "supplierID", |
|
count(*) as count from contractnotice group by "supplierID") as a;'; |
$result = $conn->query($query); |
$result = $conn->query($query); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$r = $result->fetch(PDO::FETCH_BOTH); |
$averageSupplierTransactions = $r[0]; |
$averageSupplierTransactions = $r[0]; |
$stddevSupplierTransactions = $r[1]; |
$stddevSupplierTransactions = $r[1]; |
} |
} |
|
|