More value heuristics
[contractdashboard.git] / heuristics / heuristics.inc.php
blob:a/heuristics/heuristics.inc.php -> blob:b/heuristics/heuristics.inc.php
--- a/heuristics/heuristics.inc.php
+++ b/heuristics/heuristics.inc.php
@@ -1,20 +1,25 @@
 <?php
-  include_once("../lib/common.inc.php");
+include_once ("../lib/common.inc.php");
 $heuristics = Array();
 //each heuristic adds self to description array
 include ("dateHeuristics.php");
-//include("historyHeuristics.php");
-//include("metadataHeuristics.php");
-//include("valueHeuristics.php");
-// method signature heuristic($contractNoticeAsArray);
+//include ("historyHeuristics.php");
+//include ("metadataHeuristics.php");
+//include ("valueHeuristics.php");
 function runHeuristic($heuristicName, $cn)
 {
-	$hresults = call_user_func($heuristicName, $cn);
-	if (!isset($hresults["heuristic_value"]) || !isset($hresults["raw_value"]) || !isset($hresults["mean"]) || !isset($hresults["stddev"])) {
-		print_r($hresults);
-		die("Missing field in heurtistic $heuristicName result");
-	}
-	$query = "insert into heuristic_results values('$heuristicName',
+	// check  if already ran
+	$query = "select count(*) from heuristic_results where heuristic_name = '$heuristicName' and CNID = '{$CN['CNID']}";
+	$result = mysql_query($query);
+	$r = mysql_fetch_array($result);
+	if ($r[0] == 0) {
+		// if not, run now
+		$hresults = call_user_func($heuristicName, $cn);
+		if (!isset($hresults["heuristic_value"]) || !isset($hresults["raw_value"]) || !isset($hresults["mean"]) || !isset($hresults["stddev"])) {
+			print_r($hresults);
+			die("Missing field in heurtistic $heuristicName result");
+		}
+		$query = "insert into heuristic_results values('$heuristicName',
     '{$hresults["heuristic_value"]}',
      '{$hresults["raw_value"]}',
       '{$hresults["mean"]}',
@@ -25,9 +30,10 @@
            '{$cn["agencyABN"]}',
            '{$cn["supplierID"]}'
     )";
-	// save value and cn data via sql
-	$result = mysql_query($query);
-	if ($result) echo "Saved $heuristicName for {$cn["CNID"]} <br>\n";
-	elseif (strpos(mysql_error() , "Duplicate entry") === false) echo $hresults . " failed insert.<br>" . mysql_error() . " <br>  $query <br><br>\n";
+		// save value and cn data via sql
+		$result = mysql_query($query);
+		if ($result) echo "Saved $heuristicName for {$cn["CNID"]} <br>\n";
+		elseif (strpos(mysql_error() , "Duplicate entry") === false) echo $hresults . " failed insert.<br>" . mysql_error() . " <br>  $query <br><br>\n";
+	}
 }
 ?>