diff --git a/classes/PermitsByBuilder.php b/classes/PermitsByBuilder.php index 3703357..1458124 100644 --- a/classes/PermitsByBuilder.php +++ b/classes/PermitsByBuilder.php @@ -62,11 +62,9 @@ class PermitsByBuilder extends Base { $XML = $this->mergeXML($permits, ""); $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); } diff --git a/classes/PermitsBySubdivision.php b/classes/PermitsBySubdivision.php index 004be3c..67c4742 100644 --- a/classes/PermitsBySubdivision.php +++ b/classes/PermitsBySubdivision.php @@ -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 = $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")); diff --git a/classes/SearchHistory.php b/classes/SearchHistory.php index 4d14141..3d6f0da 100644 --- a/classes/SearchHistory.php +++ b/classes/SearchHistory.php @@ -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; diff --git a/classes/Subscriptions.php b/classes/Subscriptions.php index f5f0f4d..e4d19a0 100644 --- a/classes/Subscriptions.php +++ b/classes/Subscriptions.php @@ -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); } diff --git a/js/searchPermitsByBuilder.js b/js/searchPermitsByBuilder.js index 7098866..a15d312 100644 --- a/js/searchPermitsByBuilder.js +++ b/js/searchPermitsByBuilder.js @@ -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 // ----------------- diff --git a/js/searchPermitsBySubdivision.js b/js/searchPermitsBySubdivision.js index 274736a..008fe83 100644 --- a/js/searchPermitsBySubdivision.js +++ b/js/searchPermitsBySubdivision.js @@ -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(''); + $("th[data-order-by = '" + ($sessionStorage.permits_order_by || "") + "']").append(''); } $("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; diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 5e34d9f..9758405 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -3,8 +3,7 @@ - file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/classes/PermitsByBuilder.php - file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/classes/Consolidation.php + file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/views/view_company_permit_trends.php file:/C:/Users/JamesRichie/OneDrive%20-%20OneSource%20IT%20Solutions%20LLC/Documents/NetBeansProjects/dec-international/atlhousingreport/xsl/searchPermitsByBuilder.xsl diff --git a/views/view_company_permit_trends.php b/views/view_company_permit_trends.php index 0d25321..cc0f081 100644 --- a/views/view_company_permit_trends.php +++ b/views/view_company_permit_trends.php @@ -1,82 +1,68 @@ = 0.05 then 'up' + when (( ifnull(curr.ytd_permits, 0) - prev.prev_ytd_permits) / prev.prev_ytd_permits) <= -0.05 then '=' + else '=' + end + as permits_trend, - 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' - else '=' - end as permits_trend, + case + when ifnull(prev.prev_ytd_value, 0) = 0 then '' + when ( ifnull(curr.ytd_value, 0) / prev.prev_ytd_value) < 0.75 then '=' + 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 + + from ( + + select distinct permit_company + from permits + where permit_company is not null + and trim(permit_company) <> '' ) companies + + 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 + + on companies.permit_company = prev.permit_company - case - when ifnull(prev.prev_ytd_value, 0) = 0 then '' - when (ifnull(curr.ytd_value, 0) / prev.prev_ytd_value) < 0.75 then '=' - 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 - -from -( - select distinct permit_company - from permits - where permit_company is not null - and trim(permit_company) <> '' -) companies - -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 - on companies.permit_company = prev.permit_company - -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 - on companies.permit_company = curr.permit_company"; + 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 + on companies.permit_company = curr.permit_company"; ?> \ No newline at end of file diff --git a/xsl/permitRecordDialog.xsl b/xsl/permitRecordDialog.xsl index c069f99..21ee340 100644 --- a/xsl/permitRecordDialog.xsl +++ b/xsl/permitRecordDialog.xsl @@ -12,9 +12,9 @@ + +
+ +
+
+ +

+ +

+
+ +
+ +

+

@@ -51,14 +69,14 @@

- +

- +

@@ -69,14 +87,14 @@

- +

- +

@@ -87,14 +105,14 @@

- +

- +

diff --git a/xsl/searchPermitsByBuilder.xsl b/xsl/searchPermitsByBuilder.xsl index e996ac3..958050c 100644 --- a/xsl/searchPermitsByBuilder.xsl +++ b/xsl/searchPermitsByBuilder.xsl @@ -376,14 +376,6 @@ - - - - - - - - @@ -397,6 +389,15 @@ + + + + + + + + + diff --git a/xsl/searchPermitsBySubdivision.xsl b/xsl/searchPermitsBySubdivision.xsl index cbd24f2..aacdf2c 100644 --- a/xsl/searchPermitsBySubdivision.xsl +++ b/xsl/searchPermitsBySubdivision.xsl @@ -11,10 +11,10 @@ - - - - + + + + @@ -47,15 +47,15 @@
- -
- - @@ -66,59 +66,59 @@
- - + +
- - + +
- - + +
- - + +
- -
- + +
+
- -
- + +
+
- -
- + +
+
- -
- + +
+ @@ -148,7 +148,7 @@ - +
@@ -183,7 +183,7 @@
- @@ -199,7 +199,7 @@
- + @@ -268,7 +268,7 @@ - + @@ -282,19 +282,19 @@
- +
- - - - - - + + + + + + - + @@ -302,7 +302,7 @@ - + @@ -382,54 +382,54 @@ - + - + - - - - - - - - - - @@ -443,9 +443,9 @@
SelectCountySubdivison/Project NameAddressCityStateZipCountySubdivison/Project NameAddressCityStateZip BuilderPermit DatePermit Date Sq. Ft. Value
- +   - + + - + + - + + - + + - + + - + + - + + - + + - + + - + +