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);
|
||||
}
|
||||
|
||||
@@ -562,84 +562,6 @@ $(document).ready(function () {
|
||||
}, 2000); // optional: add a slight delay so it feels responsive
|
||||
});
|
||||
|
||||
// -------------------
|
||||
// Save Changed Inputs
|
||||
// -------------------
|
||||
|
||||
$(".autosave").on("change", function (e) {
|
||||
|
||||
switch (e.target.type) {
|
||||
|
||||
case "text" :
|
||||
$sessionStorage[e.target.name] = $(this).val();
|
||||
break;
|
||||
case "radio" :
|
||||
$sessionStorage[e.target.name] = $(this).val();
|
||||
break;
|
||||
case "checkbox" :
|
||||
$sessionStorage[e.target.name] = $(this).prop("checked");
|
||||
break;
|
||||
case "select-one" :
|
||||
$sessionStorage[e.target.name] = $(this).val();
|
||||
break;
|
||||
case "hidden" :
|
||||
$sessionStorage[e.target.name] = $(this).val();
|
||||
break;
|
||||
|
||||
default :
|
||||
$sessionStorage[e.target.name] = $(this).val();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||||
|
||||
});
|
||||
|
||||
// ----------------
|
||||
// Initalize Inputs
|
||||
// ----------------
|
||||
|
||||
$.each($sessionStorage, function (name, value) {
|
||||
|
||||
var $input = $(":input").filter("[name='" + name + "']");
|
||||
|
||||
if ($input.length > 0) {
|
||||
|
||||
switch ($input.prop("type")) {
|
||||
|
||||
case "text" :
|
||||
$input.val(value);
|
||||
break;
|
||||
case "radio" :
|
||||
$input.filter("[value=" + value + "]").prop("checked", true);
|
||||
break;
|
||||
case "checkbox" :
|
||||
$input.prop("checked", value);
|
||||
break;
|
||||
case "select-one" :
|
||||
$input.val(value);
|
||||
break;
|
||||
case "hidden" :
|
||||
$input.val(value);
|
||||
break;
|
||||
|
||||
default :
|
||||
$input.val(value);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
// ------------------
|
||||
// Save preset Inputs
|
||||
// ------------------
|
||||
|
||||
$("input[type=radio]:checked").trigger("change");
|
||||
|
||||
// -----------------
|
||||
// Per Page Dropdown
|
||||
// -----------------
|
||||
|
||||
@@ -24,7 +24,7 @@ $(document).ready(function () {
|
||||
// Initialize Dropdowns
|
||||
// --------------------
|
||||
|
||||
$("#rdis_per_page").val($sessionStorage.rdis_per_page || "20");
|
||||
$("#permits_per_page").val($sessionStorage.permits_per_page || "20");
|
||||
|
||||
// -----------
|
||||
// Input Masks
|
||||
@@ -53,8 +53,8 @@ $(document).ready(function () {
|
||||
// Date Pickers
|
||||
// ------------
|
||||
|
||||
$("#rdi_entry_start_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.rdi_entry_start_date",
|
||||
$("#permit_entry_start_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.permit_entry_start_date",
|
||||
keyboardNavigation: false,
|
||||
showOnFocus: false,
|
||||
autoclose: true,
|
||||
@@ -62,8 +62,8 @@ $(document).ready(function () {
|
||||
todayBtn: "linked",
|
||||
todayHighlight: true});
|
||||
|
||||
$("#rdi_entry_end_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.rdi_entry_end_date",
|
||||
$("#permit_entry_end_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.permit_entry_end_date",
|
||||
keyboardNavigation: false,
|
||||
showOnFocus: false,
|
||||
autoclose: true,
|
||||
@@ -71,8 +71,8 @@ $(document).ready(function () {
|
||||
todayBtn: "linked",
|
||||
todayHighlight: true});
|
||||
|
||||
$("#rdi_permit_start_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.rdi_permit_start_date",
|
||||
$("#permit_permit_start_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.permit_permit_start_date",
|
||||
keyboardNavigation: false,
|
||||
showOnFocus: false,
|
||||
autoclose: true,
|
||||
@@ -80,8 +80,8 @@ $(document).ready(function () {
|
||||
todayBtn: "linked",
|
||||
todayHighlight: true});
|
||||
|
||||
$("#rdi_permit_end_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.rdi_permit_end_date",
|
||||
$("#permit_permit_end_date").datepicker({format: "mm-dd-yyyy",
|
||||
container: "div.permit_permit_end_date",
|
||||
keyboardNavigation: false,
|
||||
showOnFocus: false,
|
||||
autoclose: true,
|
||||
@@ -97,7 +97,7 @@ $(document).ready(function () {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$("#rdi_entry_start_date").focus().datepicker("show");
|
||||
$("#permit_entry_start_date").focus().datepicker("show");
|
||||
|
||||
});
|
||||
|
||||
@@ -105,7 +105,7 @@ $(document).ready(function () {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$("#rdi_entry_end_date").focus().datepicker("show");
|
||||
$("#permit_entry_end_date").focus().datepicker("show");
|
||||
|
||||
});
|
||||
|
||||
@@ -113,7 +113,7 @@ $(document).ready(function () {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$("#rdi_permit_start_date").focus().datepicker("show");
|
||||
$("#permit_permit_start_date").focus().datepicker("show");
|
||||
|
||||
});
|
||||
|
||||
@@ -121,7 +121,7 @@ $(document).ready(function () {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$("#rdi_permit_end_date").focus().datepicker("show");
|
||||
$("#permit_permit_end_date").focus().datepicker("show");
|
||||
|
||||
});
|
||||
|
||||
@@ -133,15 +133,15 @@ $(document).ready(function () {
|
||||
|
||||
var filter = $(this).val().toLowerCase();
|
||||
|
||||
$(".rdi-row").hide().filter(function () {
|
||||
$(".permit-row").hide().filter(function () {
|
||||
return $(this).find(".filterable").text().toLowerCase().indexOf(filter) > -1;
|
||||
}).show();
|
||||
|
||||
if ($(".rdi-row:visible").length === 0) {
|
||||
$("#rdis-table thead").hide();
|
||||
if ($(".permit-row:visible").length === 0) {
|
||||
$("#permits-table thead").hide();
|
||||
$(".filter-error").removeClass("d-none");
|
||||
} else {
|
||||
$("#rdis-table thead").show();
|
||||
$("#permits-table thead").show();
|
||||
$(".filter-error").addClass("d-none");
|
||||
}
|
||||
|
||||
@@ -170,9 +170,9 @@ $(document).ready(function () {
|
||||
// Per Page Change
|
||||
// ---------------
|
||||
|
||||
$("#rdis_per_page").on("change", function () {
|
||||
$("#permits_per_page").on("change", function () {
|
||||
|
||||
$sessionStorage.rdis_per_page = $(this).val();
|
||||
$sessionStorage.permits_per_page = $(this).val();
|
||||
$sessionStorage.action = "PermitsBySubdivision.searchPermits";
|
||||
$sessionStorage.pagination = "first";
|
||||
|
||||
@@ -214,7 +214,7 @@ $(document).ready(function () {
|
||||
|
||||
resolverSettings: {
|
||||
url: "main.php?Xaction=PermitsBySubdivision.getAutoCompleteSubdivisions",
|
||||
queryKey: "rdi_sub_div_name",
|
||||
queryKey: "permit_sub_div_name",
|
||||
requestThrottling: 0
|
||||
},
|
||||
noResultsText: "No Matching Subdivisions Found.",
|
||||
@@ -225,7 +225,7 @@ $(document).ready(function () {
|
||||
$(".city-autocomplete").autoComplete({
|
||||
resolverSettings: {
|
||||
url: "main.php?Xaction=PermitsBySubdivision.getAutoCompleteCities",
|
||||
queryKey: "rdi_project_city",
|
||||
queryKey: "permit_project_city",
|
||||
requestThrottling: 0
|
||||
},
|
||||
noResultsText: "No Matching Cities Found.",
|
||||
@@ -237,7 +237,7 @@ $(document).ready(function () {
|
||||
|
||||
resolverSettings: {
|
||||
url: "main.php?Xaction=PermitsBySubdivision.getAutoCompleteStreets",
|
||||
queryKey: "rdi_project_addr",
|
||||
queryKey: "permit_project_addr",
|
||||
requestThrottling: 0
|
||||
},
|
||||
noResultsText: "No Matching Streets Found.",
|
||||
@@ -279,16 +279,16 @@ $(document).ready(function () {
|
||||
$("#spinner-dialog").modal("show");
|
||||
|
||||
delete $sessionStorage.pagination;
|
||||
delete $sessionStorage.rdi_company;
|
||||
delete $sessionStorage.rdi_county;
|
||||
delete $sessionStorage.rdi_sub_div_name;
|
||||
delete $sessionStorage.rdi_project_city;
|
||||
delete $sessionStorage.rdi_project_addr;
|
||||
delete $sessionStorage.rdi_and_or;
|
||||
delete $sessionStorage.rdi_entry_start_date;
|
||||
delete $sessionStorage.rdi_entry_end_date;
|
||||
delete $sessionStorage.rdi_permit_start_date;
|
||||
delete $sessionStorage.rdi_permit_end_date;
|
||||
delete $sessionStorage.permit_company;
|
||||
delete $sessionStorage.permit_county;
|
||||
delete $sessionStorage.permit_sub_div_name;
|
||||
delete $sessionStorage.permit_project_city;
|
||||
delete $sessionStorage.permit_project_addr;
|
||||
delete $sessionStorage.permit_and_or;
|
||||
delete $sessionStorage.permit_entry_start_date;
|
||||
delete $sessionStorage.permit_entry_end_date;
|
||||
delete $sessionStorage.permit_permit_start_date;
|
||||
delete $sessionStorage.permit_permit_end_date;
|
||||
|
||||
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||||
|
||||
@@ -317,16 +317,16 @@ $(document).ready(function () {
|
||||
|
||||
$("#spinner-dialog").modal("show");
|
||||
|
||||
var rdi_county = $("#rdi_county"),
|
||||
rdi_and_or = $("#rdi_and_or"),
|
||||
rdi_company = $("#rdi_company"),
|
||||
rdi_sub_div_name = $("#rdi_sub_div_name"),
|
||||
rdi_project_city = $("#rdi_project_city"),
|
||||
rdi_project_addr = $("#rdi_project_addr"),
|
||||
rdi_entry_start_date = $("#rdi_entry_start_date"),
|
||||
rdi_entry_end_date = $("#rdi_entry_end_date"),
|
||||
rdi_permit_start_date = $("#rdi_permit_start_date"),
|
||||
rdi_permit_end_date = $("#rdi_permit_end_date"),
|
||||
var permit_county = $("#permit_county"),
|
||||
permit_and_or = $("#permit_and_or"),
|
||||
permit_company = $("#permit_company"),
|
||||
permit_sub_div_name = $("#permit_sub_div_name"),
|
||||
permit_project_city = $("#permit_project_city"),
|
||||
permit_project_addr = $("#permit_project_addr"),
|
||||
permit_entry_start_date = $("#permit_entry_start_date"),
|
||||
permit_entry_end_date = $("#permit_entry_end_date"),
|
||||
permit_permit_start_date = $("#permit_permit_start_date"),
|
||||
permit_permit_end_date = $("#permit_permit_end_date"),
|
||||
form_error = $("#search-form-error");
|
||||
|
||||
clearInputErrors();
|
||||
@@ -341,39 +341,39 @@ $(document).ready(function () {
|
||||
}
|
||||
|
||||
// Validate required fields
|
||||
if ([rdi_county, rdi_company, rdi_sub_div_name, rdi_project_city, rdi_project_addr, rdi_entry_start_date, rdi_entry_end_date, rdi_permit_start_date, rdi_permit_end_date].every(isBlank)) {
|
||||
if ([permit_county, permit_company, permit_sub_div_name, permit_project_city, permit_project_addr, permit_entry_start_date, permit_entry_end_date, permit_permit_start_date, permit_permit_end_date].every(isBlank)) {
|
||||
return showError("Please provide a search criteria.");
|
||||
}
|
||||
|
||||
if (isBlank(rdi_entry_start_date) && !isBlank(rdi_entry_end_date)) {
|
||||
return showError("Please provide an Entry From Date for range.", rdi_entry_start_date);
|
||||
if (isBlank(permit_entry_start_date) && !isBlank(permit_entry_end_date)) {
|
||||
return showError("Please provide an Entry From Date for range.", permit_entry_start_date);
|
||||
}
|
||||
|
||||
if (isBlank(rdi_permit_start_date) && !isBlank(rdi_permit_end_date)) {
|
||||
return showError("Please provide a Permit From Date for range.", rdi_permit_start_date);
|
||||
if (isBlank(permit_permit_start_date) && !isBlank(permit_permit_end_date)) {
|
||||
return showError("Please provide a Permit From Date for range.", permit_permit_start_date);
|
||||
}
|
||||
|
||||
// Validate date ranges
|
||||
if (rdi_entry_end_date.val() && !checkEndingDate(rdi_entry_start_date, rdi_entry_end_date)) {
|
||||
if (permit_entry_end_date.val() && !checkEndingDate(permit_entry_start_date, permit_entry_end_date)) {
|
||||
return showError("Start Date must be prior to End Date");
|
||||
}
|
||||
|
||||
if (rdi_permit_end_date.val() && !checkEndingDate(rdi_permit_start_date, rdi_permit_end_date)) {
|
||||
if (permit_permit_end_date.val() && !checkEndingDate(permit_permit_start_date, permit_permit_end_date)) {
|
||||
return showError("Start Date must be prior to End Date");
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$sessionStorage.rdi_company = rdi_company.val();
|
||||
$sessionStorage.rdi_county = rdi_county.val();
|
||||
$sessionStorage.rdi_and_or = rdi_and_or.val();
|
||||
$sessionStorage.rdi_sub_div_name = rdi_sub_div_name.val();
|
||||
$sessionStorage.rdi_project_city = rdi_project_city.val();
|
||||
$sessionStorage.rdi_project_addr = rdi_project_addr.val();
|
||||
$sessionStorage.rdi_entry_start_date = rdi_entry_start_date.val();
|
||||
$sessionStorage.rdi_entry_end_date = rdi_entry_end_date.val();
|
||||
$sessionStorage.rdi_permit_start_date = rdi_permit_start_date.val();
|
||||
$sessionStorage.rdi_permit_end_date = rdi_permit_end_date.val();
|
||||
$sessionStorage.permit_company = permit_company.val();
|
||||
$sessionStorage.permit_county = permit_county.val();
|
||||
$sessionStorage.permit_and_or = permit_and_or.val();
|
||||
$sessionStorage.permit_sub_div_name = permit_sub_div_name.val();
|
||||
$sessionStorage.permit_project_city = permit_project_city.val();
|
||||
$sessionStorage.permit_project_addr = permit_project_addr.val();
|
||||
$sessionStorage.permit_entry_start_date = permit_entry_start_date.val();
|
||||
$sessionStorage.permit_entry_end_date = permit_entry_end_date.val();
|
||||
$sessionStorage.permit_permit_start_date = permit_permit_start_date.val();
|
||||
$sessionStorage.permit_permit_end_date = permit_permit_end_date.val();
|
||||
|
||||
sessionStorage.setItem($application, JSON.stringify($sessionStorage));
|
||||
|
||||
@@ -385,43 +385,43 @@ $(document).ready(function () {
|
||||
// Column Heading Sort
|
||||
// -------------------
|
||||
|
||||
if (($sessionStorage.rdis_order_by || "") !== "") {
|
||||
if (($sessionStorage.permits_order_by || "") !== "") {
|
||||
|
||||
$("th[data-order-by = '" + ($sessionStorage.rdis_order_by || "") + "']").append('<i class="' + ($sessionStorage.rdis_order_icon || "") + ' text-danger ms-1 me-0"/>');
|
||||
$("th[data-order-by = '" + ($sessionStorage.permits_order_by || "") + "']").append('<i class="' + ($sessionStorage.permits_order_icon || "") + ' text-danger ms-1 me-0"/>');
|
||||
|
||||
}
|
||||
|
||||
$("th.sortable").on("click", function (e) {
|
||||
|
||||
if ($(e.target).data("order-by") !== ($sessionStorage.rdis_order_by || "")) { // New Column
|
||||
if ($(e.target).data("order-by") !== ($sessionStorage.permits_order_by || "")) { // New Column
|
||||
|
||||
$sessionStorage.rdis_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.rdis_order_direction = "asc";
|
||||
$sessionStorage.rdis_order_icon = "bi bi-arrow-up";
|
||||
$sessionStorage.permits_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.permits_order_direction = "asc";
|
||||
$sessionStorage.permits_order_icon = "bi bi-arrow-up";
|
||||
|
||||
} else {
|
||||
|
||||
switch ($sessionStorage.rdis_order_direction) {
|
||||
switch ($sessionStorage.permits_order_direction) {
|
||||
|
||||
case "" :
|
||||
|
||||
$sessionStorage.rdis_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.rdis_order_direction = "asc";
|
||||
$sessionStorage.rdis_order_icon = "bi bi-arrow-up";
|
||||
$sessionStorage.permits_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.permits_order_direction = "asc";
|
||||
$sessionStorage.permits_order_icon = "bi bi-arrow-up";
|
||||
break;
|
||||
|
||||
case "asc" :
|
||||
|
||||
$sessionStorage.rdis_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.rdis_order_direction = "desc";
|
||||
$sessionStorage.rdis_order_icon = "bi bi-arrow-down";
|
||||
$sessionStorage.permits_order_by = $(e.target).data("order-by");
|
||||
$sessionStorage.permits_order_direction = "desc";
|
||||
$sessionStorage.permits_order_icon = "bi bi-arrow-down";
|
||||
break;
|
||||
|
||||
case "desc" :
|
||||
|
||||
$sessionStorage.rdis_order_by = "";
|
||||
$sessionStorage.rdis_order_direction = "";
|
||||
$sessionStorage.rdis_order_icon = "";
|
||||
$sessionStorage.permits_order_by = "";
|
||||
$sessionStorage.permits_order_direction = "";
|
||||
$sessionStorage.permits_order_icon = "";
|
||||
break;
|
||||
|
||||
}
|
||||
@@ -468,7 +468,7 @@ $(document).ready(function () {
|
||||
// Toggle a Select Checkbox
|
||||
// ------------------------
|
||||
|
||||
$(".rdi-row").on("click touch", function (e) {
|
||||
$(".permit-row").on("click touch", function (e) {
|
||||
|
||||
if (!($(e.target).hasClass("selection-area"))) {
|
||||
return false;
|
||||
@@ -492,16 +492,16 @@ $(document).ready(function () {
|
||||
|
||||
});
|
||||
|
||||
$("#rdis-table tbody tr").on("click touch", function (e) {
|
||||
$("#permits-table tbody tr").on("click touch", function (e) {
|
||||
|
||||
// If the click was on selection area (or the checkbox itself), do nothing
|
||||
if ($(e.target).closest(".selection-area, input[name='selected[]'], label").length) {
|
||||
return;
|
||||
}
|
||||
|
||||
const rdi_serial = $(this).data("rdi-serial");
|
||||
const permit_serial = $(this).data("permit-serial");
|
||||
|
||||
openPermitDialog(getPermitRecordDialog(rdi_serial));
|
||||
openPermitDialog(getPermitRecordDialog(permit_serial));
|
||||
|
||||
});
|
||||
|
||||
@@ -729,7 +729,7 @@ $(document).ready(function () {
|
||||
// Per Page Dropdown
|
||||
// -----------------
|
||||
|
||||
$("#rdis_per_page").on("change", function () {
|
||||
$("#permits_per_page").on("change", function () {
|
||||
|
||||
$(".btnFind").trigger("click");
|
||||
|
||||
@@ -758,7 +758,7 @@ function openPermitDialog(modalHtml) {
|
||||
// Returns Modal with Permit Record Data
|
||||
// -------------------------------------
|
||||
|
||||
function getPermitRecordDialog(rdi_serial) {
|
||||
function getPermitRecordDialog(permit_serial) {
|
||||
|
||||
var dialog = null;
|
||||
|
||||
@@ -766,7 +766,7 @@ function getPermitRecordDialog(rdi_serial) {
|
||||
url: "main.php?Xaction=PermitsBySubdivision.getPermitRecordDialog",
|
||||
type: "POST",
|
||||
async: false,
|
||||
data: {rdi_serial: rdi_serial},
|
||||
data: {permit_serial: permit_serial},
|
||||
dataType: "html",
|
||||
success: function (result) {
|
||||
dialog = result;
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||
<group>
|
||||
<file>file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/classes/PermitsByBuilder.php</file>
|
||||
<file>file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/classes/Consolidation.php</file>
|
||||
<file>file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/views/view_company_permit_trends.php</file>
|
||||
<file>file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/xsl/searchPermitsByBuilder.xsl</file>
|
||||
</group>
|
||||
</open-files>
|
||||
|
||||
@@ -1,38 +1,33 @@
|
||||
<?php
|
||||
|
||||
$SQL = "create or replace view view_company_permit_trends as
|
||||
select
|
||||
companies.permit_company,
|
||||
|
||||
select companies.permit_company,
|
||||
ifnull(prev.prev_ytd_permits, 0) as prev_ytd_permits,
|
||||
ifnull(curr.ytd_permits, 0) as ytd_permits,
|
||||
|
||||
ifnull(prev.prev_ytd_value, 0) as prev_ytd_value,
|
||||
ifnull(curr.ytd_value, 0) as ytd_value,
|
||||
|
||||
case
|
||||
when ifnull(prev.prev_ytd_permits, 0) = 0 then null
|
||||
else round(
|
||||
((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) * 100,
|
||||
2
|
||||
)
|
||||
end as permits_pct_change,
|
||||
else round( ((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) * 100, 2 )
|
||||
end
|
||||
as permits_pct_change,
|
||||
|
||||
case
|
||||
when ifnull(prev.prev_ytd_value, 0) = 0 then null
|
||||
else round(
|
||||
((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) * 100,
|
||||
2
|
||||
)
|
||||
end as value_pct_change,
|
||||
else round(((ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) * 100, 2 )
|
||||
end
|
||||
as value_pct_change,
|
||||
|
||||
case
|
||||
when ifnull(prev.prev_ytd_permits, 0) = 0 then ''
|
||||
when ( ifnull(curr.ytd_permits, 0) / prev.prev_ytd_permits) < 0.75 then 'down'
|
||||
when (( ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) >= 0.05 then 'up'
|
||||
when ((ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) <= -0.05 then 'down'
|
||||
when (( ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) <= -0.05 then '='
|
||||
else '='
|
||||
end as permits_trend,
|
||||
end
|
||||
as permits_trend,
|
||||
|
||||
case
|
||||
when ifnull(prev.prev_ytd_value, 0) = 0 then ''
|
||||
@@ -40,43 +35,34 @@ select
|
||||
when (( ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) >= 0.05 then 'up'
|
||||
when (( ifnull(curr.ytd_value, 0) - prev.prev_ytd_value) / prev.prev_ytd_value) <= -0.05 then 'down'
|
||||
else '='
|
||||
end as value_trend
|
||||
end
|
||||
as value_trend
|
||||
|
||||
from (
|
||||
|
||||
from
|
||||
(
|
||||
select distinct permit_company
|
||||
from permits
|
||||
where permit_company is not null
|
||||
and trim(permit_company) <> ''
|
||||
) companies
|
||||
and trim(permit_company) <> '' ) companies
|
||||
|
||||
left join
|
||||
(
|
||||
select
|
||||
permit_company,
|
||||
count(*) as prev_ytd_permits,
|
||||
sum(ifnull(permit_value, 0)) as prev_ytd_value
|
||||
left join (
|
||||
select permit_company, count(*) as prev_ytd_permits, sum(ifnull(permit_value, 0)) as prev_ytd_value
|
||||
from permits
|
||||
where permit_company is not null
|
||||
and trim(permit_company) <> ''
|
||||
and permit_permit_date >= makedate(year(curdate()) - 1, 1)
|
||||
and permit_permit_date <= date_sub(curdate(), interval 1 year)
|
||||
group by permit_company
|
||||
) prev
|
||||
group by permit_company ) prev
|
||||
|
||||
on companies.permit_company = prev.permit_company
|
||||
|
||||
left join
|
||||
(
|
||||
select
|
||||
permit_company,
|
||||
count(*) as ytd_permits,
|
||||
sum(ifnull(permit_value, 0)) as ytd_value
|
||||
left join (
|
||||
select permit_company, count(*) as ytd_permits, sum(ifnull(permit_value, 0)) as ytd_value
|
||||
from permits
|
||||
where permit_company is not null
|
||||
and trim(permit_company) <> ''
|
||||
and permit_permit_date >= makedate(year(curdate()), 1)
|
||||
and permit_permit_date <= curdate()
|
||||
group by permit_company
|
||||
) curr
|
||||
group by permit_company ) curr
|
||||
on companies.permit_company = curr.permit_company";
|
||||
?>
|
||||
+29
-11
@@ -12,9 +12,9 @@
|
||||
|
||||
<div class="modal-header bg-primary">
|
||||
<h5 class="modal-title text-white" id="permit-details-title">
|
||||
<xsl:value-of select="//permit/record/rdi_sub_div_name"/>
|
||||
<xsl:value-of select="//permit/record/permit_sub_div_name"/>
|
||||
<xsl:text> - </xsl:text>
|
||||
<xsl:value-of select="concat(//permit/record/rdi_project_addr, ' ', //permit/record/rdi_project_city, ' ', //permit/record/rdi_project_state)"/>
|
||||
<xsl:value-of select="concat(//permit/record/permit_project_addr, ' ', //permit/record/permit_project_city, ' ', //permit/record/permit_project_state)"/>
|
||||
</h5>
|
||||
|
||||
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
@@ -26,21 +26,39 @@
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Permit Number</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_permit_number"/>
|
||||
<xsl:value-of select="//permit/record/permit_permit_number"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Permit Date</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_permit_date_verbose"/>
|
||||
<xsl:value-of select="//permit/record/permit_permit_date_verbose"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Entry Date</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_entry_date_verbose"/>
|
||||
<xsl:value-of select="//permit/record/permit_entry_date_verbose"/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="my-3"/>
|
||||
|
||||
<div class="row g-3">
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Value</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/permit_value_verbose"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Square Footage</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/permit_size_verbose"/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -51,14 +69,14 @@
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Project Address</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="concat(//permit/record/rdi_project_addr, ' ', //permit/record/rdi_project_city, ', ', //permit/record/rdi_project_state, ' ', //permit/record/rdi_zip)"/>
|
||||
<xsl:value-of select="concat(//permit/record/permit_project_addr, ' ', //permit/record/permit_project_city, ', ', //permit/record/permit_project_state, ' ', //permit/record/permit_zip)"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Owner Address</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="concat(//permit/record/rdi_owner_address, ' ', //permit/record/rdi_owner_city, ', ', //permit/record/rdi_owner_state, ' ', //permit/record/rdi_owner_zip)"/>
|
||||
<xsl:value-of select="concat(//permit/record/permit_owner_address, ' ', //permit/record/permit_owner_city, ', ', //permit/record/permit_owner_state, ' ', //permit/record/permit_owner_zip)"/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -69,14 +87,14 @@
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Company</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_company"/>
|
||||
<xsl:value-of select="//permit/record/permit_company"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Project Name</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_sub_div_name"/>
|
||||
<xsl:value-of select="//permit/record/permit_sub_div_name"/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -87,14 +105,14 @@
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">County</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_county"/>
|
||||
<xsl:value-of select="//permit/record/permit_county"/>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Owner Name</label>
|
||||
<p class="mb-0">
|
||||
<xsl:value-of select="//permit/record/rdi_owner_name"/>
|
||||
<xsl:value-of select="//permit/record/permit_owner_name"/>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -376,14 +376,6 @@
|
||||
|
||||
<td class="ytd_permits text-nowrap filterable text-center">
|
||||
<xsl:value-of select="ytd_permits"/>
|
||||
</td>
|
||||
|
||||
<td class="permit_ytd_value filterable text-center">
|
||||
<xsl:value-of select="concat('$', format-number(ytd_value, '###,###'))"/>
|
||||
</td>
|
||||
|
||||
<td class="permit_12mth_prev_permits filterable text-center">
|
||||
<xsl:value-of select="previous_ytd_permits"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="permits_trend = 'up'">
|
||||
<i class="bi bi-arrow-up text-success"></i>
|
||||
@@ -397,6 +389,15 @@
|
||||
</xsl:choose>
|
||||
</td>
|
||||
|
||||
<td class="permit_ytd_value filterable text-center">
|
||||
<xsl:value-of select="concat('$', format-number(ytd_value, '###,###'))"/>
|
||||
</td>
|
||||
|
||||
<td class="permit_12mth_prev_permits filterable text-center">
|
||||
<xsl:value-of select="previous_ytd_permits"/>
|
||||
|
||||
</td>
|
||||
|
||||
<td class="permit_address filterable">
|
||||
<xsl:value-of select="concat(permit_address, ' ', permit_city, ', ', permit_state, ' ', permit_zip)"/>
|
||||
</td>
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
|
||||
<!-- Variables -->
|
||||
|
||||
<xsl:variable name="PAGINATION_COUNT" select="//rdis/@count"/>
|
||||
<xsl:variable name="PAGINATION_START" select="//rdis/@start"/>
|
||||
<xsl:variable name="PAGINATION_END" select="//rdis/@end"/>
|
||||
<xsl:variable name="PAGINATION_PAGE" select="//rdis/@page"/>
|
||||
<xsl:variable name="PAGINATION_COUNT" select="//permits/@count"/>
|
||||
<xsl:variable name="PAGINATION_START" select="//permits/@start"/>
|
||||
<xsl:variable name="PAGINATION_END" select="//permits/@end"/>
|
||||
<xsl:variable name="PAGINATION_PAGE" select="//permits/@page"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
|
||||
@@ -47,15 +47,15 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-4 mb-3">
|
||||
<label class="form-label" for="rdi_county">County</label>
|
||||
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="rdi_county" id="rdi_county" size="1">
|
||||
<label class="form-label" for="permit_county">County</label>
|
||||
<select class="form-control form-control-sm multiple-dropdown" multiple="multiple" name="permit_county" id="permit_county" size="1">
|
||||
<xsl:apply-templates select="//counties"/>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-1 mb-3">
|
||||
<label class="form-label" for="rdi_and_or">And/Or</label>
|
||||
<select class="form-select form-select-sm" name="rdi_and_or" id="rdi_and_or" size="1">
|
||||
<label class="form-label" for="permit_and_or">And/Or</label>
|
||||
<select class="form-select form-select-sm" name="permit_and_or" id="permit_and_or" size="1">
|
||||
<option value="and">And</option>
|
||||
<option value="or">Or</option>
|
||||
</select>
|
||||
@@ -66,59 +66,59 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-3 mb-3">
|
||||
<label class="form-label" for="rdi_company">Company/Builder</label>
|
||||
<input type="text" class="form-control form-control-sm" name="rdi_company" id="rdi_company" maxlength="120" autocomplete="off" autofocus="autofocus"/>
|
||||
<label class="form-label" for="permit_company">Company/Builder</label>
|
||||
<input type="text" class="form-control form-control-sm" name="permit_company" id="permit_company" maxlength="120" autocomplete="off" autofocus="autofocus"/>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 mb-3">
|
||||
<label class="form-label" for="rdi_sub_div_name">Subdivision</label>
|
||||
<input type="text" class="form-control form-control-sm subdivision-autocomplete" autocomplete="chrome-off" name="rdi_sub_div_name" id="rdi_sub_div_name" maxlength="100"/>
|
||||
<label class="form-label" for="permit_sub_div_name">Subdivision</label>
|
||||
<input type="text" class="form-control form-control-sm subdivision-autocomplete" autocomplete="chrome-off" name="permit_sub_div_name" id="permit_sub_div_name" maxlength="100"/>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 mb-3">
|
||||
<label class="form-label" for="rdi_project_city">City</label>
|
||||
<input type="text" class="form-control form-control-sm city-autocomplete" autocomplete="chrome-off" name="rdi_project_city" id="rdi_project_city" maxlength="100"/>
|
||||
<label class="form-label" for="permit_project_city">City</label>
|
||||
<input type="text" class="form-control form-control-sm city-autocomplete" autocomplete="chrome-off" name="permit_project_city" id="permit_project_city" maxlength="100"/>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 mb-3">
|
||||
<label class="form-label" for="rdi_project_addr">Street Name</label>
|
||||
<input type="text" class="form-control form-control-sm street-autocomplete" autocomplete="chrome-off" name="rdi_project_addr" id="rdi_project_addr" maxlength="100"/>
|
||||
<label class="form-label" for="permit_project_addr">Street Name</label>
|
||||
<input type="text" class="form-control form-control-sm street-autocomplete" autocomplete="chrome-off" name="permit_project_addr" id="permit_project_addr" maxlength="100"/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-2 mb-3">
|
||||
<label class="form-label" for="rdi_entry_start_date">Entry Start Date</label>
|
||||
<div class="input-group input-group-sm rdi_entry_start_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_start_date" id="rdi_entry_start_date" autocomplete="off" value=""/>
|
||||
<label class="form-label" for="permit_entry_start_date">Entry Start Date</label>
|
||||
<div class="input-group input-group-sm permit_entry_start_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="permit_entry_start_date" id="permit_entry_start_date" autocomplete="off" value=""/>
|
||||
<button class="btn btn-sm btn-outline-primary btnEntryStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
|
||||
<i class="bi bi-calendar3"/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 mb-3">
|
||||
<label class="form-label" for="rdi_entry_end_date">Entry End Date</label>
|
||||
<div class="input-group input-group-sm rdi_entry_end_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="rdi_entry_end_date" id="rdi_entry_end_date" autocomplete="off" value=""/>
|
||||
<label class="form-label" for="permit_entry_end_date">Entry End Date</label>
|
||||
<div class="input-group input-group-sm permit_entry_end_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="permit_entry_end_date" id="permit_entry_end_date" autocomplete="off" value=""/>
|
||||
<button class="btn btn-sm btn-outline-primary btnEntryEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
|
||||
<i class="bi bi-calendar3"/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 mb-3">
|
||||
<label class="form-label" for="rdi_permit_start_date">Permit Start Date</label>
|
||||
<div class="input-group input-group-sm rdi_permit_start_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_start_date" id="rdi_permit_start_date" autocomplete="off" value=""/>
|
||||
<label class="form-label" for="permit_permit_start_date">Permit Start Date</label>
|
||||
<div class="input-group input-group-sm permit_permit_start_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="permit_permit_start_date" id="permit_permit_start_date" autocomplete="off" value=""/>
|
||||
<button class="btn btn-sm btn-outline-primary btnPermitStartDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
|
||||
<i class="bi bi-calendar3"/>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-2 mb-3">
|
||||
<label class="form-label" for="rdi_permit_end_date">Permit End Date</label>
|
||||
<div class="input-group input-group-sm rdi_permit_end_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="rdi_permit_end_date" id="rdi_permit_end_date" autocomplete="off"/>
|
||||
<label class="form-label" for="permit_permit_end_date">Permit End Date</label>
|
||||
<div class="input-group input-group-sm permit_permit_end_date">
|
||||
<input type="text" class="form-control form-control-sm date-mask" name="permit_permit_end_date" id="permit_permit_end_date" autocomplete="off"/>
|
||||
<button class="btn btn-sm btn-outline-primary btnPermitEndDateCalendar" type="button" data-bs-toggle="tooltip" data-bs-title="Calendar" data-bs-custom-class="custom-tooltip" tabindex="-1">
|
||||
<i class="bi bi-calendar3"/>
|
||||
</button>
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
<xsl:choose>
|
||||
|
||||
<xsl:when test="count(//rdis/record) > 0">
|
||||
<xsl:when test="count(//permits/record) > 0">
|
||||
|
||||
<div class="card mt-3">
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
<div class="input-group-text">
|
||||
<i class="bi bi-list-ol"/>
|
||||
</div>
|
||||
<select class="form-select" name="rdis_per_page" id="rdis_per_page">
|
||||
<select class="form-select" name="permits_per_page" id="permits_per_page">
|
||||
<option value="20">20</option>
|
||||
<option value="40">40</option>
|
||||
<option value="60">60</option>
|
||||
@@ -199,7 +199,7 @@
|
||||
|
||||
<div class="buttons mt-1 mb-1">
|
||||
|
||||
<xsl:if test="count(//rdis/record) > 0">
|
||||
<xsl:if test="count(//permits/record) > 0">
|
||||
<button type="button" class="btn btn-sm btn-primary me-2 mb-2 btnSelectAll">
|
||||
<i class="bi bi-check2-square me-2"/>Select All</button>
|
||||
</xsl:if>
|
||||
@@ -268,7 +268,7 @@
|
||||
|
||||
<xsl:choose>
|
||||
|
||||
<xsl:when test="count(//rdis/record) = 0">
|
||||
<xsl:when test="count(//permits/record) = 0">
|
||||
|
||||
|
||||
|
||||
@@ -282,19 +282,19 @@
|
||||
|
||||
<div class="table-responsive scrollable">
|
||||
|
||||
<table class="table table-sm table-striped table-hover base-table" id="rdis-table">
|
||||
<table class="table table-sm table-striped table-hover base-table" id="permits-table">
|
||||
|
||||
<thead class="sticky-header" data-theme="{$THEME}">
|
||||
|
||||
<th class="text-center">Select</th>
|
||||
<th class="sortable text-nowrap" data-order-by="rdi_county" >County</th>
|
||||
<th class="sortable text-nowrap" data-order-by="rdi_sub_div_name">Subdivison/Project Name</th>
|
||||
<th class="sortable text-nowrap" data-order-by="rdi_project_addr">Address</th>
|
||||
<th class="text-nowrap" data-order-by="rdi_project_city">City</th>
|
||||
<th class="text-nowrap" data-order-by="rdi_state" >State</th>
|
||||
<th class="text-nowrap" data-order-by="rdi_zip" >Zip</th>
|
||||
<th class="sortable text-nowrap" data-order-by="permit_county" >County</th>
|
||||
<th class="sortable text-nowrap" data-order-by="permit_sub_div_name">Subdivison/Project Name</th>
|
||||
<th class="sortable text-nowrap" data-order-by="permit_project_addr">Address</th>
|
||||
<th class="text-nowrap" data-order-by="permit_project_city">City</th>
|
||||
<th class="text-nowrap" data-order-by="permit_state" >State</th>
|
||||
<th class="text-nowrap" data-order-by="permit_zip" >Zip</th>
|
||||
<th class="text-nowrap" >Builder</th>
|
||||
<th class="sortable text-nowrap" data-order-by="rdi_permit_date" >Permit Date</th>
|
||||
<th class="sortable text-nowrap" data-order-by="permit_permit_date" >Permit Date</th>
|
||||
<th class="text-nowrap" >Sq. Ft. </th>
|
||||
<th class="text-nowrap" >Value</th>
|
||||
|
||||
@@ -302,7 +302,7 @@
|
||||
|
||||
<tbody>
|
||||
|
||||
<xsl:apply-templates select="//rdis"/>
|
||||
<xsl:apply-templates select="//permits"/>
|
||||
|
||||
</tbody>
|
||||
|
||||
@@ -382,54 +382,54 @@
|
||||
|
||||
<!-- Template for RDI rows -->
|
||||
|
||||
<xsl:template match="rdis/record">
|
||||
<xsl:template match="permits/record">
|
||||
|
||||
<tr class="hoverable rdi-row text-nowrap" data-rdi-serial="{rdi_serial}">
|
||||
<tr class="hoverable permit-row text-nowrap" data-permit-serial="{permit_serial}">
|
||||
|
||||
<td class="checkbox text-center selection-checkboxes selection-area">
|
||||
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{rdi_serial}">
|
||||
<input type="checkbox" class="selection-checkbox selection-area" name="selected[]" value="{permit_serial}">
|
||||
</input>
|
||||
<span class="selection-area user-select-none"> </span>
|
||||
</td>
|
||||
|
||||
<td class="rdi_county filterable">
|
||||
<xsl:value-of select="rdi_county_name_verbose"/>
|
||||
<td class="permit_county filterable">
|
||||
<xsl:value-of select="permit_county_name_verbose"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_sub_div_name text-nowrap filterable">
|
||||
<xsl:value-of select="rdi_sub_div_name"/>
|
||||
<td class="permit_sub_div_name text-nowrap filterable">
|
||||
<xsl:value-of select="permit_sub_div_name"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_address text-nowrap filterable">
|
||||
<xsl:value-of select="rdi_project_addr"/>
|
||||
<td class="permit_address text-nowrap filterable">
|
||||
<xsl:value-of select="permit_project_addr"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_address text-nowrap">
|
||||
<xsl:value-of select="rdi_project_city"/>
|
||||
<td class="permit_address text-nowrap">
|
||||
<xsl:value-of select="permit_project_city"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_address text-nowrap">
|
||||
<xsl:value-of select="rdi_state"/>
|
||||
<td class="permit_address text-nowrap">
|
||||
<xsl:value-of select="permit_state"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_address text-nowrap">
|
||||
<xsl:value-of select="rdi_zip"/>
|
||||
<td class="permit_address text-nowrap">
|
||||
<xsl:value-of select="permit_zip"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_company filterable">
|
||||
<xsl:value-of select="rdi_company"/>
|
||||
<td class="permit_company filterable">
|
||||
<xsl:value-of select="permit_company"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_permit_date filterable">
|
||||
<xsl:value-of select="rdi_permit_date_verbose"/>
|
||||
<td class="permit_permit_date filterable">
|
||||
<xsl:value-of select="permit_permit_date_verbose"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_value filterable">
|
||||
<xsl:value-of select="rdi_size_verbose"/>
|
||||
<td class="permit_value filterable">
|
||||
<xsl:value-of select="permit_size_verbose"/>
|
||||
</td>
|
||||
|
||||
<td class="rdi_value filterable">
|
||||
<xsl:value-of select="rdi_value_verbose"/>
|
||||
<td class="permit_value filterable">
|
||||
<xsl:value-of select="permit_value_verbose"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -443,9 +443,9 @@
|
||||
|
||||
<option value="{county_serial}" data-tokens="{county_serial}">
|
||||
|
||||
<!-- <xsl:if test="//searchhistory/record/searchhistory_parameters/permitfact_county/id = subscriptioncounty_county">
|
||||
<xsl:if test="//searchhistory/record/searchhistory_parameters/permit_county/id = county_serial">
|
||||
<xsl:attribute name="selected">selected</xsl:attribute>
|
||||
</xsl:if>-->
|
||||
</xsl:if>
|
||||
|
||||
<xsl:value-of select="county_name"/>
|
||||
</option>
|
||||
|
||||
Reference in New Issue
Block a user