Modified all points Allan sent via email on 04-05-2026
This commit is contained in:
@@ -62,11 +62,9 @@ class PermitsByBuilder extends Base {
|
||||
|
||||
$XML = $this->mergeXML($permits, "<XML/>");
|
||||
$XML = $this->mergeXML($subscription, $XML);
|
||||
$XML = $this->mergeXML($searchhistory, $XML);
|
||||
$XML = $this->mergeXML($popovers, $XML);
|
||||
|
||||
// echo $XML;
|
||||
// die();
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("searchPermitsByBuilder"));
|
||||
$this->displayContent($content);
|
||||
}
|
||||
|
||||
+160
-148
@@ -46,14 +46,26 @@ class PermitsBySubdivision extends Base {
|
||||
$permit_area = $subscription->record->subscription_area;
|
||||
$projecttype = $subscription->record->subscription_projecttype;
|
||||
|
||||
$searchhistory = (new SearchHistory())->getUsersPreviousSearchParameters($this->current_user_serial, $subscription_serial);
|
||||
|
||||
// Update Search History Record
|
||||
if (empty($searchhistory)) {
|
||||
(new SearchHistory())->saveUserSearchParameters($_POST);
|
||||
} else {
|
||||
(new SearchHistory())->updateUserSearchParameters($_POST);
|
||||
}
|
||||
|
||||
$permits = $this->getPermits($permit_area, $projecttype);
|
||||
|
||||
$searchhistory = (new SearchHistory())->getUsersPreviousSearchParameters($this->current_user_serial, $subscription_serial);
|
||||
|
||||
$counties = (new Counties())->getCountiesByArea($permit_area);
|
||||
$popovers = (new Popovers())->getPopovers();
|
||||
|
||||
$XML = $this->mergeXML($permits, "<XML/>");
|
||||
$XML = $this->mergeXML($counties, $XML);
|
||||
$XML = $this->mergeXML($subscription, $XML);
|
||||
$XML = $this->mergeXML($searchhistory, $XML);
|
||||
$XML = $this->mergeXML($popovers, $XML);
|
||||
|
||||
$content = $this->applyXSL($XML, $this->getXSL("searchPermitsBySubdivision"));
|
||||
@@ -62,47 +74,47 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
public function getPermits($permit_area, $projecttype) {
|
||||
|
||||
$rdi_county_raw = trim(filter_input(INPUT_POST, "rdi_county") ?: "");
|
||||
$rdi_and_or = trim(filter_input(INPUT_POST, "rdi_and_or") ?: "OR");
|
||||
$rdi_company = trim(filter_input(INPUT_POST, "rdi_company") ?: "");
|
||||
$rdi_sub_div_name = trim(filter_input(INPUT_POST, "rdi_sub_div_name") ?: "");
|
||||
$rdi_project_city = trim(filter_input(INPUT_POST, "rdi_project_city") ?: "");
|
||||
$rdi_project_addr = trim(filter_input(INPUT_POST, "rdi_project_addr") ?: "");
|
||||
$permit_county_raw = trim(filter_input(INPUT_POST, "permit_county") ?: "");
|
||||
$permit_and_or = trim(filter_input(INPUT_POST, "permit_and_or") ?: "OR");
|
||||
$permit_company = trim(filter_input(INPUT_POST, "permit_company") ?: "");
|
||||
$permit_sub_div_name = trim(filter_input(INPUT_POST, "permit_sub_div_name") ?: "");
|
||||
$permit_project_city = trim(filter_input(INPUT_POST, "permit_project_city") ?: "");
|
||||
$permit_project_addr = trim(filter_input(INPUT_POST, "permit_project_addr") ?: "");
|
||||
|
||||
$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_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") ?: "";
|
||||
|
||||
// Normalize dates to Y-m-d or null
|
||||
$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"], true)) {
|
||||
$rdi_and_or = "OR";
|
||||
if (!in_array(strtoupper($permit_and_or), ["AND", "OR"], true)) {
|
||||
$permit_and_or = "OR";
|
||||
}
|
||||
|
||||
// Pagination / ordering
|
||||
$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 = 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_permit_number";
|
||||
$permits_order_direction = filter_input(INPUT_POST, "permits_order_direction" ?? "DESC");
|
||||
|
||||
$allowed_order_columns = [
|
||||
"rdi_permit_number",
|
||||
"rdi_county", "rdi_sub_div_name", "rdi_project_addr", "rdi_city",
|
||||
"rdi_state", "rdi_zip", "rdi_company", "rdi_permit_date", "rdi_size", "rdi_value"
|
||||
"permit_permit_number",
|
||||
"permit_county", "permit_sub_div_name", "permit_project_addr", "permit_city",
|
||||
"permit_state", "permit_zip", "permit_company", "permit_permit_date", "permit_size", "permit_value"
|
||||
];
|
||||
|
||||
if (!in_array($rdis_order_by, $allowed_order_columns, true)) {
|
||||
$rdis_order_by = "rdi_sub_div_name";
|
||||
if (!in_array($permits_order_by, $allowed_order_columns, true)) {
|
||||
$permits_order_by = "permit_sub_div_name";
|
||||
}
|
||||
if (!in_array(strtoupper((string) $rdis_order_direction), ["ASC", "DESC"], true)) {
|
||||
$rdis_order_direction = "DESC";
|
||||
if (!in_array(strtoupper((string) $permits_order_direction), ["ASC", "DESC"], true)) {
|
||||
$permits_order_direction = "DESC";
|
||||
}
|
||||
|
||||
// Database Connection
|
||||
@@ -113,7 +125,7 @@ class PermitsBySubdivision extends Base {
|
||||
$countyIds = array_values(array_filter(
|
||||
array_map(
|
||||
fn($v) => ctype_digit(trim($v)) ? (int) trim($v) : null,
|
||||
explode(",", $rdi_county_raw)
|
||||
explode(",", $permit_county_raw)
|
||||
),
|
||||
fn($v) => $v !== null
|
||||
));
|
||||
@@ -125,8 +137,8 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
if (!empty($countyIds)) {
|
||||
if (count($countyIds) === 1) {
|
||||
$countyClauseCount = " and rdi_county = :county_0";
|
||||
$countyClauseData = " and view_rdis.rdi_county = :county_0";
|
||||
$countyClauseCount = " and permit_county = :county_0";
|
||||
$countyClauseData = " and view_permits.permit_county = :county_0";
|
||||
$countyParams[':county_0'] = $countyIds[0];
|
||||
} else {
|
||||
$ph = [];
|
||||
@@ -136,12 +148,12 @@ class PermitsBySubdivision extends Base {
|
||||
$countyParams[$k] = $id;
|
||||
}
|
||||
$in = implode(",", $ph);
|
||||
$countyClauseCount = " and rdi_county in ($in)";
|
||||
$countyClauseData = " and view_rdis.rdi_county in ($in)";
|
||||
$countyClauseCount = " and permit_county in ($in)";
|
||||
$countyClauseData = " and view_permits.permit_county in ($in)";
|
||||
}
|
||||
} elseif ($permit_area != "All") {
|
||||
$countyClauseCount = " and rdi_county in (select county_serial from view_counties where county_area = :permit_area)";
|
||||
$countyClauseData = " and view_rdis.rdi_county in (select county_serial from view_counties where county_area = :permit_area)";
|
||||
$countyClauseCount = " and permit_county in (select county_serial from view_counties where county_area = :permit_area)";
|
||||
$countyClauseData = " and view_permits.permit_county in (select county_serial from view_counties where county_area = :permit_area)";
|
||||
$bindArea = true;
|
||||
} else {
|
||||
// No county/area filter -> omit entirely to keep the plan simple
|
||||
@@ -151,47 +163,47 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
// ===================== COUNT QUERY =====================
|
||||
$SQL = "select count(*) as count
|
||||
from view_rdis
|
||||
where rdi_project_type = :rdi_project_type
|
||||
from view_permits
|
||||
where permit_project_type = :permit_project_type
|
||||
$countyClauseCount ";
|
||||
|
||||
if (!empty($rdi_company)) {
|
||||
$SQL .= " and rdi_company like :rdi_company";
|
||||
if (!empty($permit_company)) {
|
||||
$SQL .= " and permit_company like :permit_company";
|
||||
}
|
||||
|
||||
if (!empty($rdi_sub_div_name)) {
|
||||
$SQL .= " and rdi_sub_div_name like :rdi_sub_div_name";
|
||||
if (!empty($permit_sub_div_name)) {
|
||||
$SQL .= " and permit_sub_div_name like :permit_sub_div_name";
|
||||
}
|
||||
|
||||
if (!empty($rdi_project_city)) {
|
||||
$SQL .= " and rdi_project_city like :rdi_project_city";
|
||||
if (!empty($permit_project_city)) {
|
||||
$SQL .= " and permit_project_city like :permit_project_city";
|
||||
}
|
||||
|
||||
if (!empty($rdi_project_addr)) {
|
||||
$SQL .= " and rdi_project_addr like :rdi_project_addr";
|
||||
if (!empty($permit_project_addr)) {
|
||||
$SQL .= " and permit_project_addr like :permit_project_addr";
|
||||
}
|
||||
|
||||
// group date conditions so $rdi_and_or applies between themcx
|
||||
// group date conditions so $permit_and_or applies between themcx
|
||||
|
||||
$dateConds = [];
|
||||
|
||||
if ($rdi_entry_start_date && $rdi_entry_end_date) {
|
||||
$dateConds[] = "(rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)";
|
||||
} elseif ($rdi_entry_start_date) {
|
||||
$dateConds[] = "(rdi_entry_date >= :rdi_entry_start_date)";
|
||||
if ($permit_entry_start_date && $permit_entry_end_date) {
|
||||
$dateConds[] = "(permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)";
|
||||
} elseif ($permit_entry_start_date) {
|
||||
$dateConds[] = "(permit_entry_date >= :permit_entry_start_date)";
|
||||
}
|
||||
if ($rdi_permit_start_date && $rdi_permit_end_date) {
|
||||
$dateConds[] = "(rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)";
|
||||
} elseif ($rdi_permit_start_date) {
|
||||
$dateConds[] = "(rdi_permit_date >= :rdi_permit_start_date)";
|
||||
if ($permit_permit_start_date && $permit_permit_end_date) {
|
||||
$dateConds[] = "(permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)";
|
||||
} elseif ($permit_permit_start_date) {
|
||||
$dateConds[] = "(permit_permit_date >= :permit_permit_start_date)";
|
||||
}
|
||||
if ($dateConds) {
|
||||
$SQL .= " and (" . implode(" $rdi_and_or ", $dateConds) . ")";
|
||||
$SQL .= " and (" . implode(" $permit_and_or ", $dateConds) . ")";
|
||||
}
|
||||
|
||||
$statement = $connection->prepare($SQL);
|
||||
|
||||
$statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR);
|
||||
$statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR);
|
||||
|
||||
foreach ($countyParams as $k => $v) {
|
||||
$statement->bindValue($k, $v, PDO::PARAM_INT);
|
||||
@@ -200,29 +212,29 @@ class PermitsBySubdivision extends Base {
|
||||
if ($bindArea) {
|
||||
$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_sub_div_name)) {
|
||||
$statement->bindValue(":rdi_sub_div_name", '%' . $rdi_sub_div_name . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_sub_div_name)) {
|
||||
$statement->bindValue(":permit_sub_div_name", '%' . $permit_sub_div_name . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_project_city)) {
|
||||
$statement->bindValue(":rdi_project_city", '%' . $rdi_project_city . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_project_city)) {
|
||||
$statement->bindValue(":permit_project_city", '%' . $permit_project_city . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_project_addr)) {
|
||||
$statement->bindValue(":rdi_project_addr", '%' . $rdi_project_addr . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_project_addr)) {
|
||||
$statement->bindValue(":permit_project_addr", '%' . $permit_project_addr . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if ($rdi_entry_start_date) {
|
||||
$statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date);
|
||||
if ($permit_entry_start_date) {
|
||||
$statement->bindValue(":permit_entry_start_date", $permit_entry_start_date);
|
||||
}
|
||||
if ($rdi_entry_end_date && str_contains($SQL, ":rdi_entry_end_date")) {
|
||||
$statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date);
|
||||
if ($permit_entry_end_date && str_contains($SQL, ":permit_entry_end_date")) {
|
||||
$statement->bindValue(":permit_entry_end_date", $permit_entry_end_date);
|
||||
}
|
||||
if ($rdi_permit_start_date) {
|
||||
$statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date);
|
||||
if ($permit_permit_start_date) {
|
||||
$statement->bindValue(":permit_permit_start_date", $permit_permit_start_date);
|
||||
}
|
||||
if ($rdi_permit_end_date && str_contains($SQL, ":rdi_permit_end_date")) {
|
||||
$statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date);
|
||||
if ($permit_permit_end_date && str_contains($SQL, ":permit_permit_end_date")) {
|
||||
$statement->bindValue(":permit_permit_end_date", $permit_permit_end_date);
|
||||
}
|
||||
|
||||
$statement->execute();
|
||||
@@ -249,49 +261,49 @@ class PermitsBySubdivision extends Base {
|
||||
$end = min($count, $start + $this->pagination_size - 1);
|
||||
|
||||
// ===================== DATA QUERY =====================
|
||||
$SQL = "select view_rdis.*
|
||||
from view_rdis
|
||||
where view_rdis.rdi_project_type = :rdi_project_type
|
||||
$SQL = "select view_permits.*
|
||||
from view_permits
|
||||
where view_permits.permit_project_type = :permit_project_type
|
||||
$countyClauseData";
|
||||
|
||||
if (!empty($rdi_company)) {
|
||||
$SQL .= " and view_rdis.rdi_company like :rdi_company";
|
||||
if (!empty($permit_company)) {
|
||||
$SQL .= " and view_permits.permit_company like :permit_company";
|
||||
}
|
||||
|
||||
if (!empty($rdi_sub_div_name)) {
|
||||
$SQL .= " and view_rdis.rdi_sub_div_name like :rdi_sub_div_name";
|
||||
if (!empty($permit_sub_div_name)) {
|
||||
$SQL .= " and view_permits.permit_sub_div_name like :permit_sub_div_name";
|
||||
}
|
||||
|
||||
if (!empty($rdi_project_city)) {
|
||||
$SQL .= " and view_rdis.rdi_project_city like :rdi_project_city";
|
||||
if (!empty($permit_project_city)) {
|
||||
$SQL .= " and view_permits.permit_project_city like :permit_project_city";
|
||||
}
|
||||
|
||||
if (!empty($rdi_project_addr)) {
|
||||
$SQL .= " and view_rdis.rdi_project_addr like :rdi_project_addr";
|
||||
if (!empty($permit_project_addr)) {
|
||||
$SQL .= " and view_permits.permit_project_addr like :permit_project_addr";
|
||||
}
|
||||
|
||||
$dateConds = [];
|
||||
if ($rdi_entry_start_date && $rdi_entry_end_date) {
|
||||
$dateConds[] = "(view_rdis.rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)";
|
||||
} elseif ($rdi_entry_start_date) {
|
||||
$dateConds[] = "(view_rdis.rdi_entry_date >= :rdi_entry_start_date)";
|
||||
if ($permit_entry_start_date && $permit_entry_end_date) {
|
||||
$dateConds[] = "(view_permits.permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)";
|
||||
} elseif ($permit_entry_start_date) {
|
||||
$dateConds[] = "(view_permits.permit_entry_date >= :permit_entry_start_date)";
|
||||
}
|
||||
if ($rdi_permit_start_date && $rdi_permit_end_date) {
|
||||
$dateConds[] = "(view_rdis.rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)";
|
||||
} elseif ($rdi_permit_start_date) {
|
||||
$dateConds[] = "(view_rdis.rdi_permit_date >= :rdi_permit_start_date)";
|
||||
if ($permit_permit_start_date && $permit_permit_end_date) {
|
||||
$dateConds[] = "(view_permits.permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)";
|
||||
} elseif ($permit_permit_start_date) {
|
||||
$dateConds[] = "(view_permits.permit_permit_date >= :permit_permit_start_date)";
|
||||
}
|
||||
if ($dateConds) {
|
||||
$SQL .= " and (" . implode(" $rdi_and_or ", $dateConds) . ")";
|
||||
$SQL .= " and (" . implode(" $permit_and_or ", $dateConds) . ")";
|
||||
}
|
||||
|
||||
$SQL .= " order by $rdis_order_by $rdis_order_direction
|
||||
$SQL .= " 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);
|
||||
|
||||
foreach ($countyParams as $k => $v) {
|
||||
$statement->bindValue($k, $v, PDO::PARAM_INT);
|
||||
@@ -300,52 +312,52 @@ class PermitsBySubdivision extends Base {
|
||||
if ($bindArea) {
|
||||
$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_sub_div_name)) {
|
||||
$statement->bindValue(":rdi_sub_div_name", '%' . $rdi_sub_div_name . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_sub_div_name)) {
|
||||
$statement->bindValue(":permit_sub_div_name", '%' . $permit_sub_div_name . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_project_city)) {
|
||||
$statement->bindValue(":rdi_project_city", '%' . $rdi_project_city . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_project_city)) {
|
||||
$statement->bindValue(":permit_project_city", '%' . $permit_project_city . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if (!empty($rdi_project_addr)) {
|
||||
$statement->bindValue(":rdi_project_addr", '%' . $rdi_project_addr . '%', PDO::PARAM_STR);
|
||||
if (!empty($permit_project_addr)) {
|
||||
$statement->bindValue(":permit_project_addr", '%' . $permit_project_addr . '%', PDO::PARAM_STR);
|
||||
}
|
||||
if ($rdi_entry_start_date) {
|
||||
$statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date);
|
||||
if ($permit_entry_start_date) {
|
||||
$statement->bindValue(":permit_entry_start_date", $permit_entry_start_date);
|
||||
}
|
||||
if ($rdi_entry_end_date && str_contains($SQL, ":rdi_entry_end_date")) {
|
||||
$statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date);
|
||||
if ($permit_entry_end_date && str_contains($SQL, ":permit_entry_end_date")) {
|
||||
$statement->bindValue(":permit_entry_end_date", $permit_entry_end_date);
|
||||
}
|
||||
if ($rdi_permit_start_date) {
|
||||
$statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date);
|
||||
if ($permit_permit_start_date) {
|
||||
$statement->bindValue(":permit_permit_start_date", $permit_permit_start_date);
|
||||
}
|
||||
if ($rdi_permit_end_date && str_contains($SQL, ":rdi_permit_end_date")) {
|
||||
$statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date);
|
||||
if ($permit_permit_end_date && str_contains($SQL, ":permit_permit_end_date")) {
|
||||
$statement->bindValue(":permit_permit_end_date", $permit_permit_end_date);
|
||||
}
|
||||
$statement->bindValue(":limit", $this->pagination_size, PDO::PARAM_INT);
|
||||
$statement->bindValue(":offset", $offset, PDO::PARAM_INT);
|
||||
|
||||
$statement->execute();
|
||||
|
||||
$rdis = $this->getTableXML("rdis", $statement);
|
||||
$permits = $this->getTableXML("permits", $statement);
|
||||
|
||||
foreach ($rdis as $rdi) {
|
||||
if (!empty($rdi->rdi_county)) {
|
||||
$county = (new Counties())->getCounty($rdi->rdi_county);
|
||||
$rdi->rdi_county_name_verbose = $county->record->county_name ?? null;
|
||||
foreach ($permits as $permit) {
|
||||
if (!empty($permit->permit_county)) {
|
||||
$county = (new Counties())->getCounty($permit->permit_county);
|
||||
$permit->permit_county_name_verbose = $county->record->county_name ?? null;
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
// =============================
|
||||
@@ -358,17 +370,17 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
// Count Query
|
||||
$SQL = "select count(*) as count
|
||||
from view_rdis r
|
||||
join counties c on r.rdi_county = c.county_serial
|
||||
where r.rdi_project_type = :rdi_project_type
|
||||
and r.rdi_county in
|
||||
from view_permits r
|
||||
join counties c on r.permit_county = c.county_serial
|
||||
where r.permit_project_type = :permit_project_type
|
||||
and r.permit_county in
|
||||
(select county_serial
|
||||
from view_counties
|
||||
where 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);
|
||||
$statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR);
|
||||
|
||||
$statement->execute();
|
||||
@@ -376,28 +388,28 @@ class PermitsBySubdivision extends Base {
|
||||
$count = $recordset ? (int) $recordset["count"] : 0;
|
||||
|
||||
// === DATA QUERY ===
|
||||
$SQL = "select r.*, c.county_name as rdi_county_name_verbose
|
||||
from view_rdis r
|
||||
join counties c on r.rdi_county = c.county_serial
|
||||
where r.rdi_project_type = :rdi_project_type
|
||||
and r.rdi_county in
|
||||
$SQL = "select r.*, c.county_name as permit_county_name_verbose
|
||||
from view_permits r
|
||||
join counties c on r.permit_county = c.county_serial
|
||||
where r.permit_project_type = :permit_project_type
|
||||
and r.permit_county in
|
||||
(select county_serial
|
||||
from view_counties
|
||||
where 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);
|
||||
$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;
|
||||
}
|
||||
|
||||
// ======================
|
||||
@@ -410,7 +422,7 @@ class PermitsBySubdivision extends Base {
|
||||
return;
|
||||
}
|
||||
|
||||
$SQL = "select view_rdis.* from view_rdis where rdi_serial in ({$permits})";
|
||||
$SQL = "select view_permits.* from view_permits where permit_serial in ({$permits})";
|
||||
|
||||
return $this->getTable("permits", $SQL);
|
||||
}
|
||||
@@ -423,18 +435,18 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
$results = array();
|
||||
|
||||
$subdivision = filter_input(INPUT_GET, "rdi_sub_div_name") ?: "";
|
||||
$subdivision = filter_input(INPUT_GET, "permit_sub_div_name") ?: "";
|
||||
$subdivision = trim(preg_replace("/\s+/", " ", $subdivision));
|
||||
$subdivision = preg_replace("/'+/", "'", $subdivision);
|
||||
$subdivision = preg_replace('/"+/', '"', $subdivision);
|
||||
$subdivision = str_replace("'", "''", $subdivision);
|
||||
|
||||
$SQL = "select distinct rdi_sub_div_name from view_rdis where rdi_sub_div_name like '%{$subdivision}%' order by rdi_sub_div_name limit 10 offset 0";
|
||||
$SQL = "select distinct permit_sub_div_name from view_permits where permit_sub_div_name like '%{$subdivision}%' order by permit_sub_div_name limit 10 offset 0";
|
||||
|
||||
$matches = $this->getTable("subdivisions", $SQL);
|
||||
|
||||
foreach ($matches as $match) {
|
||||
$results[] = (string) $match->rdi_sub_div_name;
|
||||
$results[] = (string) $match->permit_sub_div_name;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
@@ -450,18 +462,18 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
$results = array();
|
||||
|
||||
$city = filter_input(INPUT_GET, "rdi_project_city") ?: "";
|
||||
$city = filter_input(INPUT_GET, "permit_project_city") ?: "";
|
||||
$city = trim(preg_replace("/\s+/", " ", $city));
|
||||
$city = preg_replace("/'+/", "'", $city);
|
||||
$city = preg_replace('/"+/', '"', $city);
|
||||
$city = str_replace("'", "''", $city);
|
||||
|
||||
$SQL = "select distinct rdi_project_city from view_rdis where rdi_project_city like '%{$city}%' order by rdi_project_city limit 10 offset 0";
|
||||
$SQL = "select distinct permit_project_city from view_permits where permit_project_city like '%{$city}%' order by permit_project_city limit 10 offset 0";
|
||||
|
||||
$matches = $this->getTable("cities", $SQL);
|
||||
|
||||
foreach ($matches as $match) {
|
||||
$results[] = (string) $match->rdi_project_city;
|
||||
$results[] = (string) $match->permit_project_city;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
@@ -477,18 +489,18 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
$results = array();
|
||||
|
||||
$street = filter_input(INPUT_GET, "rdi_project_addr") ?: "";
|
||||
$street = filter_input(INPUT_GET, "permit_project_addr") ?: "";
|
||||
$street = trim(preg_replace("/\s+/", " ", $street));
|
||||
$street = preg_replace("/'+/", "'", $street);
|
||||
$street = preg_replace('/"+/', '"', $street);
|
||||
$street = str_replace("'", "''", $street);
|
||||
|
||||
$SQL = "select distinct rdi_project_addr from view_rdis where rdi_project_addr like '%{$street}%' order by rdi_project_addr limit 10 offset 0";
|
||||
$SQL = "select distinct permit_project_addr from view_permits where permit_project_addr like '%{$street}%' order by permit_project_addr limit 10 offset 0";
|
||||
|
||||
$matches = $this->getTable("cities", $SQL);
|
||||
|
||||
foreach ($matches as $match) {
|
||||
$results[] = (string) $match->rdi_project_addr;
|
||||
$results[] = (string) $match->permit_project_addr;
|
||||
}
|
||||
|
||||
header('Content-Type: application/json');
|
||||
@@ -500,9 +512,9 @@ class PermitsBySubdivision extends Base {
|
||||
// Return a Permit Object
|
||||
// ======================
|
||||
|
||||
public function getPermit($rdi_serial = 0) {
|
||||
public function getPermit($permit_serial = 0) {
|
||||
|
||||
$SQL = "select view_rdis.* from view_rdis where rdi_serial = {$rdi_serial}";
|
||||
$SQL = "select view_permits.* from view_permits where permit_serial = {$permit_serial}";
|
||||
|
||||
return $this->getTable("permit", $SQL);
|
||||
}
|
||||
@@ -513,12 +525,12 @@ class PermitsBySubdivision extends Base {
|
||||
|
||||
public function getPermitRecordDialog() {
|
||||
|
||||
$rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 9;
|
||||
$permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 9;
|
||||
|
||||
$permit_record = $this->getPermit($rdi_serial);
|
||||
$permit_record = $this->getPermit($permit_serial);
|
||||
|
||||
$rdi_county = (new Counties())->getCounty($permit_record->record->rdi_county);
|
||||
$permit_record->record->rdi_county = $rdi_county->record->county_name;
|
||||
$permit_county = (new Counties())->getCounty($permit_record->record->permit_county);
|
||||
$permit_record->record->permit_county = $permit_county->record->county_name;
|
||||
|
||||
$content = $this->applyXSL($permit_record, $this->getXSL("permitRecordDialog"));
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class SearchHistory extends Base {
|
||||
case 13:
|
||||
case 15:
|
||||
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'rdi_'), ARRAY_FILTER_USE_KEY));
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'permit_'), ARRAY_FILTER_USE_KEY));
|
||||
|
||||
break;
|
||||
|
||||
@@ -52,7 +52,7 @@ class SearchHistory extends Base {
|
||||
case 14:
|
||||
case 16:
|
||||
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'rdi_'), ARRAY_FILTER_USE_KEY));
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'permit_'), ARRAY_FILTER_USE_KEY));
|
||||
|
||||
break;
|
||||
|
||||
@@ -103,7 +103,7 @@ class SearchHistory extends Base {
|
||||
case 13:
|
||||
case 15:
|
||||
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'rdi_'), ARRAY_FILTER_USE_KEY));
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'permit_'), ARRAY_FILTER_USE_KEY));
|
||||
|
||||
break;
|
||||
|
||||
@@ -113,7 +113,7 @@ class SearchHistory extends Base {
|
||||
case 14:
|
||||
case 16:
|
||||
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'rdi_'), ARRAY_FILTER_USE_KEY));
|
||||
$searchcriteria = json_encode(array_filter($searchpayload, fn($key) => str_starts_with($key, 'permit_'), ARRAY_FILTER_USE_KEY));
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@@ -595,12 +595,18 @@ class Subscriptions extends Base {
|
||||
|
||||
public function getUsersActiveSubscriptions($user_serial) {
|
||||
|
||||
$SQL = "select view_usersubscriptions.*
|
||||
from view_usersubscriptions
|
||||
where usersubscription_user_serial = {$user_serial}
|
||||
and view_usersubscriptions.usersubscription_status = 'ACTIVE'
|
||||
and view_usersubscriptions.usersubscription_stop_date >= now()
|
||||
order by view_usersubscriptions.subscription_title, view_usersubscriptions.usersubscription_status";
|
||||
$SQL = "SELECT view_usersubscriptions.*
|
||||
FROM view_usersubscriptions
|
||||
WHERE usersubscription_user_serial = 67
|
||||
AND view_usersubscriptions.usersubscription_status = 'ACTIVE'
|
||||
AND view_usersubscriptions.usersubscription_stop_date >= NOW()
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN view_usersubscriptions.subscription_area = 'All' THEN 0
|
||||
ELSE 1
|
||||
END,
|
||||
view_usersubscriptions.subscription_title,
|
||||
view_usersubscriptions.usersubscription_status";
|
||||
|
||||
return $this->getTable("usersubscriptions", $SQL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user