--- a/heuristics/dateHeuristics.php +++ b/heuristics/dateHeuristics.php @@ -1,102 +1,106 @@ "long contract period (number of weeks/days?)" + "description" => "long contract period (number of weeks/days?)" ); -function DATE_LONG_CONTRACT_PERIOD($cn) -{ - $averageContractPeriod = getAverageContractPeriod(); - $stddevContractPeriod = getstddevContractPeriod(); - $diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); - $days = intval($diff / (60 * 60 * 24)); - $value = abs($days - $averageContractPeriod) / $stddevContractPeriod; - return Array( - "heuristic_value" => $value, - "raw_value" => $days, - "mean" => $averageContractPeriod, - "stddev" => $stddevContractPeriod - ); -} -$averageContractPeriod; -function getAverageContractPeriod() -{ - global $averageContractPeriod, $stddevContractPeriod; - if (!$averageContractPeriod) { - getStddevAverageContractPeriod(); - } - return $averageContractPeriod; -} -$stddevContractPeriod; -function getstddevContractPeriod() -{ - global $averageContractPeriod, $stddevContractPeriod; - if (!$stddevContractPeriod) { - 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]; + +function DATE_LONG_CONTRACT_PERIOD($cn) { + $averageContractPeriod = getAverageContractPeriod(); + $stddevContractPeriod = getstddevContractPeriod(); + $diff = strtotime($cn['contractEnd']) - strtotime($cn['contractStart']); + $days = intval($diff / (60 * 60 * 24)); + $value = abs($days - $averageContractPeriod) / $stddevContractPeriod; + return Array( + "heuristic_value" => $value, + "raw_value" => $days, + "mean" => $averageContractPeriod, + "stddev" => $stddevContractPeriod + ); } +$averageContractPeriod; + +function getAverageContractPeriod() { + global $averageContractPeriod, $stddevContractPeriod; + if (!$averageContractPeriod) { + getStddevAverageContractPeriod(); + } + return $averageContractPeriod; +} + +$stddevContractPeriod; + +function getstddevContractPeriod() { + global $averageContractPeriod, $stddevContractPeriod; + if (!$stddevContractPeriod) { + getStddevAverageContractPeriod(); + } + return $stddevContractPeriod; +} + +function getStddevAverageContractPeriod() { + global $averageContractPeriod, $stddevContractPeriod; + $query = "select AVG(dateDiff(contractEnd,contractStart)),stddev(dateDiff(contractEnd,contractStart)) from contractnotice"; + $result = $conn->query($query); + $r = $result->fetch(PDO::FETCH_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?" + "description" => "Reported late, 45 days?" ); -function DATE_REPORTED_LATE($cn) -{ - $averageDaysLate = getAverageDaysLate(); - $stddevDaysLate = getStddevDaysLate(); - $diff = strtotime($cn['publishDate']) - strtotime($cn['contractStart']); - $days = intval($diff / (60 * 60 * 24)); - if ($days <= 0) { - $value = 0; - } - else { - // +1 demerit for exceeding 45 day requirement - $value = (abs($days - $averageDaysLate) / $stddevDaysLate) + ($days < 45 ? 0 : 1); - } - return Array( - "heuristic_value" => $value, - "raw_value" => $days, - "mean" => $averageDaysLate, - "stddev" => $stddevDaysLate - ); + +function DATE_REPORTED_LATE($cn) { + $averageDaysLate = getAverageDaysLate(); + $stddevDaysLate = getStddevDaysLate(); + $diff = strtotime($cn['publishDate']) - strtotime($cn['contractStart']); + $days = intval($diff / (60 * 60 * 24)); + if ($days <= 0) { + $value = 0; + } else { + // +1 demerit for exceeding 45 day requirement + $value = (abs($days - $averageDaysLate) / $stddevDaysLate) + ($days < 45 ? 0 : 1); + } + return Array( + "heuristic_value" => $value, + "raw_value" => $days, + "mean" => $averageDaysLate, + "stddev" => $stddevDaysLate + ); } + $averageDaysLate; -function getAverageDaysLate() -{ - global $averageDaysLate; - if (!$averageDaysLate) { - getDaysLate(); - } - return $averageDaysLate; + +function getAverageDaysLate() { + global $averageDaysLate; + if (!$averageDaysLate) { + getDaysLate(); + } + return $averageDaysLate; } + $stddevDaysLate; -function getStddevDaysLate() -{ - global $stddevDaysLate; - if (!$stddevDaysLate) { - getDaysLate(); - } - return $stddevDaysLate; + +function getStddevDaysLate() { + global $stddevDaysLate; + if (!$stddevDaysLate) { + 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]; + global $averageDaysLate, $stddevDaysLate; + + $query = "select AVG(dateDiff(publishDate,contractStart)), STDDEV(dateDiff(publishDate,contractStart)) from contractnotice"; + $result = $conn->query($query); + $r = $result->fetch(PDO::FETCH_BOTH); + $averageDaysLate = $r[0]; + $stddevDaysLate = $r[1]; } + ?>