--- a/admin/linkAmendments.php
+++ b/admin/linkAmendments.php
@@ -1,23 +1,67 @@
0 ';
+if (php_sapi_name() != "cli") {
+
+//auth();
+}
+$query = 'update contractnotice set "parentCN" = null where "parentCN" = \'0\'';
$query = $conn->prepare($query);
$query->execute();
- if (!$query) {
+ $query = 'update contractnotice set "supplierABN" = null where "supplierABN" = \'0\'';
+$query = $conn->prepare($query);
+ $query->execute();
+$query = 'SELECT c."CNID",c."parentCN",p."childCN" FROM contractnotice as c LEFT OUTER JOIN contractnotice as p on c."parentCN" = p."CNID"
+WHERE
+c."parentCN" IS NOT NULL AND p."childCN" IS NULL ';
+$query = $conn->prepare($query);
+ $query->execute();
databaseError($conn->errorInfo());
- }
foreach ($query->fetchAll() as $row) {
- $conn->exec('UPDATE contractnotice SET childCN = "' .
- $row['CNID'] . '", amendmentReason = "' .
- $row['amendmentReason'] . '" where "CNID" = "' .
- $row['parentCN'] . '";');
+ if ($row['parentCN'] != 0) {
+ $conn->exec('UPDATE contractnotice SET "childCN" = \'' .
+ $row['CNID'] . '\' where "CNID" = \'' .
+ $row['parentCN'] . '\';');
+echo 'UPDATE contractnotice SET "childCN" = \'' .
+ $row['CNID'] . '\' where "CNID" = \'' .
+ $row['parentCN'] . '\';';
$errors = $conn->errorInfo();
if ($errors[1] == 7 || $errors[1] ==0)
echo $row['CNID'] . " linked to parent " . $row['parentCN'] .
"
\n";
else print_r($errors);
+ }
+}
+// also need to eliminate CN 100528/100529 - check for double parent CNs with no childCN, latest sequent CN id keeps childCN = 0
+$query = 'SELECT "parentCN", array_agg("CNID"), count(*) from contractnotice WHERE "parentCN" IN
+(
+ SELECT "parentCN"
+ FROM contractnotice
+ GROUP BY "parentCN"
+ HAVING COUNT(*) > 1
+ AND "parentCN" IS NOT NULL
+)
+AND "childCN" IS NULL
+GROUP BY "parentCN" having count(*) > 1';
+$query = $conn->prepare($query);
+ $query->execute();
+ databaseError($conn->errorInfo());
+foreach ($query->fetchAll() as $row) {
+ $cnids = explode(",",str_replace(Array("{","}"),"",$row['array_agg']));
+ $last_cnid = array_pop($cnids);
+ foreach ($cnids as $cnid) {
+ $conn->exec('UPDATE contractnotice SET "childCN" = \'' .
+ $last_cnid . '\' where "CNID" = \'' .
+ $cnid . '\';');
+
+ $errors = $conn->errorInfo();
+
+ if ($errors[1] == 7 || $errors[1] ==0)
+ echo $cnid . " linked to latest child " . $last_cnid .
+ "
\n";
+ else print_r($errors);
+}
+}
-}
?>
+