--- a/heuristics/dateHeuristics.php +++ b/heuristics/dateHeuristics.php @@ -20,27 +20,32 @@ $averageContractPeriod; function getAverageContractPeriod() { - global $averageContractPeriod; + global $averageContractPeriod, $stddevContractPeriod; if (!$averageContractPeriod) { - $query = "select AVG(dateDiff(contractEnd,contractStart)) from contractnotice"; - $result = mysql_query($query); - $r = mysql_fetch_array($result, MYSQL_BOTH); - $averageContractPeriod = $r[0]; + getStddevAverageContractPeriod(); } return $averageContractPeriod; } $stddevContractPeriod; function getstddevContractPeriod() { - global $stddevContractPeriod; + global $averageContractPeriod, $stddevContractPeriod; if (!$stddevContractPeriod) { - $query = "select STDDEV(dateDiff(contractEnd,contractStart)) from contractnotice"; - $result = mysql_query($query); - $r = mysql_fetch_array($result, MYSQL_BOTH); - $stddevContractPeriod = $r[0]; + getStddevAverageContractPeriod(); } return $stddevContractPeriod; } +function getStddevAverageContractPeriod() +{ + global $averageContractPeriod, $stddevContractPeriod; + $query = "select AVG(dateDiff(contractEnd,contractStart)),stddev(dateDiff(contractEnd,contractStart)) from contractnotice"; + $result = mysql_query($query); + $r = mysql_fetch_array($result, MYSQL_BOTH); + $averageContractPeriod = $r[0]; + $stddevContractPeriod = $r[1]; +} + + //Reported late, 45 days? A late contract is a dodgy contract except maybe for variations? $heuristics["DATE_REPORTED_LATE"] = Array( "description" => "Reported late, 45 days?" @@ -70,10 +75,7 @@ { global $averageDaysLate; if (!$averageDaysLate) { - $query = "select AVG(dateDiff(publishDate,contractStart)) from contractnotice"; - $result = mysql_query($query); - $r = mysql_fetch_array($result, MYSQL_BOTH); - $averageDaysLate = $r[0]; + getDaysLate(); } return $averageDaysLate; } @@ -82,11 +84,19 @@ { global $stddevDaysLate; if (!$stddevDaysLate) { - $query = "select STDDEV(dateDiff(publishDate,contractStart)) from contractnotice"; - $result = mysql_query($query); - $r = mysql_fetch_array($result, MYSQL_BOTH); - $stddevDaysLate = $r[0]; + getDaysLate(); } return $stddevDaysLate; } +function getDaysLate() { + + global $averageDaysLate,$stddevDaysLate; + + $query = "select AVG(dateDiff(publishDate,contractStart)), STDDEV(dateDiff(publishDate,contractStart)) from contractnotice"; + $result = mysql_query($query); + $r = mysql_fetch_array($result, MYSQL_BOTH); + $averageDaysLate = $r[0]; + $stddevDaysLate = $r[1]; + +} ?>