Added Import for Large CSV
This commit is contained in:
+67
-149
@@ -2,12 +2,12 @@
|
||||
|
||||
class Consolidation extends Base {
|
||||
|
||||
// Variables.
|
||||
// Variables
|
||||
|
||||
private $current_user_serial = 0;
|
||||
private $current_user_id = "";
|
||||
private $current_user_name = "";
|
||||
private $current_user_email = "";
|
||||
private $current_user_id = "";
|
||||
private $current_user_name = "";
|
||||
private $current_user_email = "";
|
||||
|
||||
// =================
|
||||
// Class Constructor
|
||||
@@ -20,9 +20,9 @@ class Consolidation extends Base {
|
||||
date_default_timezone_set(self::TIMEZONE);
|
||||
|
||||
$this->current_user_serial = $_SESSION[self::USER_SERIAL] ?? 0;
|
||||
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
|
||||
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
|
||||
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
|
||||
$this->current_user_id = $_SESSION[self::USER_ID] ?? "";
|
||||
$this->current_user_name = $_SESSION[self::USER_NAME] ?? "";
|
||||
$this->current_user_email = $_SESSION[self::USER_EMAIL] ?? "";
|
||||
}
|
||||
|
||||
// ======================
|
||||
@@ -47,6 +47,11 @@ class Consolidation extends Base {
|
||||
|
||||
case "run":
|
||||
|
||||
$XSLParms = array();
|
||||
$permit_record_count = 0;
|
||||
$processed_record_count = 0;
|
||||
$connection = null;
|
||||
|
||||
$sql_insert = "insert into rdiconsolidations
|
||||
|
||||
( rdiconsolidation_permit_facts_id,
|
||||
@@ -85,150 +90,73 @@ class Consolidation extends Base {
|
||||
rdiconsolidation_ytd_value,
|
||||
rdiconsolidation_12mth_prev_permits,
|
||||
rdiconsolidation_date )
|
||||
|
||||
values ( :rdiconsolidation_permit_facts_id,
|
||||
:rdiconsolidation_entry_date_str,
|
||||
:rdiconsolidation_entry_date,
|
||||
:rdiconsolidation_permit_number,
|
||||
:rdiconsolidation_permit_date_str,
|
||||
:rdiconsolidation_permit_date,
|
||||
:rdiconsolidation_project_addr,
|
||||
:rdiconsolidation_sub_div_name,
|
||||
:rdiconsolidation_project_type,
|
||||
:rdiconsolidation_company,
|
||||
:rdiconsolidation_address,
|
||||
:rdiconsolidation_city,
|
||||
:rdiconsolidation_state,
|
||||
:rdiconsolidation_zip,
|
||||
:rdiconsolidation_phone,
|
||||
:rdiconsolidation_project_city,
|
||||
:rdiconsolidation_project_state,
|
||||
:rdiconsolidation_size,
|
||||
:rdiconsolidation_units,
|
||||
:rdiconsolidation_building_type,
|
||||
:rdiconsolidation_value,
|
||||
:rdiconsolidation_work_type,
|
||||
:rdiconsolidation_county,
|
||||
:rdiconsolidation_lot,
|
||||
:rdiconsolidation_dist_ll,
|
||||
:rdiconsolidation_ct1,
|
||||
:rdiconsolidation_owner_name,
|
||||
:rdiconsolidation_owner_address,
|
||||
:rdiconsolidation_owner_city,
|
||||
:rdiconsolidation_owner_state,
|
||||
:rdiconsolidation_owner_zip,
|
||||
:rdiconsolidation_owner_phone,
|
||||
:rdiconsolidation_ytd_permits,
|
||||
:rdiconsolidation_ytd_value,
|
||||
:rdiconsolidation_12mth_prev_permits,
|
||||
:rdiconsolidation_date ) ";
|
||||
|
||||
$connection = $this->connect();
|
||||
select coalesce(permit_permit_facts_id, 0),
|
||||
coalesce(permit_entry_date_str, ''),
|
||||
coalesce(permit_entry_date, '0000-00-00'),
|
||||
coalesce(permit_permit_number, ''),
|
||||
coalesce(permit_permit_date_str, ''),
|
||||
coalesce(permit_permit_date, '0000-00-00'),
|
||||
coalesce(permit_project_addr, ''),
|
||||
coalesce(permit_sub_div_name, ''),
|
||||
coalesce(permit_project_type, ''),
|
||||
coalesce(permit_company, ''),
|
||||
coalesce(permit_address, ''),
|
||||
coalesce(permit_city, ''),
|
||||
coalesce(permit_state, ''),
|
||||
coalesce(permit_zip, ''),
|
||||
coalesce(permit_phone, ''),
|
||||
coalesce(permit_project_city, ''),
|
||||
coalesce(permit_project_state, ''),
|
||||
coalesce(permit_size, 0),
|
||||
coalesce(permit_units, 0),
|
||||
coalesce(permit_building_type, 0),
|
||||
coalesce(permit_value, 0),
|
||||
coalesce(permit_work_type, 0),
|
||||
coalesce(permit_county, ''),
|
||||
coalesce(permit_lot, ''),
|
||||
coalesce(permit_dist_ll, ''),
|
||||
coalesce(permit_ct1, 0),
|
||||
coalesce(permit_owner_name, ''),
|
||||
coalesce(permit_owner_address, ''),
|
||||
coalesce(permit_owner_city, ''),
|
||||
coalesce(permit_owner_state, ''),
|
||||
coalesce(permit_owner_zip, ''),
|
||||
coalesce(permit_owner_phone, ''),
|
||||
coalesce(permit_ytd_permits, 0),
|
||||
coalesce(permit_ytd_value, 0),
|
||||
coalesce(permit_12mth_prev_permits, 0),
|
||||
current_date()
|
||||
from permits";
|
||||
|
||||
$connection->beginTransaction();
|
||||
$statement = $connection->prepare($sql_insert);
|
||||
try {
|
||||
|
||||
$rdi_records = $this->getRdiTable();
|
||||
$rdi_record_count = $rdi_records->count();
|
||||
$connection = $this->connect();
|
||||
|
||||
$processed_record_count = 0;
|
||||
$connection->beginTransaction();
|
||||
|
||||
foreach ($rdi_records as $record) {
|
||||
$permit_record_count = (integer) $connection->query("select count(*) from permits")->fetchColumn();
|
||||
$processed_record_count = (integer) $connection->exec($sql_insert);
|
||||
|
||||
$rdiconsolidation_permit_facts_id = (integer) $record->permit_facts_id ?: 0;
|
||||
$rdiconsolidation_entry_date_str = (integer) $record->entry_date_str ?: "";
|
||||
$rdiconsolidation_entry_date = (string) $record->entry_date ?: "0000-00-00";
|
||||
$rdiconsolidation_permit_number = (string) $record->permit_number ?: "";
|
||||
$rdiconsolidation_permit_date_str = (string) $record->permit_date_str ?: "";
|
||||
$rdiconsolidation_permit_date = (string) $record->permit_date ?: "0000-00-00";
|
||||
$rdiconsolidation_project_addr = (string) $record->project_addr ?: "";
|
||||
$rdiconsolidation_sub_div_name = (string) $record->sub_div_name ?: "";
|
||||
$rdiconsolidation_project_type = (string) $record->project_type ?: "";
|
||||
$rdiconsolidation_company = (string) $record->company ?: "";
|
||||
$rdiconsolidation_address = (string) $record->address ?: "";
|
||||
$rdiconsolidation_city = (string) $record->city ?: "";
|
||||
$rdiconsolidation_state = (string) $record->state ?: "";
|
||||
$rdiconsolidation_zip = (string) $record->zip ?: "";
|
||||
$rdiconsolidation_phone = (string) $record->phone ?: "";
|
||||
$rdiconsolidation_project_city = (string) $record->project_city ?: "";
|
||||
$rdiconsolidation_project_state = (string) $record->project_state ?: "";
|
||||
$rdiconsolidation_size = (integer) $record->size ?: 0;
|
||||
$rdiconsolidation_units = (integer) $record->units ?: 0;
|
||||
$rdiconsolidation_building_type = (integer) $record->building_type ?: 0;
|
||||
$rdiconsolidation_value = (integer) $record->value ?: 0;
|
||||
$rdiconsolidation_work_type = (integer) $record->work_type ?: 0;
|
||||
$rdiconsolidation_county = (string) $record->county ?: "";
|
||||
$rdiconsolidation_lot = (string) $record->lot ?: "";
|
||||
$rdiconsolidation_dist_ll = (string) $record->dist_ll ?: "";
|
||||
$rdiconsolidation_ct1 = (integer) $record->ct1 ?: 0;
|
||||
$rdiconsolidation_owner_name = (string) $record->owner_name ?: "";
|
||||
$rdiconsolidation_owner_address = (string) $record->owner_address ?: "";
|
||||
$rdiconsolidation_owner_city = (string) $record->owner_city ?: "";
|
||||
$rdiconsolidation_owner_state = (string) $record->owner_state ?: "";
|
||||
$rdiconsolidation_owner_zip = (string) $record->owner_zip ?: "";
|
||||
$rdiconsolidation_owner_phone = (string) $record->owner_phone ?: "";
|
||||
$rdiconsolidation_ytd_permits = (integer) $record->ytd_permits ?: 0;
|
||||
$rdiconsolidation_ytd_value = (integer) $record->ytd_value ?: 0;
|
||||
$rdiconsolidation_12mth_prev_permits = (integer) $record->{"12mth_prev_permits"} ?: 0;
|
||||
$rdiconsolidation_date = date("Y-m-d");
|
||||
|
||||
$statement->bindValue(":rdiconsolidation_permit_facts_id", $rdiconsolidation_permit_facts_id);
|
||||
$statement->bindValue(":rdiconsolidation_entry_date_str", $rdiconsolidation_entry_date_str);
|
||||
$statement->bindValue(":rdiconsolidation_entry_date", $rdiconsolidation_entry_date);
|
||||
$statement->bindValue(":rdiconsolidation_permit_number", $rdiconsolidation_permit_number);
|
||||
$statement->bindValue(":rdiconsolidation_permit_date_str", $rdiconsolidation_permit_date_str);
|
||||
$statement->bindValue(":rdiconsolidation_permit_date", $rdiconsolidation_permit_date);
|
||||
$statement->bindValue(":rdiconsolidation_project_addr", $rdiconsolidation_project_addr);
|
||||
$statement->bindValue(":rdiconsolidation_sub_div_name", $rdiconsolidation_sub_div_name);
|
||||
$statement->bindValue(":rdiconsolidation_project_type", $rdiconsolidation_project_type);
|
||||
$statement->bindValue(":rdiconsolidation_company", $rdiconsolidation_company);
|
||||
$statement->bindValue(":rdiconsolidation_address", $rdiconsolidation_address);
|
||||
$statement->bindValue(":rdiconsolidation_city", $rdiconsolidation_city);
|
||||
$statement->bindValue(":rdiconsolidation_state", $rdiconsolidation_state);
|
||||
$statement->bindValue(":rdiconsolidation_zip", $rdiconsolidation_zip);
|
||||
$statement->bindValue(":rdiconsolidation_phone", $rdiconsolidation_phone);
|
||||
$statement->bindValue(":rdiconsolidation_project_city", $rdiconsolidation_project_city);
|
||||
$statement->bindValue(":rdiconsolidation_project_state", $rdiconsolidation_project_state);
|
||||
$statement->bindValue(":rdiconsolidation_size", $rdiconsolidation_size);
|
||||
$statement->bindValue(":rdiconsolidation_units", $rdiconsolidation_units);
|
||||
$statement->bindValue(":rdiconsolidation_building_type", $rdiconsolidation_building_type);
|
||||
$statement->bindValue(":rdiconsolidation_value", $rdiconsolidation_value);
|
||||
$statement->bindValue(":rdiconsolidation_work_type", $rdiconsolidation_work_type);
|
||||
$statement->bindValue(":rdiconsolidation_county", $rdiconsolidation_county);
|
||||
$statement->bindValue(":rdiconsolidation_lot", $rdiconsolidation_lot);
|
||||
$statement->bindValue(":rdiconsolidation_dist_ll", $rdiconsolidation_dist_ll);
|
||||
$statement->bindValue(":rdiconsolidation_ct1", $rdiconsolidation_ct1);
|
||||
$statement->bindValue(":rdiconsolidation_owner_name", $rdiconsolidation_owner_name);
|
||||
$statement->bindValue(":rdiconsolidation_owner_address", $rdiconsolidation_owner_address);
|
||||
$statement->bindValue(":rdiconsolidation_owner_city", $rdiconsolidation_owner_city);
|
||||
$statement->bindValue(":rdiconsolidation_owner_state", $rdiconsolidation_owner_state);
|
||||
$statement->bindValue(":rdiconsolidation_owner_zip", $rdiconsolidation_owner_zip);
|
||||
$statement->bindValue(":rdiconsolidation_owner_phone", $rdiconsolidation_owner_phone);
|
||||
$statement->bindValue(":rdiconsolidation_ytd_permits", $rdiconsolidation_ytd_permits);
|
||||
$statement->bindValue(":rdiconsolidation_ytd_value", $rdiconsolidation_ytd_value);
|
||||
$statement->bindValue(":rdiconsolidation_12mth_prev_permits", $rdiconsolidation_12mth_prev_permits);
|
||||
$statement->bindValue(":rdiconsolidation_date", $rdiconsolidation_date);
|
||||
|
||||
if (!$statement->execute()) {
|
||||
|
||||
$connection->rollBack();
|
||||
$this->debug($connection->errorInfo()[2]);
|
||||
if ($processed_record_count !== $permit_record_count) {
|
||||
throw new RuntimeException("Record counts did not match. Rolling back database. Contact Support.");
|
||||
}
|
||||
|
||||
$processed_record_count++;
|
||||
}
|
||||
|
||||
if ($processed_record_count !== $rdi_record_count) {
|
||||
$connection->rollBack();
|
||||
$XSLParms["CONSOLIDATION_ERROR"] = "Record Counts Did not match. Rolling Back Database. Contact Support.";
|
||||
} else {
|
||||
$connection->commit();
|
||||
$this->executeSQL("truncate rdis");
|
||||
$connection->exec("truncate permits");
|
||||
} catch (Exception $e) {
|
||||
|
||||
if (($connection instanceof PDO) && $connection->inTransaction()) {
|
||||
$connection->rollBack();
|
||||
}
|
||||
|
||||
$XSLParms["CONSOLIDATION-ERROR"] = $e->getMessage();
|
||||
}
|
||||
|
||||
$XSLParms["RDI-RECORD-COUNT"] = $rdi_record_count;
|
||||
$XSLParms["RDI-RECORD-COUNT"] = $permit_record_count;
|
||||
$XSLParms["PROCESSED-RECORD-COUNT"] = $processed_record_count;
|
||||
$content = $this->applyXSL("", $this->getXSL("consolidationResults"), $XSLParms);
|
||||
$content = $this->applyXSL("", $this->getXSL("consolidationResults"), $XSLParms);
|
||||
|
||||
$this->displayContent($content);
|
||||
|
||||
break;
|
||||
@@ -239,16 +167,6 @@ class Consolidation extends Base {
|
||||
}
|
||||
}
|
||||
|
||||
// ====================
|
||||
// Return an RDI Object
|
||||
// ====================
|
||||
|
||||
public function getRdiTable() {
|
||||
|
||||
$SQL = "SELECT * FROM permits";
|
||||
|
||||
return $this->getTable("rdis", $SQL);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user