--- a/admin/import.php +++ b/admin/import.php @@ -1,258 +1,1 @@ - $f) { - $contractNoticeInsertQ.= ($key == 0 ? "" : ", ") . "?"; -} -$contractNoticeInsertQ.= ");"; -$contractNoticeInsertQ = $conn->prepare($contractNoticeInsertQ); - -$supplierInsertQ = 'INSERT INTO supplierdetails ("' . implode('" , "', $supplierFields) . '") VALUES ( '; -foreach ($supplierFields as $key => $f) { - $supplierInsertQ.= ($key == 0 ? "" : ", ") . "?"; -} -$supplierInsertQ.= ");"; -$supplierInsertQ = $conn->prepare($supplierInsertQ); - -$agencyInsertQ = 'INSERT INTO agency_nametoabn ("' . implode('" , "', $agencyFields) . '") VALUES ( '; -foreach ($agencyFields as $key => $f) { - $agencyInsertQ.= ($key == 0 ? "" : ", ") . "?"; -} -$agencyInsertQ.= ");"; -$agencyInsertQ = $conn->prepare($agencyInsertQ); - -function processFile($fpath, $tablename) { - global $conn, $contractNoticeQ, $supplierInsertQ, $agencyInsertQ; - $row = 1; - $handle = fopen($fpath, "r"); - //"t" mode string translates windows line breaks to unix - $datamapping0711 = array( - "Agency" => "agencyName", - "Parent CN ID" => "parentCN", - "CN ID" => "CNID", - "Publish Date" => "publishDate", - "Amendment Date" => "amendDate", - "Status" => "", - "StartDate" => "contractStart", - "EndDate" => "contractEnd", - "Value" => "value", - "Description" => "description", - "Agency Ref Id" => "agencyID", - "Category" => "category", - "Procurement Method" => "procurementMethod", - "ATM ID" => "atmID", - "SON ID" => "SONID", - "Confidentiality - Contract" => "confidentialityContract", - "Confidentiality - Contract Reason(s)" => "confidentialityContractReason", - "Confidentiality - Outputs" => "confidentialityOutputs", - "Confidentiality - Outputs Reason(s)" => "confidentialityOutputsReason", - "Consultancy" => "consultancy", - "Consultancy Reason(s)" => "consultancyReason", - "Amendment Reason" => "amendmentReason", - "Supplier Name" => "supplierName", - "Supplier Address" => "supplierAddress", - "Supplier City" => "supplierCity", - "Supplier Postcode" => "supplierPostcode", - "Supplier Country" => "supplierCountry", - "Supplier ABNExempt" => "supplierABNExempt", - "Supplier ABN" => "supplierABN", - "Agency Branch" => "contactBranch", - "Agency Divison" => "contactDivision", - "Agency Postcode" => "contactPostcode", - "" => "" - ); - $headers; - - while (($data = fgetcsv($handle, 1000, "\t")) !== false) { - $num = count($data); - if ($row == 3) { - $headers = $data; - } elseif ($row > 3) { - if ($num > count($datamapping0711)) { - die("Error in data import; data mapping fields out of bounds or changed
" . $fname . print_r($data)); - } - $contractNoticeInsert = Array(); - $supplierInsert = Array(); - $agencyInsert = Array(); - $contractNoticeInsert[] = $fpath; - $keys = array_keys($datamapping0711); - for ($c = 0; $c < $num; $c++) { - $data[$c] = trim($data[$c], "="); - $data[$c] = trim($data[$c], "\""); - if ($tablename == "contractnotice") { - if (in_array(($datamapping0711[$headers[$c]]), $contractNoticeFields)) { - if (($datamapping0711[$headers[$c]]) == "parentCN" || ($datamapping0711[$headers[$c]]) == "CNID") { - $data[$c] = substr($data[$c], 2); // take off the "CN" prefix - if ($data[$c] > 0) { - $contractNoticeInsert[] = $data[$c]; - } else { - $contractNoticeInsert[] = 0; - } - } elseif (($datamapping0711[$headers[$c]]) == "supplierABN") { - if ($data[$c] > 0) { - $contractNoticeInsert[] = $data[$c]; - } else { - $contractNoticeInsert[] = null; - } - } elseif (($datamapping0711[$headers[$c]]) == "amendDate" || ($datamapping0711[$headers[$c]]) == "publishDate" || ($datamapping0711[$headers[$c]]) == "contractStart" || ($datamapping0711[$headers[$c]]) == "contractEnd") { - $contractNoticeInsert[] = date('Y-m-d H:i:s', strtotime($data[$c])); - } else { - if (strstr("\" =", $data[$c] > 0)) { - die("Invalid Description field" . $contractNoticeInsert); - } - $colvalue = preg_replace('/[^[:print:]]/', '', utf8_encode($data[$c])); - - $contractNoticeInsert[] = $colvalue; - } - } - } else if ($tablename == "supplierdetails") { - if (in_array(($datamapping0711[$headers[$c]]), $supplierFields)) { - if (($datamapping0711[$headers[$c]]) == "supplierABN") { - if ($data[$c] > 0) { - $contractNoticeInsert[] = $data[$c]; - } else { - $contractNoticeInsert[] = 0; - } - } else { - $supplierInsert[] = $data[$c]; - } - } - } else if ($tablename == "agency") { - if (in_array(($datamapping0711[$headers[$c]]), $agencyFields)) { - $agencyInsert[] = $data[$c]; - } - } - } - flush(); - if ($tablename == "contractnotice") { - $contractNoticeInsertQ->execute($contractNoticeInsert); - $errors = $conn->errorInfo(); - if ($errors[1] == 7 && strpos($errors[2], "duplicate key")) { - - } elseif ($errors[1] == 0) { - $success++; - } else { - foreach ($contractNoticeFields as $key => $cnf) { - echo var_dump($contractNoticeInsert[$key]) . $cnf . "
"; - } - echo $data[2] . " failed CN insert.
" . print_r($errors, true) . "
row $row

\n"; - } - } else if ($tablename == "supplierdetails") { - $supplierInsertQ->execute($supplierInsert); - $errors = $conn->errorInfo(); - if ($errors[1] == 7 && strpos($errors[2], "duplicate key")) { - - } elseif ($errors[1] == 0) { - $success++; - } else { - echo $data[2] . " failed supplier insert.
" . print_r($errors, true) . "
" . print_r($supplierInsert, true) . "
$row

\n"; - } - } else if ($tablename == "agency") { - $agencyInsertQ->execute($agencyInsert); - $errors = $conn->errorInfo(); - if ($errors[1] == 7 && strpos($errors[2], "duplicate key")) { - - } elseif ($errors[1] == 0) { - $success++; - } else { - echo $data[2] . " failed agency insert.
" . print_r($errors, true) . "
" . print_r($agencyInsert, true) . "
$row

\n"; - } - } - flush(); - //echo "
\n"; - } - $row++; - } - fclose($handle); - $contractNoticeInsertQ->closeCursor(); - $supplierInsertQ->closeCursor(); - $agencyInsertQ->closeCursor(); - - return $success; -} - -$path = 'data/'; -if ($_REQUEST["fname"] == "") { - echo "Get files from: https://www.tenders.gov.au/?event=public.reports.list
"; - $dhandle = opendir($path); - // define an array to hold the files - $files = array(); - if ($dhandle) { - // loop through all of the files - while (false !== ($fname = readdir($dhandle))) { - if (($fname != '.') && ($fname != '..')) { - echo "$fname " . filesize($path . $fname) . " " . date("c", filemtime($path . $fname)) . "
"; - } - } - } -} else { - $success = 0; - $fname = $_REQUEST["fname"]; - echo " ============== $fname ==============
"; - flush(); - $success+= processFile($path . $fname, "contractnotice"); - $success+= processFile($path . $fname, "agency"); - $success+= processFile($path . $fname, "supplier"); - echo "
$success records successfully created"; - - flush(); - // run post import data processing -// cn - echo "link amend
"; - include ("linkAmendments.php"); - echo "update UNSPSC
"; - include ("updateUNSPSC.php"); -// agency -//include ("setAgencyStatus.php"); -//include ("setAgencyURLABN.php"); -} -?> -