Created view to calculate statistics for YTD Permits. Also changed the term RDI to Permit for consistency and understanding
This commit is contained in:
@@ -0,0 +1,549 @@
|
||||
<?php
|
||||
|
||||
class Permits extends Base {
|
||||
|
||||
// Variables.
|
||||
|
||||
private $current_user_serial = 0;
|
||||
private $current_user_id = "";
|
||||
private $current_user_name = "";
|
||||
private $current_user_email = "";
|
||||
private $pagination_size = 20;
|
||||
private $pagination_page = 1;
|
||||
|
||||
// =================
|
||||
// Class Constructor
|
||||
// =================
|
||||
|
||||
public function __construct() {
|
||||
|
||||
set_error_handler(array($this, "displayError"));
|
||||
|
||||
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->pagination_page = $_SESSION[self::PAGINATION_PAGE] ?? 1;
|
||||
}
|
||||
|
||||
// ==============
|
||||
// Manage Permits
|
||||
// ==============
|
||||
|
||||
public function managePermits() {
|
||||
|
||||
$permit = $this->getPermitsPage();
|
||||
$popovers = (new Popovers())->getPopovers();
|
||||
|
||||
$XML = $this->mergeXML($permit, "<XML/>");
|
||||
$XML = $this->mergeXML($popovers, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("managePermits"));
|
||||
|
||||
$this->displayContent($content);
|
||||
}
|
||||
|
||||
// ==========
|
||||
// Add Permit
|
||||
// ==========
|
||||
|
||||
public function addPermit() {
|
||||
|
||||
$step = filter_input(INPUT_POST, "step") ?: "prompt";
|
||||
|
||||
switch ($step) {
|
||||
|
||||
case "prompt":
|
||||
|
||||
$constants = $this->getConstants();
|
||||
$counties = (new Counties())->getCounties();
|
||||
|
||||
$XML = $this->mergeXML($constants, "<XML/>");
|
||||
$XML = $this->mergeXML($counties, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("addPermit"));
|
||||
|
||||
$this->displayContent($content);
|
||||
|
||||
break;
|
||||
|
||||
case "add":
|
||||
|
||||
$permit_permit_facts_id = filter_input(INPUT_POST, "permit_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_permit_number = filter_input(INPUT_POST, "permit_permit_number") ?: '';
|
||||
$permit_entry_date = filter_input(INPUT_POST, "permit_entry_date") ?: '';
|
||||
$permit_permit_date = filter_input(INPUT_POST, "permit_permit_date") ?: '';
|
||||
$permit_sub_div_name = filter_input(INPUT_POST, "permit_sub_div_name") ?: '';
|
||||
$permit_project_type = filter_input(INPUT_POST, "permit_project_type") ?: '';
|
||||
$permit_county = filter_input(INPUT_POST, "permit_county") ?: '';
|
||||
$permit_company = filter_input(INPUT_POST, "permit_company") ?: '';
|
||||
$permit_phone = filter_input(INPUT_POST, "permit_phone") ?: '';
|
||||
$permit_project_addr = filter_input(INPUT_POST, "permit_project_addr") ?: '';
|
||||
$permit_city = filter_input(INPUT_POST, "permit_city") ?: '';
|
||||
$permit_state = filter_input(INPUT_POST, "permit_state") ?: '';
|
||||
$permit_zip = filter_input(INPUT_POST, "permit_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_project_city = filter_input(INPUT_POST, "permit_project_city") ?: '';
|
||||
$permit_project_state = filter_input(INPUT_POST, "permit_project_state") ?: '';
|
||||
$permit_value = filter_input(INPUT_POST, "permit_value", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_lot = filter_input(INPUT_POST, "permit_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_dist_ll = filter_input(INPUT_POST, "permit_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_owner_name = filter_input(INPUT_POST, "permit_owner_name") ?: '';
|
||||
$permit_owner_phone = filter_input(INPUT_POST, "permit_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$permit_owner_address = filter_input(INPUT_POST, "permit_owner_address") ?: '';
|
||||
$permit_owner_city = filter_input(INPUT_POST, "permit_owner_city") ?: '';
|
||||
$permit_owner_state = filter_input(INPUT_POST, "permit_owner_state") ?: '';
|
||||
$permit_owner_zip = filter_input(INPUT_POST, "permit_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$permit_size = filter_input(INPUT_POST, "permit_size", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_units = filter_input(INPUT_POST, "permit_units", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_building_type = filter_input(INPUT_POST, "permit_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_work_type = filter_input(INPUT_POST, "permit_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ct1 = filter_input(INPUT_POST, "permit_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ytd_permits = filter_input(INPUT_POST, "permit_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ytd_value = filter_input(INPUT_POST, "permit_ytd_value") ?: 0;
|
||||
$permit_12mth_prev_permits = filter_input(INPUT_POST, "permit_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$permit_entry_date = date("Y-m-d", strtotime($permit_entry_date));
|
||||
$permit_permit_date = date("Y-m-d", strtotime($permit_permit_date));
|
||||
$permit_value = str_replace(",", "", $permit_value);
|
||||
|
||||
$SQL = "INSERT INTO permits (
|
||||
permit_permit_facts_id,
|
||||
permit_permit_number,
|
||||
permit_entry_date,
|
||||
permit_permit_date,
|
||||
permit_sub_div_name,
|
||||
permit_project_type,
|
||||
permit_county,
|
||||
permit_company,
|
||||
permit_phone,
|
||||
permit_project_addr,
|
||||
permit_city,
|
||||
permit_state,
|
||||
permit_zip,
|
||||
permit_project_city,
|
||||
permit_project_state,
|
||||
permit_value,
|
||||
permit_lot,
|
||||
permit_dist_ll,
|
||||
permit_owner_name,
|
||||
permit_owner_phone,
|
||||
permit_owner_address,
|
||||
permit_owner_city,
|
||||
permit_owner_state,
|
||||
permit_owner_zip,
|
||||
permit_size,
|
||||
permit_units,
|
||||
permit_building_type,
|
||||
permit_work_type,
|
||||
permit_ct1,
|
||||
permit_ytd_permits,
|
||||
permit_ytd_value,
|
||||
permit_12mth_prev_permits
|
||||
) VALUES (
|
||||
:permit_permit_facts_id,
|
||||
:permit_permit_number,
|
||||
:permit_entry_date,
|
||||
:permit_permit_date,
|
||||
:permit_sub_div_name,
|
||||
:permit_project_type,
|
||||
:permit_county,
|
||||
:permit_company,
|
||||
:permit_phone,
|
||||
:permit_project_addr,
|
||||
:permit_city,
|
||||
:permit_state,
|
||||
:permit_zip,
|
||||
:permit_project_city,
|
||||
:permit_project_state,
|
||||
:permit_value,
|
||||
:permit_lot,
|
||||
:permit_dist_ll,
|
||||
:permit_owner_name,
|
||||
:permit_owner_phone,
|
||||
:permit_owner_address,
|
||||
:permit_owner_city,
|
||||
:permit_owner_state,
|
||||
:permit_owner_zip,
|
||||
:permit_size,
|
||||
:permit_units,
|
||||
:permit_building_type,
|
||||
:permit_work_type,
|
||||
:permit_ct1,
|
||||
:permit_ytd_permits,
|
||||
:permit_ytd_value,
|
||||
:permit_12mth_prev_permits
|
||||
)";
|
||||
|
||||
$statement = $this->connect()->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":permit_permit_facts_id", $permit_permit_facts_id);
|
||||
$statement->bindValue(":permit_permit_number", $permit_permit_number);
|
||||
$statement->bindValue(":permit_entry_date", $permit_entry_date);
|
||||
$statement->bindValue(":permit_permit_date", $permit_permit_date);
|
||||
$statement->bindValue(":permit_sub_div_name", $permit_sub_div_name);
|
||||
$statement->bindValue(":permit_project_type", $permit_project_type);
|
||||
$statement->bindValue(":permit_county", $permit_county);
|
||||
$statement->bindValue(":permit_company", $permit_company);
|
||||
$statement->bindValue(":permit_phone", $permit_phone);
|
||||
$statement->bindValue(":permit_project_addr", $permit_project_addr);
|
||||
$statement->bindValue(":permit_city", $permit_city);
|
||||
$statement->bindValue(":permit_state", $permit_state);
|
||||
$statement->bindValue(":permit_zip", $permit_zip);
|
||||
$statement->bindValue(":permit_project_city", $permit_project_city);
|
||||
$statement->bindValue(":permit_project_state", $permit_project_state);
|
||||
$statement->bindValue(":permit_value", $permit_value);
|
||||
$statement->bindValue(":permit_lot", $permit_lot);
|
||||
$statement->bindValue(":permit_dist_ll", $permit_dist_ll);
|
||||
$statement->bindValue(":permit_owner_name", $permit_owner_name);
|
||||
$statement->bindValue(":permit_owner_phone", $permit_owner_phone);
|
||||
$statement->bindValue(":permit_owner_address", $permit_owner_address);
|
||||
$statement->bindValue(":permit_owner_city", $permit_owner_city);
|
||||
$statement->bindValue(":permit_owner_state", $permit_owner_state);
|
||||
$statement->bindValue(":permit_owner_zip", $permit_owner_zip);
|
||||
$statement->bindValue(":permit_size", $permit_size);
|
||||
$statement->bindValue(":permit_units", $permit_units);
|
||||
$statement->bindValue(":permit_building_type", $permit_building_type);
|
||||
$statement->bindValue(":permit_work_type", $permit_work_type);
|
||||
$statement->bindValue(":permit_ct1", $permit_ct1);
|
||||
$statement->bindValue(":permit_ytd_permits", $permit_ytd_permits);
|
||||
$statement->bindValue(":permit_ytd_value", $permit_ytd_value);
|
||||
$statement->bindValue(":permit_12mth_prev_permits", $permit_12mth_prev_permits);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
$this->displayHome();
|
||||
}
|
||||
}
|
||||
|
||||
// ==============
|
||||
// Delete Permits
|
||||
// ==============
|
||||
|
||||
public function deletePermits() {
|
||||
|
||||
$permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$permit = $this->getPermits($permit_serial);
|
||||
|
||||
if ($permit->count() == 0) {
|
||||
$this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$SQL = "delete from permits
|
||||
where permit_serial = {$permit_serial}";
|
||||
|
||||
$this->executeSQL($SQL);
|
||||
}
|
||||
|
||||
// ==============
|
||||
// Edit a Permits
|
||||
// ==============
|
||||
|
||||
public function editPermit() {
|
||||
|
||||
$step = filter_input(INPUT_POST, "step") ?: "prompt";
|
||||
|
||||
switch ($step) {
|
||||
|
||||
case "prompt":
|
||||
|
||||
$permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$permit = $this->getPermits($permit_serial);
|
||||
|
||||
if ($permit->count() == 0) {
|
||||
$this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$constants = $this->getConstants();
|
||||
$counties = (new Counties())->getCounties();
|
||||
|
||||
$XML = $this->mergeXML($permit, "<XML/>");
|
||||
$XML = $this->mergeXML($constants, $XML);
|
||||
$XML = $this->mergeXML($counties, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("editPermit"));
|
||||
$this->displayContent($content);
|
||||
|
||||
break;
|
||||
|
||||
case "update":
|
||||
|
||||
$permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_permit_facts_id = filter_input(INPUT_POST, "permit_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_permit_number = filter_input(INPUT_POST, "permit_permit_number") ?: '';
|
||||
$permit_entry_date = filter_input(INPUT_POST, "permit_entry_date") ?: '';
|
||||
$permit_permit_date = filter_input(INPUT_POST, "permit_permit_date") ?: '';
|
||||
$permit_sub_div_name = filter_input(INPUT_POST, "permit_sub_div_name") ?: '';
|
||||
$permit_project_type = filter_input(INPUT_POST, "permit_project_type") ?: '';
|
||||
$permit_county = filter_input(INPUT_POST, "permit_county") ?: '';
|
||||
$permit_company = filter_input(INPUT_POST, "permit_company") ?: '';
|
||||
$permit_phone = filter_input(INPUT_POST, "permit_phone") ?: '';
|
||||
$permit_project_addr = filter_input(INPUT_POST, "permit_project_addr") ?: '';
|
||||
$permit_city = filter_input(INPUT_POST, "permit_city") ?: '';
|
||||
$permit_state = filter_input(INPUT_POST, "permit_state") ?: '';
|
||||
$permit_zip = filter_input(INPUT_POST, "permit_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_project_city = filter_input(INPUT_POST, "permit_project_city") ?: '';
|
||||
$permit_project_state = filter_input(INPUT_POST, "permit_project_state") ?: '';
|
||||
$permit_value = filter_input(INPUT_POST, "permit_value", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_lot = filter_input(INPUT_POST, "permit_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_dist_ll = filter_input(INPUT_POST, "permit_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_owner_name = filter_input(INPUT_POST, "permit_owner_name") ?: '';
|
||||
$permit_owner_phone = filter_input(INPUT_POST, "permit_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$permit_owner_address = filter_input(INPUT_POST, "permit_owner_address") ?: '';
|
||||
$permit_owner_city = filter_input(INPUT_POST, "permit_owner_city") ?: '';
|
||||
$permit_owner_state = filter_input(INPUT_POST, "permit_owner_state") ?: '';
|
||||
$permit_owner_zip = filter_input(INPUT_POST, "permit_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$permit_size = filter_input(INPUT_POST, "permit_size", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_units = filter_input(INPUT_POST, "permit_units", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_building_type = filter_input(INPUT_POST, "permit_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_work_type = filter_input(INPUT_POST, "permit_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ct1 = filter_input(INPUT_POST, "permit_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ytd_permits = filter_input(INPUT_POST, "permit_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$permit_ytd_value = filter_input(INPUT_POST, "permit_ytd_value") ?: 0;
|
||||
$permit_12mth_prev_permits = filter_input(INPUT_POST, "permit_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$permit_entry_date = date("Y-m-d", strtotime($permit_entry_date));
|
||||
$permit_permit_date = date("Y-m-d", strtotime($permit_permit_date));
|
||||
$permit_value = str_replace(",", "", $permit_value);
|
||||
|
||||
// Verify the Permits
|
||||
$permit = $this->getPermits($permit_serial);
|
||||
|
||||
if ($permit->count() == 0) {
|
||||
$this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$SQL = "UPDATE permits
|
||||
SET permit_permit_facts_id = :permit_permit_facts_id,
|
||||
permit_permit_number = :permit_permit_number,
|
||||
permit_entry_date = :permit_entry_date,
|
||||
permit_permit_date = :permit_permit_date,
|
||||
permit_sub_div_name = :permit_sub_div_name,
|
||||
permit_project_type = :permit_project_type,
|
||||
permit_county = :permit_county,
|
||||
permit_company = :permit_company,
|
||||
permit_phone = :permit_phone,
|
||||
permit_project_addr = :permit_project_addr,
|
||||
permit_city = :permit_city,
|
||||
permit_state = :permit_state,
|
||||
permit_zip = :permit_zip,
|
||||
permit_project_city = :permit_project_city,
|
||||
permit_project_state = :permit_project_state,
|
||||
permit_value = :permit_value,
|
||||
permit_lot = :permit_lot,
|
||||
permit_dist_ll = :permit_dist_ll,
|
||||
permit_owner_name = :permit_owner_name,
|
||||
permit_owner_phone = :permit_owner_phone,
|
||||
permit_owner_address = :permit_owner_address,
|
||||
permit_owner_city = :permit_owner_city,
|
||||
permit_owner_state = :permit_owner_state,
|
||||
permit_owner_zip = :permit_owner_zip,
|
||||
permit_size = :permit_size,
|
||||
permit_units = :permit_units,
|
||||
permit_building_type = :permit_building_type,
|
||||
permit_work_type = :permit_work_type,
|
||||
permit_ct1 = :permit_ct1,
|
||||
permit_ytd_permits = :permit_ytd_permits,
|
||||
permit_ytd_value = :permit_ytd_value,
|
||||
permit_12mth_prev_permits = :permit_12mth_prev_permits
|
||||
WHERE permit_serial = :permit_serial";
|
||||
|
||||
$statement = $this->connect()->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":permit_serial", $permit_serial);
|
||||
$statement->bindValue(":permit_permit_facts_id", $permit_permit_facts_id);
|
||||
$statement->bindValue(":permit_permit_number", $permit_permit_number);
|
||||
$statement->bindValue(":permit_entry_date", $permit_entry_date);
|
||||
$statement->bindValue(":permit_permit_date", $permit_permit_date);
|
||||
$statement->bindValue(":permit_sub_div_name", $permit_sub_div_name);
|
||||
$statement->bindValue(":permit_project_type", $permit_project_type);
|
||||
$statement->bindValue(":permit_county", $permit_county);
|
||||
$statement->bindValue(":permit_company", $permit_company);
|
||||
$statement->bindValue(":permit_phone", $permit_phone);
|
||||
$statement->bindValue(":permit_project_addr", $permit_project_addr);
|
||||
$statement->bindValue(":permit_city", $permit_city);
|
||||
$statement->bindValue(":permit_state", $permit_state);
|
||||
$statement->bindValue(":permit_zip", $permit_zip);
|
||||
$statement->bindValue(":permit_project_city", $permit_project_city);
|
||||
$statement->bindValue(":permit_project_state", $permit_project_state);
|
||||
$statement->bindValue(":permit_value", $permit_value);
|
||||
$statement->bindValue(":permit_lot", $permit_lot);
|
||||
$statement->bindValue(":permit_dist_ll", $permit_dist_ll);
|
||||
$statement->bindValue(":permit_owner_name", $permit_owner_name);
|
||||
$statement->bindValue(":permit_owner_phone", $permit_owner_phone);
|
||||
$statement->bindValue(":permit_owner_address", $permit_owner_address);
|
||||
$statement->bindValue(":permit_owner_city", $permit_owner_city);
|
||||
$statement->bindValue(":permit_owner_state", $permit_owner_state);
|
||||
$statement->bindValue(":permit_owner_zip", $permit_owner_zip);
|
||||
$statement->bindValue(":permit_size", $permit_size);
|
||||
$statement->bindValue(":permit_units", $permit_units);
|
||||
$statement->bindValue(":permit_building_type", $permit_building_type);
|
||||
$statement->bindValue(":permit_work_type", $permit_work_type);
|
||||
$statement->bindValue(":permit_ct1", $permit_ct1);
|
||||
$statement->bindValue(":permit_ytd_permits", $permit_ytd_permits);
|
||||
$statement->bindValue(":permit_ytd_value", $permit_ytd_value);
|
||||
$statement->bindValue(":permit_12mth_prev_permits", $permit_12mth_prev_permits);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
$this->displayHome();
|
||||
}
|
||||
}
|
||||
|
||||
// ================================
|
||||
// Return an Active Permits Object
|
||||
// ================================
|
||||
|
||||
public function getActivePermits() {
|
||||
|
||||
$SQL = "select view_permits.*
|
||||
from view_permits
|
||||
where permit_status is true";
|
||||
|
||||
return $this->getTable("permits", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return an Permits Object
|
||||
// ========================
|
||||
|
||||
public function getPermit($permit_serial = 0) {
|
||||
|
||||
$SQL = "select view_permits.*
|
||||
from view_permits
|
||||
where permit_serial = {$permit_serial}";
|
||||
|
||||
return $this->getTable("permits", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return a Permits Object
|
||||
// ========================
|
||||
|
||||
public function getPermits() {
|
||||
|
||||
$SQL = "select view_permits.*
|
||||
from view_permits";
|
||||
|
||||
return $this->getTable("permits", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return a Permits Page Object
|
||||
// ========================
|
||||
|
||||
public function getPermitsPage() {
|
||||
|
||||
// Find Criteria
|
||||
|
||||
$find_permit = filter_input(INPUT_POST, "find_permit") ?: "";
|
||||
$find_permit = $this->sanitizeString($find_permit);
|
||||
|
||||
$this->pagination_size = filter_input(INPUT_POST, "permits_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size;
|
||||
|
||||
$permits_order_by = filter_input(INPUT_POST, "permits_order_by") ?: "";
|
||||
$permits_order_direction = filter_input(INPUT_POST, "permits_order_direction") ?: "";
|
||||
|
||||
if ($permits_order_by === "") {
|
||||
$orderby = "permit_permit_number desc";
|
||||
} else {
|
||||
$orderby = $permits_order_by . " " . $permits_order_direction;
|
||||
}
|
||||
|
||||
// Record Count
|
||||
|
||||
$connection = $this->connect();
|
||||
|
||||
$SQL = "select count(*) as count
|
||||
from view_permits
|
||||
where permit_permit_number regexp :permit_permit_number
|
||||
or permit_entry_date_verbose regexp :permit_entry_date_verbose
|
||||
or permit_permit_date_verbose regexp :permit_permit_date_verbose
|
||||
or permit_sub_div_name regexp :permit_sub_div_name
|
||||
or permit_project_type regexp :permit_project_type";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":permit_permit_number", $find_permit);
|
||||
$statement->bindValue(":permit_entry_date_verbose", $find_permit);
|
||||
$statement->bindValue(":permit_permit_date_verbose", $find_permit);
|
||||
$statement->bindValue(":permit_sub_div_name", $find_permit);
|
||||
$statement->bindValue(":permit_project_type", $find_permit);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$recordset = $statement->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
$count = (count($recordset) > 0) ? (integer) $recordset["count"] : (integer) 0;
|
||||
|
||||
// Pagination
|
||||
|
||||
$pagination = filter_input(INPUT_POST, "pagination") ?: "";
|
||||
|
||||
switch ($pagination) {
|
||||
|
||||
case "first" : $this->pagination_page = 1;
|
||||
break;
|
||||
case "previous" : $this->pagination_page = max(($this->pagination_page - 1), 1);
|
||||
break;
|
||||
case "next" : $this->pagination_page = ($this->pagination_page + 1);
|
||||
break;
|
||||
case "last" : $this->pagination_page = ($count / $this->pagination_size);
|
||||
break;
|
||||
}
|
||||
|
||||
$offset = (($this->pagination_page * $this->pagination_size) - $this->pagination_size);
|
||||
$start = ($offset + 1);
|
||||
$end = min($count, (($start + $this->pagination_size) - 1));
|
||||
|
||||
// Data
|
||||
|
||||
$SQL = "select view_permits.*
|
||||
from view_permits
|
||||
where permit_permit_number regexp :permit_permit_number
|
||||
or permit_entry_date_verbose regexp :permit_entry_date_verbose
|
||||
or permit_permit_date_verbose regexp :permit_permit_date_verbose
|
||||
or permit_sub_div_name regexp :permit_sub_div_name
|
||||
or permit_project_type regexp :permit_project_type
|
||||
order by {$orderby}
|
||||
limit {$this->pagination_size}
|
||||
offset {$offset}";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":permit_permit_number", $find_permit);
|
||||
$statement->bindValue(":permit_entry_date_verbose", $find_permit);
|
||||
$statement->bindValue(":permit_permit_date_verbose", $find_permit);
|
||||
$statement->bindValue(":permit_sub_div_name", $find_permit);
|
||||
$statement->bindValue(":permit_project_type", $find_permit);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$permits = $this->getTableXML("permits", $statement);
|
||||
|
||||
// Insert Pagination Attributes
|
||||
|
||||
$permits->addAttribute("count", $count);
|
||||
$permits->addAttribute("start", $start);
|
||||
$permits->addAttribute("end", $end);
|
||||
$permits->addAttribute("page", $this->pagination_page);
|
||||
|
||||
$_SESSION[self::PAGINATION_PAGE] = $this->pagination_page;
|
||||
|
||||
return $permits;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
+104
-117
@@ -57,13 +57,16 @@ class PermitsByBuilder extends Base {
|
||||
|
||||
// Populate Entry Dates with what was searched for if provided or users entry dates if no entry dates were provided
|
||||
|
||||
$searchhistory->record->searchhistory_parameters->rdi_entry_start_date = $permits->record->rdi_entry_start_date;
|
||||
$searchhistory->record->searchhistory_parameters->rdi_entry_end_date = $permits->record->rdi_entry_end_date;
|
||||
$searchhistory->record->searchhistory_parameters->permit_entry_start_date = $permits->record->permit_entry_start_date;
|
||||
$searchhistory->record->searchhistory_parameters->permit_entry_end_date = $permits->record->permit_entry_end_date;
|
||||
|
||||
$XML = $this->mergeXML($permits, "<XML/>");
|
||||
$XML = $this->mergeXML($subscription, $XML);
|
||||
$XML = $this->mergeXML($popovers, $XML);
|
||||
|
||||
// echo $XML;
|
||||
// die();
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("searchPermitsByBuilder"));
|
||||
$this->displayContent($content);
|
||||
}
|
||||
@@ -75,78 +78,77 @@ class PermitsByBuilder extends Base {
|
||||
public function getPermits($permit_area, $projecttype) {
|
||||
|
||||
// Sanitize inputs
|
||||
$rdi_company = filter_input(INPUT_POST, "rdi_company") ?: "";
|
||||
$rdi_and_or = filter_input(INPUT_POST, "rdi_and_or") ?: "OR";
|
||||
$rdi_entry_start_date = filter_input(INPUT_POST, "rdi_entry_start_date") ?: "";
|
||||
$rdi_entry_end_date = filter_input(INPUT_POST, "rdi_entry_end_date") ?: "";
|
||||
$rdi_permit_start_date = filter_input(INPUT_POST, "rdi_permit_start_date") ?: "";
|
||||
$rdi_permit_end_date = filter_input(INPUT_POST, "rdi_permit_end_date") ?: "";
|
||||
$permit_company = filter_input(INPUT_POST, "permit_company") ?: "";
|
||||
$permit_and_or = filter_input(INPUT_POST, "permit_and_or") ?: "OR";
|
||||
$permit_entry_start_date = filter_input(INPUT_POST, "permit_entry_start_date") ?: "";
|
||||
$permit_entry_end_date = filter_input(INPUT_POST, "permit_entry_end_date") ?: "";
|
||||
$permit_permit_start_date = filter_input(INPUT_POST, "permit_permit_start_date") ?: "";
|
||||
$permit_permit_end_date = filter_input(INPUT_POST, "permit_permit_end_date") ?: "";
|
||||
$pagination = filter_input(INPUT_POST, "pagination") ?: "";
|
||||
|
||||
$rdi_entry_start_date = ($rdi_entry_start_date == "") ? null : date("Y-m-d", strtotime($rdi_entry_start_date));
|
||||
$rdi_entry_end_date = ($rdi_entry_end_date == "") ? null : date("Y-m-d", strtotime($rdi_entry_end_date));
|
||||
$rdi_permit_start_date = ($rdi_permit_start_date == "") ? null : date("Y-m-d", strtotime($rdi_permit_start_date));
|
||||
$rdi_permit_end_date = ($rdi_permit_end_date == "") ? null : date("Y-m-d", strtotime($rdi_permit_end_date));
|
||||
$permit_entry_start_date = ($permit_entry_start_date == "") ? null : date("Y-m-d", strtotime($permit_entry_start_date));
|
||||
$permit_entry_end_date = ($permit_entry_end_date == "") ? null : date("Y-m-d", strtotime($permit_entry_end_date));
|
||||
$permit_permit_start_date = ($permit_permit_start_date == "") ? null : date("Y-m-d", strtotime($permit_permit_start_date));
|
||||
$permit_permit_end_date = ($permit_permit_end_date == "") ? null : date("Y-m-d", strtotime($permit_permit_end_date));
|
||||
|
||||
// Validate AND/OR
|
||||
if (!in_array(strtoupper($rdi_and_or), ["AND", "OR"])) {
|
||||
$rdi_and_or = "OR";
|
||||
if (!in_array(strtoupper($permit_and_or), ["AND", "OR"])) {
|
||||
$permit_and_or = "OR";
|
||||
}
|
||||
|
||||
// Pagination settings
|
||||
$this->pagination_size = filter_input(INPUT_POST, "rdis_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size;
|
||||
$rdis_order_by = filter_input(INPUT_POST, "rdis_order_by") ?: "rdi_permit_number";
|
||||
$rdis_order_direction = strtoupper(filter_input(INPUT_POST, "rdis_order_direction") ?: "DESC");
|
||||
$this->pagination_size = filter_input(INPUT_POST, "permits_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size;
|
||||
$permits_order_by = filter_input(INPUT_POST, "permits_order_by") ?: "permit_company";
|
||||
$permits_order_direction = strtoupper(filter_input(INPUT_POST, "permits_order_direction") ?: "ASC");
|
||||
|
||||
// Ensure valid order by column
|
||||
$allowed_order_columns = ["rdi_permit_number", "rdi_entry_date", "rdi_permit_date", "rdi_company", "rdi_permit_count"];
|
||||
if (!in_array($rdis_order_by, $allowed_order_columns)) {
|
||||
$rdis_order_by = "rdi_permit_number";
|
||||
$allowed_order_columns = ["permit_permit_number", "permit_entry_date", "permit_permit_date", "permit_company", "permit_permit_count"];
|
||||
if (!in_array($permits_order_by, $allowed_order_columns)) {
|
||||
$permits_order_by = "order by view_permits.permit_company";
|
||||
}
|
||||
|
||||
// Connect to DB
|
||||
$connection = $this->connect();
|
||||
|
||||
// === count QUERY ===
|
||||
$SQL = "select count(distinct rdi_company, rdi_address, rdi_city, rdi_state, rdi_zip, rdi_phone_verbose,
|
||||
rdi_ytd_permits, rdi_ytd_value, rdi_12mth_prev_permits) as totalcount
|
||||
from view_rdis r
|
||||
join counties c on r.rdi_county = c.county_serial
|
||||
where r.rdi_project_type = :rdi_project_type";
|
||||
$SQL = "select count(distinct permit_company) as totalcount
|
||||
from view_permits r
|
||||
join counties c on r.permit_county = c.county_serial
|
||||
where r.permit_project_type = :permit_project_type";
|
||||
|
||||
if ($permit_area != "All") {
|
||||
$SQL .= " and c.county_area = :permit_area";
|
||||
}
|
||||
|
||||
if (!empty($rdi_company)) {
|
||||
$SQL .= " and r.rdi_company REGEXP :rdi_company";
|
||||
if (!empty($permit_company)) {
|
||||
$SQL .= " and r.permit_company REGEXP :permit_company";
|
||||
}
|
||||
|
||||
if (!empty($rdi_entry_start_date)) {
|
||||
$SQL .= " $rdi_and_or (r.rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)";
|
||||
if (!empty($permit_entry_start_date)) {
|
||||
$SQL .= " $permit_and_or (r.permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)";
|
||||
}
|
||||
|
||||
if (!empty($rdi_permit_start_date)) {
|
||||
$SQL .= " $rdi_and_or (r.rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)";
|
||||
if (!empty($permit_permit_start_date)) {
|
||||
$SQL .= " $permit_and_or (r.permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)";
|
||||
}
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR);
|
||||
$statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR);
|
||||
|
||||
if ($permit_area != "All") {
|
||||
$statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_company)) {
|
||||
$statement->bindValue(":rdi_company", $rdi_company, PDO::PARAM_STR);
|
||||
if (!empty($permit_company)) {
|
||||
$statement->bindValue(":permit_company", $permit_company, PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_entry_start_date)) {
|
||||
$statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date);
|
||||
$statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date);
|
||||
if (!empty($permit_entry_start_date)) {
|
||||
$statement->bindValue(":permit_entry_start_date", $permit_entry_start_date);
|
||||
$statement->bindValue(":permit_entry_end_date", $permit_entry_end_date);
|
||||
}
|
||||
if (!empty($rdi_permit_start_date)) {
|
||||
$statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date);
|
||||
$statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date);
|
||||
if (!empty($permit_permit_start_date)) {
|
||||
$statement->bindValue(":permit_permit_start_date", $permit_permit_start_date);
|
||||
$statement->bindValue(":permit_permit_end_date", $permit_permit_end_date);
|
||||
}
|
||||
|
||||
$statement->execute();
|
||||
@@ -172,60 +174,48 @@ class PermitsByBuilder extends Base {
|
||||
$end = min($count, $start + $this->pagination_size - 1);
|
||||
|
||||
// === DATA QUERY ===
|
||||
$SQL = "select r.rdi_serial, r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits,
|
||||
count(*) as rdi_permit_count, SUM(r.rdi_value) as rdi_value_verbose,
|
||||
case
|
||||
when rdi_12mth_prev_permits is null or rdi_12mth_prev_permits = 0 then ''
|
||||
|
||||
/* your 75% rule: current is < 75% of last year */
|
||||
when (r.rdi_ytd_permits / rdi_12mth_prev_permits) < 0.75 then '='
|
||||
/* ±5% band */
|
||||
when ((r.rdi_ytd_permits - rdi_12mth_prev_permits) / rdi_12mth_prev_permits) >= 0.05 then 'up'
|
||||
when ((r.rdi_ytd_permits - rdi_12mth_prev_permits) / rdi_12mth_prev_permits) <= -0.05 then 'down'
|
||||
else '='
|
||||
end as permits_trend
|
||||
|
||||
from view_rdis r
|
||||
join counties c on r.rdi_county = c.county_serial
|
||||
where r.rdi_project_type = :rdi_project_type";
|
||||
$SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose,
|
||||
view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value,
|
||||
view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose
|
||||
from view_permits
|
||||
join counties c on view_permits.permit_county = c.county_serial
|
||||
where view_permits.permit_project_type = :permit_project_type";
|
||||
|
||||
if ($permit_area != "All") {
|
||||
$SQL .= " and c.county_area = :permit_area";
|
||||
}
|
||||
if (!empty($rdi_company)) {
|
||||
$SQL .= " and r.rdi_company REGEXP :rdi_company";
|
||||
if (!empty($permit_company)) {
|
||||
$SQL .= " and view_permits.permit_company REGEXP :permit_company";
|
||||
}
|
||||
if (!empty($rdi_entry_start_date)) {
|
||||
$SQL .= " $rdi_and_or (r.rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)";
|
||||
if (!empty($permit_entry_start_date)) {
|
||||
$SQL .= " $permit_and_or (view_permits.permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)";
|
||||
}
|
||||
if (!empty($rdi_permit_start_date)) {
|
||||
$SQL .= " $rdi_and_or (r.rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)";
|
||||
if (!empty($permit_permit_start_date)) {
|
||||
$SQL .= " $permit_and_or (view_permits.permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)";
|
||||
}
|
||||
|
||||
$SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits
|
||||
order by $rdis_order_by $rdis_order_direction
|
||||
$SQL .= " group by view_permits.permit_company
|
||||
order by $permits_order_by $permits_order_direction
|
||||
limit :limit
|
||||
offset :offset";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR);
|
||||
$statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR);
|
||||
|
||||
if ($permit_area != "All") {
|
||||
$statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_company)) {
|
||||
$statement->bindValue(":rdi_company", $rdi_company, PDO::PARAM_STR);
|
||||
if (!empty($permit_company)) {
|
||||
$statement->bindValue(":permit_company", $permit_company, PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_entry_start_date)) {
|
||||
$statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date);
|
||||
$statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date);
|
||||
if (!empty($permit_entry_start_date)) {
|
||||
$statement->bindValue(":permit_entry_start_date", $permit_entry_start_date);
|
||||
$statement->bindValue(":permit_entry_end_date", $permit_entry_end_date);
|
||||
}
|
||||
if (!empty($rdi_permit_start_date)) {
|
||||
$statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date);
|
||||
$statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date);
|
||||
if (!empty($permit_permit_start_date)) {
|
||||
$statement->bindValue(":permit_permit_start_date", $permit_permit_start_date);
|
||||
$statement->bindValue(":permit_permit_end_date", $permit_permit_end_date);
|
||||
}
|
||||
|
||||
$statement->bindValue(":limit", $this->pagination_size, PDO::PARAM_INT);
|
||||
@@ -233,83 +223,80 @@ class PermitsByBuilder extends Base {
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$rdis = $this->getTableXML("rdis", $statement);
|
||||
$permits = $this->getTableXML("permits", $statement);
|
||||
|
||||
// Insert Pagination Attributes
|
||||
$rdis->addAttribute("count", $count);
|
||||
$rdis->addAttribute("start", $start);
|
||||
$rdis->addAttribute("end", $end);
|
||||
$rdis->addAttribute("page", $this->pagination_page);
|
||||
$permits->addAttribute("count", $count);
|
||||
$permits->addAttribute("start", $start);
|
||||
$permits->addAttribute("end", $end);
|
||||
$permits->addAttribute("page", $this->pagination_page);
|
||||
|
||||
$_SESSION[self::PAGINATION_PAGE] = $this->pagination_page;
|
||||
|
||||
return $rdis;
|
||||
return $permits;
|
||||
}
|
||||
|
||||
// =============================
|
||||
// Fetch All Permits for Exports
|
||||
// =============================
|
||||
|
||||
public function getAllPermitsByBuilder($permit_area, $projecttype) {
|
||||
public function getAllPermits($permit_area, $projecttype) {
|
||||
|
||||
// Connect to DB
|
||||
$connection = $this->connect();
|
||||
|
||||
// === count QUERY ===
|
||||
$SQL = "SELECT count(DISTINCT rdi_company, rdi_address, rdi_city, rdi_state, rdi_zip, rdi_phone_verbose,
|
||||
rdi_ytd_permits, rdi_ytd_value, rdi_12mth_prev_permits) AS count
|
||||
FROM view_rdis r
|
||||
JOIN counties c on r.rdi_county = c.county_serial
|
||||
WHERE r.rdi_project_type = :rdi_project_type";
|
||||
$SQL = "select count(distinct permit_company) as totalcount
|
||||
from view_permits r
|
||||
join counties c on r.permit_county = c.county_serial
|
||||
where r.permit_project_type = :permit_project_type";
|
||||
|
||||
if ($permit_area !== "All") {
|
||||
if ($permit_area != "All") {
|
||||
$SQL .= " and c.county_area = :permit_area";
|
||||
}
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR);
|
||||
$statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR);
|
||||
|
||||
if ($permit_area !== "All") {
|
||||
if ($permit_area != "All") {
|
||||
$statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
$statement->execute();
|
||||
|
||||
|
||||
$recordset = $statement->fetch(PDO::FETCH_ASSOC);
|
||||
$count = $recordset ? (int) $recordset["count"] : 0;
|
||||
$count = $recordset ? (int) $recordset["totalcount"] : 0;
|
||||
|
||||
// === DATA QUERY ===
|
||||
$SQL = "SELECT r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits,
|
||||
count(*) AS rdi_permit_count, SUM(r.rdi_value) AS rdi_value
|
||||
FROM view_rdis r
|
||||
JOIN counties c on r.rdi_county = c.county_serial
|
||||
WHERE r.rdi_project_type = :rdi_project_type";
|
||||
$SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose,
|
||||
view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value,
|
||||
view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose
|
||||
from view_permits
|
||||
join counties c on view_permits.permit_county = c.county_serial
|
||||
where view_permits.permit_project_type = :permit_project_type";
|
||||
|
||||
if ($permit_area !== "All") {
|
||||
if ($permit_area != "All") {
|
||||
$SQL .= " and c.county_area = :permit_area";
|
||||
}
|
||||
|
||||
$SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits";
|
||||
$SQL .= " group by view_permits.permit_company order by view_permits.permit_company";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR);
|
||||
$statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR);
|
||||
|
||||
if ($permit_area !== "All") {
|
||||
if ($permit_area != "All") {
|
||||
$statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR);
|
||||
}
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$rdis = $this->getTableXML("rdis", $statement);
|
||||
$permits = $this->getTableXML("permits", $statement);
|
||||
|
||||
// Insert Pagination Attributes
|
||||
$rdis->addAttribute("count", $count);
|
||||
$permits->addAttribute("count", $count);
|
||||
|
||||
return $rdis;
|
||||
return $permits;
|
||||
}
|
||||
|
||||
// ======================
|
||||
@@ -318,20 +305,20 @@ class PermitsByBuilder extends Base {
|
||||
|
||||
public function getSelectedPermits($permit_area, $projecttype, $permit_serial = 0) {
|
||||
|
||||
$SQL = "SELECT r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits,
|
||||
count(*) AS rdi_permit_count, SUM(r.rdi_value) AS rdi_value
|
||||
FROM view_rdis r
|
||||
JOIN counties c on r.rdi_county = c.county_serial
|
||||
WHERE r.rdi_project_type = '{$projecttype}' ";
|
||||
$SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose,
|
||||
view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value,
|
||||
view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose
|
||||
from view_permits
|
||||
join counties c on view_permits.permit_county = c.county_serial
|
||||
where view_permits.permit_project_type = '{$projecttype}' ";
|
||||
|
||||
if ($permit_area !== "All") {
|
||||
if ($permit_area != "All") {
|
||||
$SQL .= " and c.county_area = '$permit_area'";
|
||||
}
|
||||
|
||||
$SQL .= " and rdi_serial in ({$permit_serial}) ";
|
||||
$SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone,
|
||||
r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits";
|
||||
$SQL .= " and permit_serial in ({$permit_serial}) ";
|
||||
|
||||
$SQL .= " group by view_permits.permit_company order by view_permits.permit_company";
|
||||
|
||||
return $this->getTable("permits", $SQL);
|
||||
}
|
||||
|
||||
-549
@@ -1,549 +0,0 @@
|
||||
<?php
|
||||
|
||||
class RDI extends Base {
|
||||
|
||||
// Variables.
|
||||
|
||||
private $current_user_serial = 0;
|
||||
private $current_user_id = "";
|
||||
private $current_user_name = "";
|
||||
private $current_user_email = "";
|
||||
private $pagination_size = 20;
|
||||
private $pagination_page = 1;
|
||||
|
||||
// =================
|
||||
// Class Constructor
|
||||
// =================
|
||||
|
||||
public function __construct() {
|
||||
|
||||
set_error_handler(array($this, "displayError"));
|
||||
|
||||
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->pagination_page = $_SESSION[self::PAGINATION_PAGE] ?? 1;
|
||||
}
|
||||
|
||||
// ==========
|
||||
// Manage RDI
|
||||
// ==========
|
||||
|
||||
public function manageRDI() {
|
||||
|
||||
$rdi = $this->getRDIPage();
|
||||
$popovers = (new Popovers())->getPopovers();
|
||||
|
||||
$XML = $this->mergeXML($rdi, "<XML/>");
|
||||
$XML = $this->mergeXML($popovers, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("manageRDI"));
|
||||
|
||||
$this->displayContent($content);
|
||||
}
|
||||
|
||||
// =======
|
||||
// Add RDI
|
||||
// =======
|
||||
|
||||
public function addRDI() {
|
||||
|
||||
$step = filter_input(INPUT_POST, "step") ?: "prompt";
|
||||
|
||||
switch ($step) {
|
||||
|
||||
case "prompt":
|
||||
|
||||
$constants = $this->getConstants();
|
||||
$counties = (new Counties())->getCounties();
|
||||
|
||||
$XML = $this->mergeXML($constants, "<XML/>");
|
||||
$XML = $this->mergeXML($counties, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("addRDI"));
|
||||
|
||||
$this->displayContent($content);
|
||||
|
||||
break;
|
||||
|
||||
case "add":
|
||||
|
||||
$rdi_permit_facts_id = filter_input(INPUT_POST, "rdi_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_permit_number = filter_input(INPUT_POST, "rdi_permit_number") ?: '';
|
||||
$rdi_entry_date = filter_input(INPUT_POST, "rdi_entry_date") ?: '';
|
||||
$rdi_permit_date = filter_input(INPUT_POST, "rdi_permit_date") ?: '';
|
||||
$rdi_sub_div_name = filter_input(INPUT_POST, "rdi_sub_div_name") ?: '';
|
||||
$rdi_project_type = filter_input(INPUT_POST, "rdi_project_type") ?: '';
|
||||
$rdi_county = filter_input(INPUT_POST, "rdi_county") ?: '';
|
||||
$rdi_company = filter_input(INPUT_POST, "rdi_company") ?: '';
|
||||
$rdi_phone = filter_input(INPUT_POST, "rdi_phone") ?: '';
|
||||
$rdi_project_addr = filter_input(INPUT_POST, "rdi_project_addr") ?: '';
|
||||
$rdi_city = filter_input(INPUT_POST, "rdi_city") ?: '';
|
||||
$rdi_state = filter_input(INPUT_POST, "rdi_state") ?: '';
|
||||
$rdi_zip = filter_input(INPUT_POST, "rdi_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_project_city = filter_input(INPUT_POST, "rdi_project_city") ?: '';
|
||||
$rdi_project_state = filter_input(INPUT_POST, "rdi_project_state") ?: '';
|
||||
$rdi_value = filter_input(INPUT_POST, "rdi_value", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_lot = filter_input(INPUT_POST, "rdi_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_dist_ll = filter_input(INPUT_POST, "rdi_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_owner_name = filter_input(INPUT_POST, "rdi_owner_name") ?: '';
|
||||
$rdi_owner_phone = filter_input(INPUT_POST, "rdi_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$rdi_owner_address = filter_input(INPUT_POST, "rdi_owner_address") ?: '';
|
||||
$rdi_owner_city = filter_input(INPUT_POST, "rdi_owner_city") ?: '';
|
||||
$rdi_owner_state = filter_input(INPUT_POST, "rdi_owner_state") ?: '';
|
||||
$rdi_owner_zip = filter_input(INPUT_POST, "rdi_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$rdi_size = filter_input(INPUT_POST, "rdi_size", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_units = filter_input(INPUT_POST, "rdi_units", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_building_type = filter_input(INPUT_POST, "rdi_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_work_type = filter_input(INPUT_POST, "rdi_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ct1 = filter_input(INPUT_POST, "rdi_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ytd_permits = filter_input(INPUT_POST, "rdi_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ytd_value = filter_input(INPUT_POST, "rdi_ytd_value") ?: 0;
|
||||
$rdi_12mth_prev_permits = filter_input(INPUT_POST, "rdi_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$rdi_entry_date = date("Y-m-d", strtotime($rdi_entry_date));
|
||||
$rdi_permit_date = date("Y-m-d", strtotime($rdi_permit_date));
|
||||
$rdi_value = str_replace(",", "", $rdi_value);
|
||||
|
||||
$SQL = "INSERT INTO rdis (
|
||||
rdi_permit_facts_id,
|
||||
rdi_permit_number,
|
||||
rdi_entry_date,
|
||||
rdi_permit_date,
|
||||
rdi_sub_div_name,
|
||||
rdi_project_type,
|
||||
rdi_county,
|
||||
rdi_company,
|
||||
rdi_phone,
|
||||
rdi_project_addr,
|
||||
rdi_city,
|
||||
rdi_state,
|
||||
rdi_zip,
|
||||
rdi_project_city,
|
||||
rdi_project_state,
|
||||
rdi_value,
|
||||
rdi_lot,
|
||||
rdi_dist_ll,
|
||||
rdi_owner_name,
|
||||
rdi_owner_phone,
|
||||
rdi_owner_address,
|
||||
rdi_owner_city,
|
||||
rdi_owner_state,
|
||||
rdi_owner_zip,
|
||||
rdi_size,
|
||||
rdi_units,
|
||||
rdi_building_type,
|
||||
rdi_work_type,
|
||||
rdi_ct1,
|
||||
rdi_ytd_permits,
|
||||
rdi_ytd_value,
|
||||
rdi_12mth_prev_permits
|
||||
) VALUES (
|
||||
:rdi_permit_facts_id,
|
||||
:rdi_permit_number,
|
||||
:rdi_entry_date,
|
||||
:rdi_permit_date,
|
||||
:rdi_sub_div_name,
|
||||
:rdi_project_type,
|
||||
:rdi_county,
|
||||
:rdi_company,
|
||||
:rdi_phone,
|
||||
:rdi_project_addr,
|
||||
:rdi_city,
|
||||
:rdi_state,
|
||||
:rdi_zip,
|
||||
:rdi_project_city,
|
||||
:rdi_project_state,
|
||||
:rdi_value,
|
||||
:rdi_lot,
|
||||
:rdi_dist_ll,
|
||||
:rdi_owner_name,
|
||||
:rdi_owner_phone,
|
||||
:rdi_owner_address,
|
||||
:rdi_owner_city,
|
||||
:rdi_owner_state,
|
||||
:rdi_owner_zip,
|
||||
:rdi_size,
|
||||
:rdi_units,
|
||||
:rdi_building_type,
|
||||
:rdi_work_type,
|
||||
:rdi_ct1,
|
||||
:rdi_ytd_permits,
|
||||
:rdi_ytd_value,
|
||||
:rdi_12mth_prev_permits
|
||||
)";
|
||||
|
||||
$statement = $this->connect()->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_permit_facts_id", $rdi_permit_facts_id);
|
||||
$statement->bindValue(":rdi_permit_number", $rdi_permit_number);
|
||||
$statement->bindValue(":rdi_entry_date", $rdi_entry_date);
|
||||
$statement->bindValue(":rdi_permit_date", $rdi_permit_date);
|
||||
$statement->bindValue(":rdi_sub_div_name", $rdi_sub_div_name);
|
||||
$statement->bindValue(":rdi_project_type", $rdi_project_type);
|
||||
$statement->bindValue(":rdi_county", $rdi_county);
|
||||
$statement->bindValue(":rdi_company", $rdi_company);
|
||||
$statement->bindValue(":rdi_phone", $rdi_phone);
|
||||
$statement->bindValue(":rdi_project_addr", $rdi_project_addr);
|
||||
$statement->bindValue(":rdi_city", $rdi_city);
|
||||
$statement->bindValue(":rdi_state", $rdi_state);
|
||||
$statement->bindValue(":rdi_zip", $rdi_zip);
|
||||
$statement->bindValue(":rdi_project_city", $rdi_project_city);
|
||||
$statement->bindValue(":rdi_project_state", $rdi_project_state);
|
||||
$statement->bindValue(":rdi_value", $rdi_value);
|
||||
$statement->bindValue(":rdi_lot", $rdi_lot);
|
||||
$statement->bindValue(":rdi_dist_ll", $rdi_dist_ll);
|
||||
$statement->bindValue(":rdi_owner_name", $rdi_owner_name);
|
||||
$statement->bindValue(":rdi_owner_phone", $rdi_owner_phone);
|
||||
$statement->bindValue(":rdi_owner_address", $rdi_owner_address);
|
||||
$statement->bindValue(":rdi_owner_city", $rdi_owner_city);
|
||||
$statement->bindValue(":rdi_owner_state", $rdi_owner_state);
|
||||
$statement->bindValue(":rdi_owner_zip", $rdi_owner_zip);
|
||||
$statement->bindValue(":rdi_size", $rdi_size);
|
||||
$statement->bindValue(":rdi_units", $rdi_units);
|
||||
$statement->bindValue(":rdi_building_type", $rdi_building_type);
|
||||
$statement->bindValue(":rdi_work_type", $rdi_work_type);
|
||||
$statement->bindValue(":rdi_ct1", $rdi_ct1);
|
||||
$statement->bindValue(":rdi_ytd_permits", $rdi_ytd_permits);
|
||||
$statement->bindValue(":rdi_ytd_value", $rdi_ytd_value);
|
||||
$statement->bindValue(":rdi_12mth_prev_permits", $rdi_12mth_prev_permits);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
$this->displayHome();
|
||||
}
|
||||
}
|
||||
|
||||
// ==========
|
||||
// Delete RDI
|
||||
// ==========
|
||||
|
||||
public function deleteRDI() {
|
||||
|
||||
$rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$rdi = $this->getRDI($rdi_serial);
|
||||
|
||||
if ($rdi->count() == 0) {
|
||||
$this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$SQL = "delete from rdis
|
||||
where rdi_serial = {$rdi_serial}";
|
||||
|
||||
$this->executeSQL($SQL);
|
||||
}
|
||||
|
||||
// ==========
|
||||
// Edit a RDI
|
||||
// ==========
|
||||
|
||||
public function editRDI() {
|
||||
|
||||
$step = filter_input(INPUT_POST, "step") ?: "prompt";
|
||||
|
||||
switch ($step) {
|
||||
|
||||
case "prompt":
|
||||
|
||||
$rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$rdi = $this->getRDI($rdi_serial);
|
||||
|
||||
if ($rdi->count() == 0) {
|
||||
$this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$constants = $this->getConstants();
|
||||
$counties = (new Counties())->getCounties();
|
||||
|
||||
$XML = $this->mergeXML($rdi, "<XML/>");
|
||||
$XML = $this->mergeXML($constants, $XML);
|
||||
$XML = $this->mergeXML($counties, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("editRDI"));
|
||||
$this->displayContent($content);
|
||||
|
||||
break;
|
||||
|
||||
case "update":
|
||||
|
||||
$rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_permit_facts_id = filter_input(INPUT_POST, "rdi_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_permit_number = filter_input(INPUT_POST, "rdi_permit_number") ?: '';
|
||||
$rdi_entry_date = filter_input(INPUT_POST, "rdi_entry_date") ?: '';
|
||||
$rdi_permit_date = filter_input(INPUT_POST, "rdi_permit_date") ?: '';
|
||||
$rdi_sub_div_name = filter_input(INPUT_POST, "rdi_sub_div_name") ?: '';
|
||||
$rdi_project_type = filter_input(INPUT_POST, "rdi_project_type") ?: '';
|
||||
$rdi_county = filter_input(INPUT_POST, "rdi_county") ?: '';
|
||||
$rdi_company = filter_input(INPUT_POST, "rdi_company") ?: '';
|
||||
$rdi_phone = filter_input(INPUT_POST, "rdi_phone") ?: '';
|
||||
$rdi_project_addr = filter_input(INPUT_POST, "rdi_project_addr") ?: '';
|
||||
$rdi_city = filter_input(INPUT_POST, "rdi_city") ?: '';
|
||||
$rdi_state = filter_input(INPUT_POST, "rdi_state") ?: '';
|
||||
$rdi_zip = filter_input(INPUT_POST, "rdi_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_project_city = filter_input(INPUT_POST, "rdi_project_city") ?: '';
|
||||
$rdi_project_state = filter_input(INPUT_POST, "rdi_project_state") ?: '';
|
||||
$rdi_value = filter_input(INPUT_POST, "rdi_value", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_lot = filter_input(INPUT_POST, "rdi_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_dist_ll = filter_input(INPUT_POST, "rdi_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_owner_name = filter_input(INPUT_POST, "rdi_owner_name") ?: '';
|
||||
$rdi_owner_phone = filter_input(INPUT_POST, "rdi_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$rdi_owner_address = filter_input(INPUT_POST, "rdi_owner_address") ?: '';
|
||||
$rdi_owner_city = filter_input(INPUT_POST, "rdi_owner_city") ?: '';
|
||||
$rdi_owner_state = filter_input(INPUT_POST, "rdi_owner_state") ?: '';
|
||||
$rdi_owner_zip = filter_input(INPUT_POST, "rdi_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: '';
|
||||
$rdi_size = filter_input(INPUT_POST, "rdi_size", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_units = filter_input(INPUT_POST, "rdi_units", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_building_type = filter_input(INPUT_POST, "rdi_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_work_type = filter_input(INPUT_POST, "rdi_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ct1 = filter_input(INPUT_POST, "rdi_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ytd_permits = filter_input(INPUT_POST, "rdi_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
$rdi_ytd_value = filter_input(INPUT_POST, "rdi_ytd_value") ?: 0;
|
||||
$rdi_12mth_prev_permits = filter_input(INPUT_POST, "rdi_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0;
|
||||
|
||||
$rdi_entry_date = date("Y-m-d", strtotime($rdi_entry_date));
|
||||
$rdi_permit_date = date("Y-m-d", strtotime($rdi_permit_date));
|
||||
$rdi_value = str_replace(",", "", $rdi_value);
|
||||
|
||||
// Verify the RDI
|
||||
$rdi = $this->getRDI($rdi_serial);
|
||||
|
||||
if ($rdi->count() == 0) {
|
||||
$this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__);
|
||||
}
|
||||
|
||||
$SQL = "UPDATE rdis
|
||||
SET rdi_permit_facts_id = :rdi_permit_facts_id,
|
||||
rdi_permit_number = :rdi_permit_number,
|
||||
rdi_entry_date = :rdi_entry_date,
|
||||
rdi_permit_date = :rdi_permit_date,
|
||||
rdi_sub_div_name = :rdi_sub_div_name,
|
||||
rdi_project_type = :rdi_project_type,
|
||||
rdi_county = :rdi_county,
|
||||
rdi_company = :rdi_company,
|
||||
rdi_phone = :rdi_phone,
|
||||
rdi_project_addr = :rdi_project_addr,
|
||||
rdi_city = :rdi_city,
|
||||
rdi_state = :rdi_state,
|
||||
rdi_zip = :rdi_zip,
|
||||
rdi_project_city = :rdi_project_city,
|
||||
rdi_project_state = :rdi_project_state,
|
||||
rdi_value = :rdi_value,
|
||||
rdi_lot = :rdi_lot,
|
||||
rdi_dist_ll = :rdi_dist_ll,
|
||||
rdi_owner_name = :rdi_owner_name,
|
||||
rdi_owner_phone = :rdi_owner_phone,
|
||||
rdi_owner_address = :rdi_owner_address,
|
||||
rdi_owner_city = :rdi_owner_city,
|
||||
rdi_owner_state = :rdi_owner_state,
|
||||
rdi_owner_zip = :rdi_owner_zip,
|
||||
rdi_size = :rdi_size,
|
||||
rdi_units = :rdi_units,
|
||||
rdi_building_type = :rdi_building_type,
|
||||
rdi_work_type = :rdi_work_type,
|
||||
rdi_ct1 = :rdi_ct1,
|
||||
rdi_ytd_permits = :rdi_ytd_permits,
|
||||
rdi_ytd_value = :rdi_ytd_value,
|
||||
rdi_12mth_prev_permits = :rdi_12mth_prev_permits
|
||||
WHERE rdi_serial = :rdi_serial";
|
||||
|
||||
$statement = $this->connect()->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_serial", $rdi_serial);
|
||||
$statement->bindValue(":rdi_permit_facts_id", $rdi_permit_facts_id);
|
||||
$statement->bindValue(":rdi_permit_number", $rdi_permit_number);
|
||||
$statement->bindValue(":rdi_entry_date", $rdi_entry_date);
|
||||
$statement->bindValue(":rdi_permit_date", $rdi_permit_date);
|
||||
$statement->bindValue(":rdi_sub_div_name", $rdi_sub_div_name);
|
||||
$statement->bindValue(":rdi_project_type", $rdi_project_type);
|
||||
$statement->bindValue(":rdi_county", $rdi_county);
|
||||
$statement->bindValue(":rdi_company", $rdi_company);
|
||||
$statement->bindValue(":rdi_phone", $rdi_phone);
|
||||
$statement->bindValue(":rdi_project_addr", $rdi_project_addr);
|
||||
$statement->bindValue(":rdi_city", $rdi_city);
|
||||
$statement->bindValue(":rdi_state", $rdi_state);
|
||||
$statement->bindValue(":rdi_zip", $rdi_zip);
|
||||
$statement->bindValue(":rdi_project_city", $rdi_project_city);
|
||||
$statement->bindValue(":rdi_project_state", $rdi_project_state);
|
||||
$statement->bindValue(":rdi_value", $rdi_value);
|
||||
$statement->bindValue(":rdi_lot", $rdi_lot);
|
||||
$statement->bindValue(":rdi_dist_ll", $rdi_dist_ll);
|
||||
$statement->bindValue(":rdi_owner_name", $rdi_owner_name);
|
||||
$statement->bindValue(":rdi_owner_phone", $rdi_owner_phone);
|
||||
$statement->bindValue(":rdi_owner_address", $rdi_owner_address);
|
||||
$statement->bindValue(":rdi_owner_city", $rdi_owner_city);
|
||||
$statement->bindValue(":rdi_owner_state", $rdi_owner_state);
|
||||
$statement->bindValue(":rdi_owner_zip", $rdi_owner_zip);
|
||||
$statement->bindValue(":rdi_size", $rdi_size);
|
||||
$statement->bindValue(":rdi_units", $rdi_units);
|
||||
$statement->bindValue(":rdi_building_type", $rdi_building_type);
|
||||
$statement->bindValue(":rdi_work_type", $rdi_work_type);
|
||||
$statement->bindValue(":rdi_ct1", $rdi_ct1);
|
||||
$statement->bindValue(":rdi_ytd_permits", $rdi_ytd_permits);
|
||||
$statement->bindValue(":rdi_ytd_value", $rdi_ytd_value);
|
||||
$statement->bindValue(":rdi_12mth_prev_permits", $rdi_12mth_prev_permits);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
$this->displayHome();
|
||||
}
|
||||
}
|
||||
|
||||
// ================================
|
||||
// Return an Active RDI Object
|
||||
// ================================
|
||||
|
||||
public function getActiveRDI() {
|
||||
|
||||
$SQL = "select view_rdis.*
|
||||
from view_rdis
|
||||
where rdi_status is true";
|
||||
|
||||
return $this->getTable("rdis", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return an RDI Object
|
||||
// ========================
|
||||
|
||||
public function getRDI($rdi_serial = 0) {
|
||||
|
||||
$SQL = "select view_rdis.*
|
||||
from view_rdis
|
||||
where rdi_serial = {$rdi_serial}";
|
||||
|
||||
return $this->getTable("rdis", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return a RDI Object
|
||||
// ========================
|
||||
|
||||
public function getRDIs() {
|
||||
|
||||
$SQL = "select view_rdis.*
|
||||
from view_rdis";
|
||||
|
||||
return $this->getTable("rdis", $SQL);
|
||||
}
|
||||
|
||||
// ========================
|
||||
// Return a RDI Page Object
|
||||
// ========================
|
||||
|
||||
public function getRDIPage() {
|
||||
|
||||
// Find Criteria
|
||||
|
||||
$find_rdi = filter_input(INPUT_POST, "find_rdi") ?: "";
|
||||
$find_rdi = $this->sanitizeString($find_rdi);
|
||||
|
||||
$this->pagination_size = filter_input(INPUT_POST, "rdis_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size;
|
||||
|
||||
$rdis_order_by = filter_input(INPUT_POST, "rdis_order_by") ?: "";
|
||||
$rdis_order_direction = filter_input(INPUT_POST, "rdis_order_direction") ?: "";
|
||||
|
||||
if ($rdis_order_by === "") {
|
||||
$orderby = "rdi_permit_number desc";
|
||||
} else {
|
||||
$orderby = $rdis_order_by . " " . $rdis_order_direction;
|
||||
}
|
||||
|
||||
// Record Count
|
||||
|
||||
$connection = $this->connect();
|
||||
|
||||
$SQL = "select count(*) as count
|
||||
from view_rdis
|
||||
where rdi_permit_number regexp :rdi_permit_number
|
||||
or rdi_entry_date_verbose regexp :rdi_entry_date_verbose
|
||||
or rdi_permit_date_verbose regexp :rdi_permit_date_verbose
|
||||
or rdi_sub_div_name regexp :rdi_sub_div_name
|
||||
or rdi_project_type regexp :rdi_project_type";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_permit_number", $find_rdi);
|
||||
$statement->bindValue(":rdi_entry_date_verbose", $find_rdi);
|
||||
$statement->bindValue(":rdi_permit_date_verbose", $find_rdi);
|
||||
$statement->bindValue(":rdi_sub_div_name", $find_rdi);
|
||||
$statement->bindValue(":rdi_project_type", $find_rdi);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$recordset = $statement->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
$count = (count($recordset) > 0) ? (integer) $recordset["count"] : (integer) 0;
|
||||
|
||||
// Pagination
|
||||
|
||||
$pagination = filter_input(INPUT_POST, "pagination") ?: "";
|
||||
|
||||
switch ($pagination) {
|
||||
|
||||
case "first" : $this->pagination_page = 1;
|
||||
break;
|
||||
case "previous" : $this->pagination_page = max(($this->pagination_page - 1), 1);
|
||||
break;
|
||||
case "next" : $this->pagination_page = ($this->pagination_page + 1);
|
||||
break;
|
||||
case "last" : $this->pagination_page = ($count / $this->pagination_size);
|
||||
break;
|
||||
}
|
||||
|
||||
$offset = (($this->pagination_page * $this->pagination_size) - $this->pagination_size);
|
||||
$start = ($offset + 1);
|
||||
$end = min($count, (($start + $this->pagination_size) - 1));
|
||||
|
||||
// Data
|
||||
|
||||
$SQL = "select view_rdis.*
|
||||
from view_rdis
|
||||
where rdi_permit_number regexp :rdi_permit_number
|
||||
or rdi_entry_date_verbose regexp :rdi_entry_date_verbose
|
||||
or rdi_permit_date_verbose regexp :rdi_permit_date_verbose
|
||||
or rdi_sub_div_name regexp :rdi_sub_div_name
|
||||
or rdi_project_type regexp :rdi_project_type
|
||||
order by {$orderby}
|
||||
limit {$this->pagination_size}
|
||||
offset {$offset}";
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_permit_number", $find_rdi);
|
||||
$statement->bindValue(":rdi_entry_date_verbose", $find_rdi);
|
||||
$statement->bindValue(":rdi_permit_date_verbose", $find_rdi);
|
||||
$statement->bindValue(":rdi_sub_div_name", $find_rdi);
|
||||
$statement->bindValue(":rdi_project_type", $find_rdi);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$rdis = $this->getTableXML("rdis", $statement);
|
||||
|
||||
// Insert Pagination Attributes
|
||||
|
||||
$rdis->addAttribute("count", $count);
|
||||
$rdis->addAttribute("start", $start);
|
||||
$rdis->addAttribute("end", $end);
|
||||
$rdis->addAttribute("page", $this->pagination_page);
|
||||
|
||||
$_SESSION[self::PAGINATION_PAGE] = $this->pagination_page;
|
||||
|
||||
return $rdis;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user