diff --git a/classes/Permits.php b/classes/Permits.php new file mode 100644 index 0000000..b28c29d --- /dev/null +++ b/classes/Permits.php @@ -0,0 +1,549 @@ +current_user_serial = $_SESSION[self::USER_SERIAL] ?? 0; + $this->current_user_id = $_SESSION[self::USER_ID] ?? ""; + $this->current_user_name = $_SESSION[self::USER_NAME] ?? ""; + $this->current_user_email = $_SESSION[self::USER_EMAIL] ?? ""; + + $this->pagination_page = $_SESSION[self::PAGINATION_PAGE] ?? 1; + } + + // ============== + // Manage Permits + // ============== + + public function managePermits() { + + $permit = $this->getPermitsPage(); + $popovers = (new Popovers())->getPopovers(); + + $XML = $this->mergeXML($permit, ""); + $XML = $this->mergeXML($popovers, $XML); + + $content = $this->applyXSL($XML, $this->getXSL("managePermits")); + + $this->displayContent($content); + } + + // ========== + // Add Permit + // ========== + + public function addPermit() { + + $step = filter_input(INPUT_POST, "step") ?: "prompt"; + + switch ($step) { + + case "prompt": + + $constants = $this->getConstants(); + $counties = (new Counties())->getCounties(); + + $XML = $this->mergeXML($constants, ""); + $XML = $this->mergeXML($counties, $XML); + + $content = $this->applyXSL($XML, $this->getXSL("addPermit")); + + $this->displayContent($content); + + break; + + case "add": + + $permit_permit_facts_id = filter_input(INPUT_POST, "permit_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_permit_number = filter_input(INPUT_POST, "permit_permit_number") ?: ''; + $permit_entry_date = filter_input(INPUT_POST, "permit_entry_date") ?: ''; + $permit_permit_date = filter_input(INPUT_POST, "permit_permit_date") ?: ''; + $permit_sub_div_name = filter_input(INPUT_POST, "permit_sub_div_name") ?: ''; + $permit_project_type = filter_input(INPUT_POST, "permit_project_type") ?: ''; + $permit_county = filter_input(INPUT_POST, "permit_county") ?: ''; + $permit_company = filter_input(INPUT_POST, "permit_company") ?: ''; + $permit_phone = filter_input(INPUT_POST, "permit_phone") ?: ''; + $permit_project_addr = filter_input(INPUT_POST, "permit_project_addr") ?: ''; + $permit_city = filter_input(INPUT_POST, "permit_city") ?: ''; + $permit_state = filter_input(INPUT_POST, "permit_state") ?: ''; + $permit_zip = filter_input(INPUT_POST, "permit_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_project_city = filter_input(INPUT_POST, "permit_project_city") ?: ''; + $permit_project_state = filter_input(INPUT_POST, "permit_project_state") ?: ''; + $permit_value = filter_input(INPUT_POST, "permit_value", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_lot = filter_input(INPUT_POST, "permit_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_dist_ll = filter_input(INPUT_POST, "permit_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_owner_name = filter_input(INPUT_POST, "permit_owner_name") ?: ''; + $permit_owner_phone = filter_input(INPUT_POST, "permit_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: ''; + $permit_owner_address = filter_input(INPUT_POST, "permit_owner_address") ?: ''; + $permit_owner_city = filter_input(INPUT_POST, "permit_owner_city") ?: ''; + $permit_owner_state = filter_input(INPUT_POST, "permit_owner_state") ?: ''; + $permit_owner_zip = filter_input(INPUT_POST, "permit_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: ''; + $permit_size = filter_input(INPUT_POST, "permit_size", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_units = filter_input(INPUT_POST, "permit_units", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_building_type = filter_input(INPUT_POST, "permit_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_work_type = filter_input(INPUT_POST, "permit_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ct1 = filter_input(INPUT_POST, "permit_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ytd_permits = filter_input(INPUT_POST, "permit_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ytd_value = filter_input(INPUT_POST, "permit_ytd_value") ?: 0; + $permit_12mth_prev_permits = filter_input(INPUT_POST, "permit_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; + + $permit_entry_date = date("Y-m-d", strtotime($permit_entry_date)); + $permit_permit_date = date("Y-m-d", strtotime($permit_permit_date)); + $permit_value = str_replace(",", "", $permit_value); + + $SQL = "INSERT INTO permits ( + permit_permit_facts_id, + permit_permit_number, + permit_entry_date, + permit_permit_date, + permit_sub_div_name, + permit_project_type, + permit_county, + permit_company, + permit_phone, + permit_project_addr, + permit_city, + permit_state, + permit_zip, + permit_project_city, + permit_project_state, + permit_value, + permit_lot, + permit_dist_ll, + permit_owner_name, + permit_owner_phone, + permit_owner_address, + permit_owner_city, + permit_owner_state, + permit_owner_zip, + permit_size, + permit_units, + permit_building_type, + permit_work_type, + permit_ct1, + permit_ytd_permits, + permit_ytd_value, + permit_12mth_prev_permits + ) VALUES ( + :permit_permit_facts_id, + :permit_permit_number, + :permit_entry_date, + :permit_permit_date, + :permit_sub_div_name, + :permit_project_type, + :permit_county, + :permit_company, + :permit_phone, + :permit_project_addr, + :permit_city, + :permit_state, + :permit_zip, + :permit_project_city, + :permit_project_state, + :permit_value, + :permit_lot, + :permit_dist_ll, + :permit_owner_name, + :permit_owner_phone, + :permit_owner_address, + :permit_owner_city, + :permit_owner_state, + :permit_owner_zip, + :permit_size, + :permit_units, + :permit_building_type, + :permit_work_type, + :permit_ct1, + :permit_ytd_permits, + :permit_ytd_value, + :permit_12mth_prev_permits + )"; + + $statement = $this->connect()->prepare($SQL); + + $statement->bindValue(":permit_permit_facts_id", $permit_permit_facts_id); + $statement->bindValue(":permit_permit_number", $permit_permit_number); + $statement->bindValue(":permit_entry_date", $permit_entry_date); + $statement->bindValue(":permit_permit_date", $permit_permit_date); + $statement->bindValue(":permit_sub_div_name", $permit_sub_div_name); + $statement->bindValue(":permit_project_type", $permit_project_type); + $statement->bindValue(":permit_county", $permit_county); + $statement->bindValue(":permit_company", $permit_company); + $statement->bindValue(":permit_phone", $permit_phone); + $statement->bindValue(":permit_project_addr", $permit_project_addr); + $statement->bindValue(":permit_city", $permit_city); + $statement->bindValue(":permit_state", $permit_state); + $statement->bindValue(":permit_zip", $permit_zip); + $statement->bindValue(":permit_project_city", $permit_project_city); + $statement->bindValue(":permit_project_state", $permit_project_state); + $statement->bindValue(":permit_value", $permit_value); + $statement->bindValue(":permit_lot", $permit_lot); + $statement->bindValue(":permit_dist_ll", $permit_dist_ll); + $statement->bindValue(":permit_owner_name", $permit_owner_name); + $statement->bindValue(":permit_owner_phone", $permit_owner_phone); + $statement->bindValue(":permit_owner_address", $permit_owner_address); + $statement->bindValue(":permit_owner_city", $permit_owner_city); + $statement->bindValue(":permit_owner_state", $permit_owner_state); + $statement->bindValue(":permit_owner_zip", $permit_owner_zip); + $statement->bindValue(":permit_size", $permit_size); + $statement->bindValue(":permit_units", $permit_units); + $statement->bindValue(":permit_building_type", $permit_building_type); + $statement->bindValue(":permit_work_type", $permit_work_type); + $statement->bindValue(":permit_ct1", $permit_ct1); + $statement->bindValue(":permit_ytd_permits", $permit_ytd_permits); + $statement->bindValue(":permit_ytd_value", $permit_ytd_value); + $statement->bindValue(":permit_12mth_prev_permits", $permit_12mth_prev_permits); + + $statement->execute(); + + break; + + default: + + $this->displayHome(); + } + } + + // ============== + // Delete Permits + // ============== + + public function deletePermits() { + + $permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; + + $permit = $this->getPermits($permit_serial); + + if ($permit->count() == 0) { + $this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__); + } + + $SQL = "delete from permits + where permit_serial = {$permit_serial}"; + + $this->executeSQL($SQL); + } + + // ============== + // Edit a Permits + // ============== + + public function editPermit() { + + $step = filter_input(INPUT_POST, "step") ?: "prompt"; + + switch ($step) { + + case "prompt": + + $permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; + + $permit = $this->getPermits($permit_serial); + + if ($permit->count() == 0) { + $this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__); + } + + $constants = $this->getConstants(); + $counties = (new Counties())->getCounties(); + + $XML = $this->mergeXML($permit, ""); + $XML = $this->mergeXML($constants, $XML); + $XML = $this->mergeXML($counties, $XML); + + $content = $this->applyXSL($XML, $this->getXSL("editPermit")); + $this->displayContent($content); + + break; + + case "update": + + $permit_serial = filter_input(INPUT_POST, "permit_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_permit_facts_id = filter_input(INPUT_POST, "permit_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_permit_number = filter_input(INPUT_POST, "permit_permit_number") ?: ''; + $permit_entry_date = filter_input(INPUT_POST, "permit_entry_date") ?: ''; + $permit_permit_date = filter_input(INPUT_POST, "permit_permit_date") ?: ''; + $permit_sub_div_name = filter_input(INPUT_POST, "permit_sub_div_name") ?: ''; + $permit_project_type = filter_input(INPUT_POST, "permit_project_type") ?: ''; + $permit_county = filter_input(INPUT_POST, "permit_county") ?: ''; + $permit_company = filter_input(INPUT_POST, "permit_company") ?: ''; + $permit_phone = filter_input(INPUT_POST, "permit_phone") ?: ''; + $permit_project_addr = filter_input(INPUT_POST, "permit_project_addr") ?: ''; + $permit_city = filter_input(INPUT_POST, "permit_city") ?: ''; + $permit_state = filter_input(INPUT_POST, "permit_state") ?: ''; + $permit_zip = filter_input(INPUT_POST, "permit_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_project_city = filter_input(INPUT_POST, "permit_project_city") ?: ''; + $permit_project_state = filter_input(INPUT_POST, "permit_project_state") ?: ''; + $permit_value = filter_input(INPUT_POST, "permit_value", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_lot = filter_input(INPUT_POST, "permit_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_dist_ll = filter_input(INPUT_POST, "permit_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_owner_name = filter_input(INPUT_POST, "permit_owner_name") ?: ''; + $permit_owner_phone = filter_input(INPUT_POST, "permit_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: ''; + $permit_owner_address = filter_input(INPUT_POST, "permit_owner_address") ?: ''; + $permit_owner_city = filter_input(INPUT_POST, "permit_owner_city") ?: ''; + $permit_owner_state = filter_input(INPUT_POST, "permit_owner_state") ?: ''; + $permit_owner_zip = filter_input(INPUT_POST, "permit_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: ''; + $permit_size = filter_input(INPUT_POST, "permit_size", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_units = filter_input(INPUT_POST, "permit_units", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_building_type = filter_input(INPUT_POST, "permit_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_work_type = filter_input(INPUT_POST, "permit_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ct1 = filter_input(INPUT_POST, "permit_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ytd_permits = filter_input(INPUT_POST, "permit_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; + $permit_ytd_value = filter_input(INPUT_POST, "permit_ytd_value") ?: 0; + $permit_12mth_prev_permits = filter_input(INPUT_POST, "permit_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; + + $permit_entry_date = date("Y-m-d", strtotime($permit_entry_date)); + $permit_permit_date = date("Y-m-d", strtotime($permit_permit_date)); + $permit_value = str_replace(",", "", $permit_value); + + // Verify the Permits + $permit = $this->getPermits($permit_serial); + + if ($permit->count() == 0) { + $this->logError("Invalid Permits ({$permit_serial}). " . __METHOD__); + } + + $SQL = "UPDATE permits + SET permit_permit_facts_id = :permit_permit_facts_id, + permit_permit_number = :permit_permit_number, + permit_entry_date = :permit_entry_date, + permit_permit_date = :permit_permit_date, + permit_sub_div_name = :permit_sub_div_name, + permit_project_type = :permit_project_type, + permit_county = :permit_county, + permit_company = :permit_company, + permit_phone = :permit_phone, + permit_project_addr = :permit_project_addr, + permit_city = :permit_city, + permit_state = :permit_state, + permit_zip = :permit_zip, + permit_project_city = :permit_project_city, + permit_project_state = :permit_project_state, + permit_value = :permit_value, + permit_lot = :permit_lot, + permit_dist_ll = :permit_dist_ll, + permit_owner_name = :permit_owner_name, + permit_owner_phone = :permit_owner_phone, + permit_owner_address = :permit_owner_address, + permit_owner_city = :permit_owner_city, + permit_owner_state = :permit_owner_state, + permit_owner_zip = :permit_owner_zip, + permit_size = :permit_size, + permit_units = :permit_units, + permit_building_type = :permit_building_type, + permit_work_type = :permit_work_type, + permit_ct1 = :permit_ct1, + permit_ytd_permits = :permit_ytd_permits, + permit_ytd_value = :permit_ytd_value, + permit_12mth_prev_permits = :permit_12mth_prev_permits + WHERE permit_serial = :permit_serial"; + + $statement = $this->connect()->prepare($SQL); + + $statement->bindValue(":permit_serial", $permit_serial); + $statement->bindValue(":permit_permit_facts_id", $permit_permit_facts_id); + $statement->bindValue(":permit_permit_number", $permit_permit_number); + $statement->bindValue(":permit_entry_date", $permit_entry_date); + $statement->bindValue(":permit_permit_date", $permit_permit_date); + $statement->bindValue(":permit_sub_div_name", $permit_sub_div_name); + $statement->bindValue(":permit_project_type", $permit_project_type); + $statement->bindValue(":permit_county", $permit_county); + $statement->bindValue(":permit_company", $permit_company); + $statement->bindValue(":permit_phone", $permit_phone); + $statement->bindValue(":permit_project_addr", $permit_project_addr); + $statement->bindValue(":permit_city", $permit_city); + $statement->bindValue(":permit_state", $permit_state); + $statement->bindValue(":permit_zip", $permit_zip); + $statement->bindValue(":permit_project_city", $permit_project_city); + $statement->bindValue(":permit_project_state", $permit_project_state); + $statement->bindValue(":permit_value", $permit_value); + $statement->bindValue(":permit_lot", $permit_lot); + $statement->bindValue(":permit_dist_ll", $permit_dist_ll); + $statement->bindValue(":permit_owner_name", $permit_owner_name); + $statement->bindValue(":permit_owner_phone", $permit_owner_phone); + $statement->bindValue(":permit_owner_address", $permit_owner_address); + $statement->bindValue(":permit_owner_city", $permit_owner_city); + $statement->bindValue(":permit_owner_state", $permit_owner_state); + $statement->bindValue(":permit_owner_zip", $permit_owner_zip); + $statement->bindValue(":permit_size", $permit_size); + $statement->bindValue(":permit_units", $permit_units); + $statement->bindValue(":permit_building_type", $permit_building_type); + $statement->bindValue(":permit_work_type", $permit_work_type); + $statement->bindValue(":permit_ct1", $permit_ct1); + $statement->bindValue(":permit_ytd_permits", $permit_ytd_permits); + $statement->bindValue(":permit_ytd_value", $permit_ytd_value); + $statement->bindValue(":permit_12mth_prev_permits", $permit_12mth_prev_permits); + + $statement->execute(); + + break; + + default: + + $this->displayHome(); + } + } + + // ================================ + // Return an Active Permits Object + // ================================ + + public function getActivePermits() { + + $SQL = "select view_permits.* + from view_permits + where permit_status is true"; + + return $this->getTable("permits", $SQL); + } + + // ======================== + // Return an Permits Object + // ======================== + + public function getPermit($permit_serial = 0) { + + $SQL = "select view_permits.* + from view_permits + where permit_serial = {$permit_serial}"; + + return $this->getTable("permits", $SQL); + } + + // ======================== + // Return a Permits Object + // ======================== + + public function getPermits() { + + $SQL = "select view_permits.* + from view_permits"; + + return $this->getTable("permits", $SQL); + } + + // ======================== + // Return a Permits Page Object + // ======================== + + public function getPermitsPage() { + + // Find Criteria + + $find_permit = filter_input(INPUT_POST, "find_permit") ?: ""; + $find_permit = $this->sanitizeString($find_permit); + + $this->pagination_size = filter_input(INPUT_POST, "permits_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size; + + $permits_order_by = filter_input(INPUT_POST, "permits_order_by") ?: ""; + $permits_order_direction = filter_input(INPUT_POST, "permits_order_direction") ?: ""; + + if ($permits_order_by === "") { + $orderby = "permit_permit_number desc"; + } else { + $orderby = $permits_order_by . " " . $permits_order_direction; + } + + // Record Count + + $connection = $this->connect(); + + $SQL = "select count(*) as count + from view_permits + where permit_permit_number regexp :permit_permit_number + or permit_entry_date_verbose regexp :permit_entry_date_verbose + or permit_permit_date_verbose regexp :permit_permit_date_verbose + or permit_sub_div_name regexp :permit_sub_div_name + or permit_project_type regexp :permit_project_type"; + + $statement = $connection->prepare($SQL); + + $statement->bindValue(":permit_permit_number", $find_permit); + $statement->bindValue(":permit_entry_date_verbose", $find_permit); + $statement->bindValue(":permit_permit_date_verbose", $find_permit); + $statement->bindValue(":permit_sub_div_name", $find_permit); + $statement->bindValue(":permit_project_type", $find_permit); + + $statement->execute(); + + $recordset = $statement->fetch(PDO::FETCH_ASSOC); + + $count = (count($recordset) > 0) ? (integer) $recordset["count"] : (integer) 0; + + // Pagination + + $pagination = filter_input(INPUT_POST, "pagination") ?: ""; + + switch ($pagination) { + + case "first" : $this->pagination_page = 1; + break; + case "previous" : $this->pagination_page = max(($this->pagination_page - 1), 1); + break; + case "next" : $this->pagination_page = ($this->pagination_page + 1); + break; + case "last" : $this->pagination_page = ($count / $this->pagination_size); + break; + } + + $offset = (($this->pagination_page * $this->pagination_size) - $this->pagination_size); + $start = ($offset + 1); + $end = min($count, (($start + $this->pagination_size) - 1)); + + // Data + + $SQL = "select view_permits.* + from view_permits + where permit_permit_number regexp :permit_permit_number + or permit_entry_date_verbose regexp :permit_entry_date_verbose + or permit_permit_date_verbose regexp :permit_permit_date_verbose + or permit_sub_div_name regexp :permit_sub_div_name + or permit_project_type regexp :permit_project_type + order by {$orderby} + limit {$this->pagination_size} + offset {$offset}"; + + $statement = $connection->prepare($SQL); + + $statement->bindValue(":permit_permit_number", $find_permit); + $statement->bindValue(":permit_entry_date_verbose", $find_permit); + $statement->bindValue(":permit_permit_date_verbose", $find_permit); + $statement->bindValue(":permit_sub_div_name", $find_permit); + $statement->bindValue(":permit_project_type", $find_permit); + + $statement->execute(); + + $permits = $this->getTableXML("permits", $statement); + + // Insert Pagination Attributes + + $permits->addAttribute("count", $count); + $permits->addAttribute("start", $start); + $permits->addAttribute("end", $end); + $permits->addAttribute("page", $this->pagination_page); + + $_SESSION[self::PAGINATION_PAGE] = $this->pagination_page; + + return $permits; + } +} + +?> diff --git a/classes/PermitsByBuilder.php b/classes/PermitsByBuilder.php index 859f2fc..3703357 100644 --- a/classes/PermitsByBuilder.php +++ b/classes/PermitsByBuilder.php @@ -57,13 +57,16 @@ class PermitsByBuilder extends Base { // Populate Entry Dates with what was searched for if provided or users entry dates if no entry dates were provided - $searchhistory->record->searchhistory_parameters->rdi_entry_start_date = $permits->record->rdi_entry_start_date; - $searchhistory->record->searchhistory_parameters->rdi_entry_end_date = $permits->record->rdi_entry_end_date; + $searchhistory->record->searchhistory_parameters->permit_entry_start_date = $permits->record->permit_entry_start_date; + $searchhistory->record->searchhistory_parameters->permit_entry_end_date = $permits->record->permit_entry_end_date; $XML = $this->mergeXML($permits, ""); $XML = $this->mergeXML($subscription, $XML); $XML = $this->mergeXML($popovers, $XML); +// echo $XML; +// die(); + $content = $this->applyXSL($XML, $this->getXSL("searchPermitsByBuilder")); $this->displayContent($content); } @@ -75,78 +78,77 @@ class PermitsByBuilder extends Base { public function getPermits($permit_area, $projecttype) { // Sanitize inputs - $rdi_company = filter_input(INPUT_POST, "rdi_company") ?: ""; - $rdi_and_or = filter_input(INPUT_POST, "rdi_and_or") ?: "OR"; - $rdi_entry_start_date = filter_input(INPUT_POST, "rdi_entry_start_date") ?: ""; - $rdi_entry_end_date = filter_input(INPUT_POST, "rdi_entry_end_date") ?: ""; - $rdi_permit_start_date = filter_input(INPUT_POST, "rdi_permit_start_date") ?: ""; - $rdi_permit_end_date = filter_input(INPUT_POST, "rdi_permit_end_date") ?: ""; + $permit_company = filter_input(INPUT_POST, "permit_company") ?: ""; + $permit_and_or = filter_input(INPUT_POST, "permit_and_or") ?: "OR"; + $permit_entry_start_date = filter_input(INPUT_POST, "permit_entry_start_date") ?: ""; + $permit_entry_end_date = filter_input(INPUT_POST, "permit_entry_end_date") ?: ""; + $permit_permit_start_date = filter_input(INPUT_POST, "permit_permit_start_date") ?: ""; + $permit_permit_end_date = filter_input(INPUT_POST, "permit_permit_end_date") ?: ""; $pagination = filter_input(INPUT_POST, "pagination") ?: ""; - $rdi_entry_start_date = ($rdi_entry_start_date == "") ? null : date("Y-m-d", strtotime($rdi_entry_start_date)); - $rdi_entry_end_date = ($rdi_entry_end_date == "") ? null : date("Y-m-d", strtotime($rdi_entry_end_date)); - $rdi_permit_start_date = ($rdi_permit_start_date == "") ? null : date("Y-m-d", strtotime($rdi_permit_start_date)); - $rdi_permit_end_date = ($rdi_permit_end_date == "") ? null : date("Y-m-d", strtotime($rdi_permit_end_date)); + $permit_entry_start_date = ($permit_entry_start_date == "") ? null : date("Y-m-d", strtotime($permit_entry_start_date)); + $permit_entry_end_date = ($permit_entry_end_date == "") ? null : date("Y-m-d", strtotime($permit_entry_end_date)); + $permit_permit_start_date = ($permit_permit_start_date == "") ? null : date("Y-m-d", strtotime($permit_permit_start_date)); + $permit_permit_end_date = ($permit_permit_end_date == "") ? null : date("Y-m-d", strtotime($permit_permit_end_date)); // Validate AND/OR - if (!in_array(strtoupper($rdi_and_or), ["AND", "OR"])) { - $rdi_and_or = "OR"; + if (!in_array(strtoupper($permit_and_or), ["AND", "OR"])) { + $permit_and_or = "OR"; } // Pagination settings - $this->pagination_size = filter_input(INPUT_POST, "rdis_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size; - $rdis_order_by = filter_input(INPUT_POST, "rdis_order_by") ?: "rdi_permit_number"; - $rdis_order_direction = strtoupper(filter_input(INPUT_POST, "rdis_order_direction") ?: "DESC"); + $this->pagination_size = filter_input(INPUT_POST, "permits_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size; + $permits_order_by = filter_input(INPUT_POST, "permits_order_by") ?: "permit_company"; + $permits_order_direction = strtoupper(filter_input(INPUT_POST, "permits_order_direction") ?: "ASC"); // Ensure valid order by column - $allowed_order_columns = ["rdi_permit_number", "rdi_entry_date", "rdi_permit_date", "rdi_company", "rdi_permit_count"]; - if (!in_array($rdis_order_by, $allowed_order_columns)) { - $rdis_order_by = "rdi_permit_number"; + $allowed_order_columns = ["permit_permit_number", "permit_entry_date", "permit_permit_date", "permit_company", "permit_permit_count"]; + if (!in_array($permits_order_by, $allowed_order_columns)) { + $permits_order_by = "order by view_permits.permit_company"; } // Connect to DB $connection = $this->connect(); // === count QUERY === - $SQL = "select count(distinct rdi_company, rdi_address, rdi_city, rdi_state, rdi_zip, rdi_phone_verbose, - rdi_ytd_permits, rdi_ytd_value, rdi_12mth_prev_permits) as totalcount - from view_rdis r - join counties c on r.rdi_county = c.county_serial - where r.rdi_project_type = :rdi_project_type"; + $SQL = "select count(distinct permit_company) as totalcount + from view_permits r + join counties c on r.permit_county = c.county_serial + where r.permit_project_type = :permit_project_type"; if ($permit_area != "All") { $SQL .= " and c.county_area = :permit_area"; } - if (!empty($rdi_company)) { - $SQL .= " and r.rdi_company REGEXP :rdi_company"; + if (!empty($permit_company)) { + $SQL .= " and r.permit_company REGEXP :permit_company"; } - if (!empty($rdi_entry_start_date)) { - $SQL .= " $rdi_and_or (r.rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)"; + if (!empty($permit_entry_start_date)) { + $SQL .= " $permit_and_or (r.permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)"; } - if (!empty($rdi_permit_start_date)) { - $SQL .= " $rdi_and_or (r.rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)"; + if (!empty($permit_permit_start_date)) { + $SQL .= " $permit_and_or (r.permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)"; } $statement = $connection->prepare($SQL); - $statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR); + $statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR); if ($permit_area != "All") { $statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR); } - if (!empty($rdi_company)) { - $statement->bindValue(":rdi_company", $rdi_company, PDO::PARAM_STR); + if (!empty($permit_company)) { + $statement->bindValue(":permit_company", $permit_company, PDO::PARAM_STR); } - if (!empty($rdi_entry_start_date)) { - $statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date); - $statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date); + if (!empty($permit_entry_start_date)) { + $statement->bindValue(":permit_entry_start_date", $permit_entry_start_date); + $statement->bindValue(":permit_entry_end_date", $permit_entry_end_date); } - if (!empty($rdi_permit_start_date)) { - $statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date); - $statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date); + if (!empty($permit_permit_start_date)) { + $statement->bindValue(":permit_permit_start_date", $permit_permit_start_date); + $statement->bindValue(":permit_permit_end_date", $permit_permit_end_date); } $statement->execute(); @@ -172,60 +174,48 @@ class PermitsByBuilder extends Base { $end = min($count, $start + $this->pagination_size - 1); // === DATA QUERY === - $SQL = "select r.rdi_serial, r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits, - count(*) as rdi_permit_count, SUM(r.rdi_value) as rdi_value_verbose, - case - when rdi_12mth_prev_permits is null or rdi_12mth_prev_permits = 0 then '' - - /* your 75% rule: current is < 75% of last year */ - when (r.rdi_ytd_permits / rdi_12mth_prev_permits) < 0.75 then '=' - /* ±5% band */ - when ((r.rdi_ytd_permits - rdi_12mth_prev_permits) / rdi_12mth_prev_permits) >= 0.05 then 'up' - when ((r.rdi_ytd_permits - rdi_12mth_prev_permits) / rdi_12mth_prev_permits) <= -0.05 then 'down' - else '=' - end as permits_trend - - from view_rdis r - join counties c on r.rdi_county = c.county_serial - where r.rdi_project_type = :rdi_project_type"; + $SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose, + view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value, + view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose + from view_permits + join counties c on view_permits.permit_county = c.county_serial + where view_permits.permit_project_type = :permit_project_type"; if ($permit_area != "All") { $SQL .= " and c.county_area = :permit_area"; } - if (!empty($rdi_company)) { - $SQL .= " and r.rdi_company REGEXP :rdi_company"; + if (!empty($permit_company)) { + $SQL .= " and view_permits.permit_company REGEXP :permit_company"; } - if (!empty($rdi_entry_start_date)) { - $SQL .= " $rdi_and_or (r.rdi_entry_date between :rdi_entry_start_date and :rdi_entry_end_date)"; + if (!empty($permit_entry_start_date)) { + $SQL .= " $permit_and_or (view_permits.permit_entry_date between :permit_entry_start_date and :permit_entry_end_date)"; } - if (!empty($rdi_permit_start_date)) { - $SQL .= " $rdi_and_or (r.rdi_permit_date between :rdi_permit_start_date and :rdi_permit_end_date)"; + if (!empty($permit_permit_start_date)) { + $SQL .= " $permit_and_or (view_permits.permit_permit_date between :permit_permit_start_date and :permit_permit_end_date)"; } - $SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits - order by $rdis_order_by $rdis_order_direction + $SQL .= " group by view_permits.permit_company + order by $permits_order_by $permits_order_direction limit :limit offset :offset"; $statement = $connection->prepare($SQL); - $statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR); + $statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR); if ($permit_area != "All") { $statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR); } - if (!empty($rdi_company)) { - $statement->bindValue(":rdi_company", $rdi_company, PDO::PARAM_STR); + if (!empty($permit_company)) { + $statement->bindValue(":permit_company", $permit_company, PDO::PARAM_STR); } - if (!empty($rdi_entry_start_date)) { - $statement->bindValue(":rdi_entry_start_date", $rdi_entry_start_date); - $statement->bindValue(":rdi_entry_end_date", $rdi_entry_end_date); + if (!empty($permit_entry_start_date)) { + $statement->bindValue(":permit_entry_start_date", $permit_entry_start_date); + $statement->bindValue(":permit_entry_end_date", $permit_entry_end_date); } - if (!empty($rdi_permit_start_date)) { - $statement->bindValue(":rdi_permit_start_date", $rdi_permit_start_date); - $statement->bindValue(":rdi_permit_end_date", $rdi_permit_end_date); + if (!empty($permit_permit_start_date)) { + $statement->bindValue(":permit_permit_start_date", $permit_permit_start_date); + $statement->bindValue(":permit_permit_end_date", $permit_permit_end_date); } $statement->bindValue(":limit", $this->pagination_size, PDO::PARAM_INT); @@ -233,83 +223,80 @@ class PermitsByBuilder extends Base { $statement->execute(); - $rdis = $this->getTableXML("rdis", $statement); + $permits = $this->getTableXML("permits", $statement); // Insert Pagination Attributes - $rdis->addAttribute("count", $count); - $rdis->addAttribute("start", $start); - $rdis->addAttribute("end", $end); - $rdis->addAttribute("page", $this->pagination_page); + $permits->addAttribute("count", $count); + $permits->addAttribute("start", $start); + $permits->addAttribute("end", $end); + $permits->addAttribute("page", $this->pagination_page); $_SESSION[self::PAGINATION_PAGE] = $this->pagination_page; - return $rdis; + return $permits; } // ============================= // Fetch All Permits for Exports // ============================= - public function getAllPermitsByBuilder($permit_area, $projecttype) { + public function getAllPermits($permit_area, $projecttype) { - // Connect to DB $connection = $this->connect(); // === count QUERY === - $SQL = "SELECT count(DISTINCT rdi_company, rdi_address, rdi_city, rdi_state, rdi_zip, rdi_phone_verbose, - rdi_ytd_permits, rdi_ytd_value, rdi_12mth_prev_permits) AS count - FROM view_rdis r - JOIN counties c on r.rdi_county = c.county_serial - WHERE r.rdi_project_type = :rdi_project_type"; + $SQL = "select count(distinct permit_company) as totalcount + from view_permits r + join counties c on r.permit_county = c.county_serial + where r.permit_project_type = :permit_project_type"; - if ($permit_area !== "All") { + if ($permit_area != "All") { $SQL .= " and c.county_area = :permit_area"; } $statement = $connection->prepare($SQL); - $statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR); + $statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR); - if ($permit_area !== "All") { + if ($permit_area != "All") { $statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR); } $statement->execute(); - + $recordset = $statement->fetch(PDO::FETCH_ASSOC); - $count = $recordset ? (int) $recordset["count"] : 0; + $count = $recordset ? (int) $recordset["totalcount"] : 0; // === DATA QUERY === - $SQL = "SELECT r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits, - count(*) AS rdi_permit_count, SUM(r.rdi_value) AS rdi_value - FROM view_rdis r - JOIN counties c on r.rdi_county = c.county_serial - WHERE r.rdi_project_type = :rdi_project_type"; + $SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose, + view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value, + view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose + from view_permits + join counties c on view_permits.permit_county = c.county_serial + where view_permits.permit_project_type = :permit_project_type"; - if ($permit_area !== "All") { + if ($permit_area != "All") { $SQL .= " and c.county_area = :permit_area"; } - $SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits"; + $SQL .= " group by view_permits.permit_company order by view_permits.permit_company"; $statement = $connection->prepare($SQL); - $statement->bindValue(":rdi_project_type", $projecttype, PDO::PARAM_STR); + $statement->bindValue(":permit_project_type", $projecttype, PDO::PARAM_STR); - if ($permit_area !== "All") { + if ($permit_area != "All") { $statement->bindValue(":permit_area", $permit_area, PDO::PARAM_STR); } $statement->execute(); - $rdis = $this->getTableXML("rdis", $statement); + $permits = $this->getTableXML("permits", $statement); // Insert Pagination Attributes - $rdis->addAttribute("count", $count); + $permits->addAttribute("count", $count); - return $rdis; + return $permits; } // ====================== @@ -318,20 +305,20 @@ class PermitsByBuilder extends Base { public function getSelectedPermits($permit_area, $projecttype, $permit_serial = 0) { - $SQL = "SELECT r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone_verbose, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits, - count(*) AS rdi_permit_count, SUM(r.rdi_value) AS rdi_value - FROM view_rdis r - JOIN counties c on r.rdi_county = c.county_serial - WHERE r.rdi_project_type = '{$projecttype}' "; + $SQL = "select view_permits.permit_serial, view_permits.permit_company, count(*) as permit_permit_count, SUM(view_permits.permit_value) as permit_value_verbose, + view_permits.ytd_permits, view_permits.previous_ytd_permits, view_permits.permits_trend, view_permits.previous_ytd_value, view_permits.ytd_value, + view_permits.permit_address, view_permits.permit_city, view_permits.permit_state, view_permits.permit_zip, view_permits.permit_phone_verbose + from view_permits + join counties c on view_permits.permit_county = c.county_serial + where view_permits.permit_project_type = '{$projecttype}' "; - if ($permit_area !== "All") { + if ($permit_area != "All") { $SQL .= " and c.county_area = '$permit_area'"; } - $SQL .= " and rdi_serial in ({$permit_serial}) "; - $SQL .= " group by r.rdi_company, r.rdi_address, r.rdi_city, r.rdi_state, r.rdi_zip, r.rdi_phone, - r.rdi_ytd_permits, r.rdi_ytd_value, r.rdi_12mth_prev_permits"; + $SQL .= " and permit_serial in ({$permit_serial}) "; + + $SQL .= " group by view_permits.permit_company order by view_permits.permit_company"; return $this->getTable("permits", $SQL); } diff --git a/classes/RDI.php b/classes/RDI.php deleted file mode 100644 index c0f1070..0000000 --- a/classes/RDI.php +++ /dev/null @@ -1,549 +0,0 @@ -current_user_serial = $_SESSION[self::USER_SERIAL] ?? 0; - $this->current_user_id = $_SESSION[self::USER_ID] ?? ""; - $this->current_user_name = $_SESSION[self::USER_NAME] ?? ""; - $this->current_user_email = $_SESSION[self::USER_EMAIL] ?? ""; - - $this->pagination_page = $_SESSION[self::PAGINATION_PAGE] ?? 1; - } - - // ========== - // Manage RDI - // ========== - - public function manageRDI() { - - $rdi = $this->getRDIPage(); - $popovers = (new Popovers())->getPopovers(); - - $XML = $this->mergeXML($rdi, ""); - $XML = $this->mergeXML($popovers, $XML); - - $content = $this->applyXSL($XML, $this->getXSL("manageRDI")); - - $this->displayContent($content); - } - - // ======= - // Add RDI - // ======= - - public function addRDI() { - - $step = filter_input(INPUT_POST, "step") ?: "prompt"; - - switch ($step) { - - case "prompt": - - $constants = $this->getConstants(); - $counties = (new Counties())->getCounties(); - - $XML = $this->mergeXML($constants, ""); - $XML = $this->mergeXML($counties, $XML); - - $content = $this->applyXSL($XML, $this->getXSL("addRDI")); - - $this->displayContent($content); - - break; - - case "add": - - $rdi_permit_facts_id = filter_input(INPUT_POST, "rdi_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_permit_number = filter_input(INPUT_POST, "rdi_permit_number") ?: ''; - $rdi_entry_date = filter_input(INPUT_POST, "rdi_entry_date") ?: ''; - $rdi_permit_date = filter_input(INPUT_POST, "rdi_permit_date") ?: ''; - $rdi_sub_div_name = filter_input(INPUT_POST, "rdi_sub_div_name") ?: ''; - $rdi_project_type = filter_input(INPUT_POST, "rdi_project_type") ?: ''; - $rdi_county = filter_input(INPUT_POST, "rdi_county") ?: ''; - $rdi_company = filter_input(INPUT_POST, "rdi_company") ?: ''; - $rdi_phone = filter_input(INPUT_POST, "rdi_phone") ?: ''; - $rdi_project_addr = filter_input(INPUT_POST, "rdi_project_addr") ?: ''; - $rdi_city = filter_input(INPUT_POST, "rdi_city") ?: ''; - $rdi_state = filter_input(INPUT_POST, "rdi_state") ?: ''; - $rdi_zip = filter_input(INPUT_POST, "rdi_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_project_city = filter_input(INPUT_POST, "rdi_project_city") ?: ''; - $rdi_project_state = filter_input(INPUT_POST, "rdi_project_state") ?: ''; - $rdi_value = filter_input(INPUT_POST, "rdi_value", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_lot = filter_input(INPUT_POST, "rdi_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_dist_ll = filter_input(INPUT_POST, "rdi_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_owner_name = filter_input(INPUT_POST, "rdi_owner_name") ?: ''; - $rdi_owner_phone = filter_input(INPUT_POST, "rdi_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: ''; - $rdi_owner_address = filter_input(INPUT_POST, "rdi_owner_address") ?: ''; - $rdi_owner_city = filter_input(INPUT_POST, "rdi_owner_city") ?: ''; - $rdi_owner_state = filter_input(INPUT_POST, "rdi_owner_state") ?: ''; - $rdi_owner_zip = filter_input(INPUT_POST, "rdi_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: ''; - $rdi_size = filter_input(INPUT_POST, "rdi_size", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_units = filter_input(INPUT_POST, "rdi_units", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_building_type = filter_input(INPUT_POST, "rdi_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_work_type = filter_input(INPUT_POST, "rdi_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ct1 = filter_input(INPUT_POST, "rdi_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ytd_permits = filter_input(INPUT_POST, "rdi_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ytd_value = filter_input(INPUT_POST, "rdi_ytd_value") ?: 0; - $rdi_12mth_prev_permits = filter_input(INPUT_POST, "rdi_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; - - $rdi_entry_date = date("Y-m-d", strtotime($rdi_entry_date)); - $rdi_permit_date = date("Y-m-d", strtotime($rdi_permit_date)); - $rdi_value = str_replace(",", "", $rdi_value); - - $SQL = "INSERT INTO rdis ( - rdi_permit_facts_id, - rdi_permit_number, - rdi_entry_date, - rdi_permit_date, - rdi_sub_div_name, - rdi_project_type, - rdi_county, - rdi_company, - rdi_phone, - rdi_project_addr, - rdi_city, - rdi_state, - rdi_zip, - rdi_project_city, - rdi_project_state, - rdi_value, - rdi_lot, - rdi_dist_ll, - rdi_owner_name, - rdi_owner_phone, - rdi_owner_address, - rdi_owner_city, - rdi_owner_state, - rdi_owner_zip, - rdi_size, - rdi_units, - rdi_building_type, - rdi_work_type, - rdi_ct1, - rdi_ytd_permits, - rdi_ytd_value, - rdi_12mth_prev_permits - ) VALUES ( - :rdi_permit_facts_id, - :rdi_permit_number, - :rdi_entry_date, - :rdi_permit_date, - :rdi_sub_div_name, - :rdi_project_type, - :rdi_county, - :rdi_company, - :rdi_phone, - :rdi_project_addr, - :rdi_city, - :rdi_state, - :rdi_zip, - :rdi_project_city, - :rdi_project_state, - :rdi_value, - :rdi_lot, - :rdi_dist_ll, - :rdi_owner_name, - :rdi_owner_phone, - :rdi_owner_address, - :rdi_owner_city, - :rdi_owner_state, - :rdi_owner_zip, - :rdi_size, - :rdi_units, - :rdi_building_type, - :rdi_work_type, - :rdi_ct1, - :rdi_ytd_permits, - :rdi_ytd_value, - :rdi_12mth_prev_permits - )"; - - $statement = $this->connect()->prepare($SQL); - - $statement->bindValue(":rdi_permit_facts_id", $rdi_permit_facts_id); - $statement->bindValue(":rdi_permit_number", $rdi_permit_number); - $statement->bindValue(":rdi_entry_date", $rdi_entry_date); - $statement->bindValue(":rdi_permit_date", $rdi_permit_date); - $statement->bindValue(":rdi_sub_div_name", $rdi_sub_div_name); - $statement->bindValue(":rdi_project_type", $rdi_project_type); - $statement->bindValue(":rdi_county", $rdi_county); - $statement->bindValue(":rdi_company", $rdi_company); - $statement->bindValue(":rdi_phone", $rdi_phone); - $statement->bindValue(":rdi_project_addr", $rdi_project_addr); - $statement->bindValue(":rdi_city", $rdi_city); - $statement->bindValue(":rdi_state", $rdi_state); - $statement->bindValue(":rdi_zip", $rdi_zip); - $statement->bindValue(":rdi_project_city", $rdi_project_city); - $statement->bindValue(":rdi_project_state", $rdi_project_state); - $statement->bindValue(":rdi_value", $rdi_value); - $statement->bindValue(":rdi_lot", $rdi_lot); - $statement->bindValue(":rdi_dist_ll", $rdi_dist_ll); - $statement->bindValue(":rdi_owner_name", $rdi_owner_name); - $statement->bindValue(":rdi_owner_phone", $rdi_owner_phone); - $statement->bindValue(":rdi_owner_address", $rdi_owner_address); - $statement->bindValue(":rdi_owner_city", $rdi_owner_city); - $statement->bindValue(":rdi_owner_state", $rdi_owner_state); - $statement->bindValue(":rdi_owner_zip", $rdi_owner_zip); - $statement->bindValue(":rdi_size", $rdi_size); - $statement->bindValue(":rdi_units", $rdi_units); - $statement->bindValue(":rdi_building_type", $rdi_building_type); - $statement->bindValue(":rdi_work_type", $rdi_work_type); - $statement->bindValue(":rdi_ct1", $rdi_ct1); - $statement->bindValue(":rdi_ytd_permits", $rdi_ytd_permits); - $statement->bindValue(":rdi_ytd_value", $rdi_ytd_value); - $statement->bindValue(":rdi_12mth_prev_permits", $rdi_12mth_prev_permits); - - $statement->execute(); - - break; - - default: - - $this->displayHome(); - } - } - - // ========== - // Delete RDI - // ========== - - public function deleteRDI() { - - $rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; - - $rdi = $this->getRDI($rdi_serial); - - if ($rdi->count() == 0) { - $this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__); - } - - $SQL = "delete from rdis - where rdi_serial = {$rdi_serial}"; - - $this->executeSQL($SQL); - } - - // ========== - // Edit a RDI - // ========== - - public function editRDI() { - - $step = filter_input(INPUT_POST, "step") ?: "prompt"; - - switch ($step) { - - case "prompt": - - $rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; - - $rdi = $this->getRDI($rdi_serial); - - if ($rdi->count() == 0) { - $this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__); - } - - $constants = $this->getConstants(); - $counties = (new Counties())->getCounties(); - - $XML = $this->mergeXML($rdi, ""); - $XML = $this->mergeXML($constants, $XML); - $XML = $this->mergeXML($counties, $XML); - - $content = $this->applyXSL($XML, $this->getXSL("editRDI")); - $this->displayContent($content); - - break; - - case "update": - - $rdi_serial = filter_input(INPUT_POST, "rdi_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_permit_facts_id = filter_input(INPUT_POST, "rdi_permit_facts_id", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_permit_number = filter_input(INPUT_POST, "rdi_permit_number") ?: ''; - $rdi_entry_date = filter_input(INPUT_POST, "rdi_entry_date") ?: ''; - $rdi_permit_date = filter_input(INPUT_POST, "rdi_permit_date") ?: ''; - $rdi_sub_div_name = filter_input(INPUT_POST, "rdi_sub_div_name") ?: ''; - $rdi_project_type = filter_input(INPUT_POST, "rdi_project_type") ?: ''; - $rdi_county = filter_input(INPUT_POST, "rdi_county") ?: ''; - $rdi_company = filter_input(INPUT_POST, "rdi_company") ?: ''; - $rdi_phone = filter_input(INPUT_POST, "rdi_phone") ?: ''; - $rdi_project_addr = filter_input(INPUT_POST, "rdi_project_addr") ?: ''; - $rdi_city = filter_input(INPUT_POST, "rdi_city") ?: ''; - $rdi_state = filter_input(INPUT_POST, "rdi_state") ?: ''; - $rdi_zip = filter_input(INPUT_POST, "rdi_zip", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_project_city = filter_input(INPUT_POST, "rdi_project_city") ?: ''; - $rdi_project_state = filter_input(INPUT_POST, "rdi_project_state") ?: ''; - $rdi_value = filter_input(INPUT_POST, "rdi_value", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_lot = filter_input(INPUT_POST, "rdi_lot", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_dist_ll = filter_input(INPUT_POST, "rdi_dist_ll", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_owner_name = filter_input(INPUT_POST, "rdi_owner_name") ?: ''; - $rdi_owner_phone = filter_input(INPUT_POST, "rdi_owner_phone", FILTER_SANITIZE_NUMBER_INT) ?: ''; - $rdi_owner_address = filter_input(INPUT_POST, "rdi_owner_address") ?: ''; - $rdi_owner_city = filter_input(INPUT_POST, "rdi_owner_city") ?: ''; - $rdi_owner_state = filter_input(INPUT_POST, "rdi_owner_state") ?: ''; - $rdi_owner_zip = filter_input(INPUT_POST, "rdi_owner_zip", FILTER_SANITIZE_NUMBER_INT) ?: ''; - $rdi_size = filter_input(INPUT_POST, "rdi_size", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_units = filter_input(INPUT_POST, "rdi_units", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_building_type = filter_input(INPUT_POST, "rdi_building_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_work_type = filter_input(INPUT_POST, "rdi_work_type", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ct1 = filter_input(INPUT_POST, "rdi_ct1", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ytd_permits = filter_input(INPUT_POST, "rdi_ytd_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; - $rdi_ytd_value = filter_input(INPUT_POST, "rdi_ytd_value") ?: 0; - $rdi_12mth_prev_permits = filter_input(INPUT_POST, "rdi_12mth_prev_permits", FILTER_SANITIZE_NUMBER_INT) ?: 0; - - $rdi_entry_date = date("Y-m-d", strtotime($rdi_entry_date)); - $rdi_permit_date = date("Y-m-d", strtotime($rdi_permit_date)); - $rdi_value = str_replace(",", "", $rdi_value); - - // Verify the RDI - $rdi = $this->getRDI($rdi_serial); - - if ($rdi->count() == 0) { - $this->logError("Invalid RDI ({$rdi_serial}). " . __METHOD__); - } - - $SQL = "UPDATE rdis - SET rdi_permit_facts_id = :rdi_permit_facts_id, - rdi_permit_number = :rdi_permit_number, - rdi_entry_date = :rdi_entry_date, - rdi_permit_date = :rdi_permit_date, - rdi_sub_div_name = :rdi_sub_div_name, - rdi_project_type = :rdi_project_type, - rdi_county = :rdi_county, - rdi_company = :rdi_company, - rdi_phone = :rdi_phone, - rdi_project_addr = :rdi_project_addr, - rdi_city = :rdi_city, - rdi_state = :rdi_state, - rdi_zip = :rdi_zip, - rdi_project_city = :rdi_project_city, - rdi_project_state = :rdi_project_state, - rdi_value = :rdi_value, - rdi_lot = :rdi_lot, - rdi_dist_ll = :rdi_dist_ll, - rdi_owner_name = :rdi_owner_name, - rdi_owner_phone = :rdi_owner_phone, - rdi_owner_address = :rdi_owner_address, - rdi_owner_city = :rdi_owner_city, - rdi_owner_state = :rdi_owner_state, - rdi_owner_zip = :rdi_owner_zip, - rdi_size = :rdi_size, - rdi_units = :rdi_units, - rdi_building_type = :rdi_building_type, - rdi_work_type = :rdi_work_type, - rdi_ct1 = :rdi_ct1, - rdi_ytd_permits = :rdi_ytd_permits, - rdi_ytd_value = :rdi_ytd_value, - rdi_12mth_prev_permits = :rdi_12mth_prev_permits - WHERE rdi_serial = :rdi_serial"; - - $statement = $this->connect()->prepare($SQL); - - $statement->bindValue(":rdi_serial", $rdi_serial); - $statement->bindValue(":rdi_permit_facts_id", $rdi_permit_facts_id); - $statement->bindValue(":rdi_permit_number", $rdi_permit_number); - $statement->bindValue(":rdi_entry_date", $rdi_entry_date); - $statement->bindValue(":rdi_permit_date", $rdi_permit_date); - $statement->bindValue(":rdi_sub_div_name", $rdi_sub_div_name); - $statement->bindValue(":rdi_project_type", $rdi_project_type); - $statement->bindValue(":rdi_county", $rdi_county); - $statement->bindValue(":rdi_company", $rdi_company); - $statement->bindValue(":rdi_phone", $rdi_phone); - $statement->bindValue(":rdi_project_addr", $rdi_project_addr); - $statement->bindValue(":rdi_city", $rdi_city); - $statement->bindValue(":rdi_state", $rdi_state); - $statement->bindValue(":rdi_zip", $rdi_zip); - $statement->bindValue(":rdi_project_city", $rdi_project_city); - $statement->bindValue(":rdi_project_state", $rdi_project_state); - $statement->bindValue(":rdi_value", $rdi_value); - $statement->bindValue(":rdi_lot", $rdi_lot); - $statement->bindValue(":rdi_dist_ll", $rdi_dist_ll); - $statement->bindValue(":rdi_owner_name", $rdi_owner_name); - $statement->bindValue(":rdi_owner_phone", $rdi_owner_phone); - $statement->bindValue(":rdi_owner_address", $rdi_owner_address); - $statement->bindValue(":rdi_owner_city", $rdi_owner_city); - $statement->bindValue(":rdi_owner_state", $rdi_owner_state); - $statement->bindValue(":rdi_owner_zip", $rdi_owner_zip); - $statement->bindValue(":rdi_size", $rdi_size); - $statement->bindValue(":rdi_units", $rdi_units); - $statement->bindValue(":rdi_building_type", $rdi_building_type); - $statement->bindValue(":rdi_work_type", $rdi_work_type); - $statement->bindValue(":rdi_ct1", $rdi_ct1); - $statement->bindValue(":rdi_ytd_permits", $rdi_ytd_permits); - $statement->bindValue(":rdi_ytd_value", $rdi_ytd_value); - $statement->bindValue(":rdi_12mth_prev_permits", $rdi_12mth_prev_permits); - - $statement->execute(); - - break; - - default: - - $this->displayHome(); - } - } - - // ================================ - // Return an Active RDI Object - // ================================ - - public function getActiveRDI() { - - $SQL = "select view_rdis.* - from view_rdis - where rdi_status is true"; - - return $this->getTable("rdis", $SQL); - } - - // ======================== - // Return an RDI Object - // ======================== - - public function getRDI($rdi_serial = 0) { - - $SQL = "select view_rdis.* - from view_rdis - where rdi_serial = {$rdi_serial}"; - - return $this->getTable("rdis", $SQL); - } - - // ======================== - // Return a RDI Object - // ======================== - - public function getRDIs() { - - $SQL = "select view_rdis.* - from view_rdis"; - - return $this->getTable("rdis", $SQL); - } - - // ======================== - // Return a RDI Page Object - // ======================== - - public function getRDIPage() { - - // Find Criteria - - $find_rdi = filter_input(INPUT_POST, "find_rdi") ?: ""; - $find_rdi = $this->sanitizeString($find_rdi); - - $this->pagination_size = filter_input(INPUT_POST, "rdis_per_page", FILTER_SANITIZE_NUMBER_INT) ?: $this->pagination_size; - - $rdis_order_by = filter_input(INPUT_POST, "rdis_order_by") ?: ""; - $rdis_order_direction = filter_input(INPUT_POST, "rdis_order_direction") ?: ""; - - if ($rdis_order_by === "") { - $orderby = "rdi_permit_number desc"; - } else { - $orderby = $rdis_order_by . " " . $rdis_order_direction; - } - - // Record Count - - $connection = $this->connect(); - - $SQL = "select count(*) as count - from view_rdis - where rdi_permit_number regexp :rdi_permit_number - or rdi_entry_date_verbose regexp :rdi_entry_date_verbose - or rdi_permit_date_verbose regexp :rdi_permit_date_verbose - or rdi_sub_div_name regexp :rdi_sub_div_name - or rdi_project_type regexp :rdi_project_type"; - - $statement = $connection->prepare($SQL); - - $statement->bindValue(":rdi_permit_number", $find_rdi); - $statement->bindValue(":rdi_entry_date_verbose", $find_rdi); - $statement->bindValue(":rdi_permit_date_verbose", $find_rdi); - $statement->bindValue(":rdi_sub_div_name", $find_rdi); - $statement->bindValue(":rdi_project_type", $find_rdi); - - $statement->execute(); - - $recordset = $statement->fetch(PDO::FETCH_ASSOC); - - $count = (count($recordset) > 0) ? (integer) $recordset["count"] : (integer) 0; - - // Pagination - - $pagination = filter_input(INPUT_POST, "pagination") ?: ""; - - switch ($pagination) { - - case "first" : $this->pagination_page = 1; - break; - case "previous" : $this->pagination_page = max(($this->pagination_page - 1), 1); - break; - case "next" : $this->pagination_page = ($this->pagination_page + 1); - break; - case "last" : $this->pagination_page = ($count / $this->pagination_size); - break; - } - - $offset = (($this->pagination_page * $this->pagination_size) - $this->pagination_size); - $start = ($offset + 1); - $end = min($count, (($start + $this->pagination_size) - 1)); - - // Data - - $SQL = "select view_rdis.* - from view_rdis - where rdi_permit_number regexp :rdi_permit_number - or rdi_entry_date_verbose regexp :rdi_entry_date_verbose - or rdi_permit_date_verbose regexp :rdi_permit_date_verbose - or rdi_sub_div_name regexp :rdi_sub_div_name - or rdi_project_type regexp :rdi_project_type - order by {$orderby} - limit {$this->pagination_size} - offset {$offset}"; - - $statement = $connection->prepare($SQL); - - $statement->bindValue(":rdi_permit_number", $find_rdi); - $statement->bindValue(":rdi_entry_date_verbose", $find_rdi); - $statement->bindValue(":rdi_permit_date_verbose", $find_rdi); - $statement->bindValue(":rdi_sub_div_name", $find_rdi); - $statement->bindValue(":rdi_project_type", $find_rdi); - - $statement->execute(); - - $rdis = $this->getTableXML("rdis", $statement); - - // Insert Pagination Attributes - - $rdis->addAttribute("count", $count); - $rdis->addAttribute("start", $start); - $rdis->addAttribute("end", $end); - $rdis->addAttribute("page", $this->pagination_page); - - $_SESSION[self::PAGINATION_PAGE] = $this->pagination_page; - - return $rdis; - } -} - -?> diff --git a/css/base.css b/css/base.css index 433ff42..bd26212 100644 --- a/css/base.css +++ b/css/base.css @@ -325,6 +325,6 @@ table.table-auto tbody td:not(:last-of-type), table.table-auto tfoot td:not(:las font-family: bootstrap-icons; } -.manageRDI th.sortable:hover { +th.sortable:hover { cursor: pointer; } diff --git a/js/addRDI.js b/js/addPermit.js similarity index 73% rename from js/addRDI.js rename to js/addPermit.js index e172806..3178549 100644 --- a/js/addRDI.js +++ b/js/addPermit.js @@ -1,6 +1,6 @@ // ======= -// Add RDI +// Add Permits // ======= $(document).ready(function () { @@ -37,8 +37,8 @@ $(document).ready(function () { // Date Pickers // ------------ - $("#rdi_entry_date").datepicker({format: "mm-dd-yyyy", - container: "div.rdi_entry_date", + $("#permit_entry_date").datepicker({format: "mm-dd-yyyy", + container: "div.permit_entry_date", keyboardNavigation: false, showOnFocus: false, autoclose: true, @@ -47,8 +47,8 @@ $(document).ready(function () { todayBtn: "linked", todayHighlight: true}); - $("#rdi_permit_date").datepicker({format: "mm-dd-yyyy", - container: "div.rdi_permit_date", + $("#permit_permit_date").datepicker({format: "mm-dd-yyyy", + container: "div.permit_permit_date", keyboardNavigation: false, showOnFocus: false, autoclose: true, @@ -65,7 +65,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_entry_date").focus().datepicker("show"); + $("#permit_entry_date").focus().datepicker("show"); }); @@ -73,7 +73,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_permit_date").focus().datepicker("show"); + $("#permit_permit_date").focus().datepicker("show"); }); @@ -85,7 +85,7 @@ $(document).ready(function () { e.preventDefault(); - $("#addRDI").submit(); + $("#addPermit").submit(); }); @@ -95,7 +95,7 @@ $(document).ready(function () { $(".btnCancel").on("click", function () { - $sessionStorage.action = $sessionStorage.addRDI || ""; + $sessionStorage.action = $sessionStorage.addPermit || ""; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -107,20 +107,20 @@ $(document).ready(function () { // Validate Inputs // --------------- - $("#addRDI").submit(function (e) { + $("#addPermit").submit(function (e) { - var rdi_entry_date = $("#rdi_entry_date"), rdi_county = $("#rdi_county"); + var permit_entry_date = $("#permit_entry_date"), permit_county = $("#permit_county"); clearInputErrors(); - if (isBlank(rdi_entry_date)) { - createInputError(rdi_entry_date, "Entry Date is required"); + if (isBlank(permit_entry_date)) { + createInputError(permit_entry_date, "Entry Date is required"); return false; } - if ($("option:selected", rdi_county).val() === "") { - createInputError(rdi_county, "County is required"); + if ($("option:selected", permit_county).val() === "") { + createInputError(permit_county, "County is required"); return false; } @@ -128,7 +128,7 @@ $(document).ready(function () { .done(function () { - $sessionStorage.action = $sessionStorage.editRDI || ""; + $sessionStorage.action = $sessionStorage.addPermit || ""; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); diff --git a/js/content.js b/js/content.js index 24500e4..414b573 100644 --- a/js/content.js +++ b/js/content.js @@ -42,12 +42,12 @@ $(document).ready(function () { }); - $(".manage-rdi").on("click", function () { + $(".manage-permits").on("click", function () { - $sessionStorage.action = "RDI.manageRDI"; + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = "first"; - $sessionStorage.find_rdi = ""; - $sessionStorage.rdis_order_by = ""; + $sessionStorage.find_permit = ""; + $sessionStorage.permits_order_by = ""; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); diff --git a/js/editRDI.js b/js/editPermit.js similarity index 69% rename from js/editRDI.js rename to js/editPermit.js index 4ab35d9..d1d1aa6 100644 --- a/js/editRDI.js +++ b/js/editPermit.js @@ -1,7 +1,7 @@ -// ================= -// Edit RDI -// ================= +// =========== +// Edit Permit +// =========== $(document).ready(function () { @@ -37,8 +37,8 @@ $(document).ready(function () { // Date Pickers // ------------ - $("#rdi_entry_date").datepicker({format: "mm-dd-yyyy", - container: "div.rdi_entry_date", + $("#permit_entry_date").datepicker({format: "mm-dd-yyyy", + container: "div.permit_entry_date", keyboardNavigation: false, showOnFocus: false, autoclose: true, @@ -47,8 +47,8 @@ $(document).ready(function () { todayBtn: "linked", todayHighlight: true}); - $("#rdi_permit_date").datepicker({format: "mm-dd-yyyy", - container: "div.rdi_permit_date", + $("#permit_permit_date").datepicker({format: "mm-dd-yyyy", + container: "div.permit_permit_date", keyboardNavigation: false, showOnFocus: false, autoclose: true, @@ -65,7 +65,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_entry_date").focus().datepicker("show"); + $("#permit_entry_date").focus().datepicker("show"); }); @@ -73,7 +73,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_permit_date").focus().datepicker("show"); + $("#permit_permit_date").focus().datepicker("show"); }); @@ -85,7 +85,7 @@ $(document).ready(function () { e.preventDefault(); - $("#editRDI").submit(); + $("#editPermit").submit(); }); @@ -95,7 +95,7 @@ $(document).ready(function () { $(".btnCancel").on("click", function () { - $sessionStorage.action = $sessionStorage.editRDI || ""; + $sessionStorage.action = $sessionStorage.editPermit || ""; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -109,18 +109,18 @@ $(document).ready(function () { $(".btnDelete").on("click", function () { - $("#confirm-dialog").removeClass().addClass("modal confirm-delete-rdi") - .find(".modal-title").html("Confirm Delete RDI").end() - .find(".modal-body").html("Are you sure you wish to delete this RDI?").end() + $("#confirm-dialog").removeClass().addClass("modal confirm-delete-permit") + .find(".modal-title").html("Confirm Delete Permit").end() + .find(".modal-body").html("Are you sure you wish to delete this Permit?").end() .modal("show"); }); - $("body").on("click", ".confirm-delete-rdi .btnConfirmDialogConfirm", function () { + $("body").on("click", ".confirm-delete-permit .btnConfirmDialogConfirm", function () { - $.post("./", {action: "RDI.deleteRDI", rdi_serial: $sessionStorage.rdi_serial}) + $.post("./", {action: "Permits.deletePermit", permit_serial: $sessionStorage.permit_serial}) .done(function () { - formSubmit({action: $sessionStorage.deleteRDI}); + formSubmit({action: $sessionStorage.deletePermit}); }); }); @@ -129,20 +129,20 @@ $(document).ready(function () { // Validate Inputs // --------------- - $("#editRDI").submit(function (e) { + $("#editPermit").submit(function (e) { - var rdi_entry_date = $("#rdi_entry_date"), rdi_county = $("#rdi_county"); + var permit_entry_date = $("#permit_entry_date"), permit_county = $("#permit_county"); clearInputErrors(); - if (isBlank(rdi_entry_date)) { - createInputError(rdi_entry_date, "Entry Date is required"); + if (isBlank(permit_entry_date)) { + createInputError(permit_entry_date, "Entry Date is required"); return false; } - if ($("option:selected", rdi_county).val() === "") { - createInputError(rdi_county, "County is required"); + if ($("option:selected", permit_county).val() === "") { + createInputError(permit_county, "County is required"); return false; } @@ -150,7 +150,7 @@ $(document).ready(function () { .done(function () { - $sessionStorage.action = $sessionStorage.editRDI || ""; + $sessionStorage.action = $sessionStorage.editPermit || ""; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); diff --git a/js/manageRDI.js b/js/managePermits.js similarity index 72% rename from js/manageRDI.js rename to js/managePermits.js index 66800e7..ca31347 100644 --- a/js/manageRDI.js +++ b/js/managePermits.js @@ -1,7 +1,7 @@ -// ========== -// Manage RDI -// ========== +// ============== +// Manage Permits +// ============== $(document).ready(function () { @@ -11,7 +11,7 @@ $(document).ready(function () { // Initialize Dropdowns // -------------------- - $("#rdis_per_page").val($sessionStorage.rdis_per_page || "20"); + $("#permits_per_page").val($sessionStorage.permits_per_page || "20"); // ----------- // Find Button @@ -19,7 +19,7 @@ $(document).ready(function () { $(".btnFind").on("click", function () { - $sessionStorage.action = "RDI.manageRDI"; + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = "first"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -30,7 +30,7 @@ $(document).ready(function () { }); - $("#find_rdi").on("keyup", function (e) { + $("#find_permit").on("keyup", function (e) { if (e.key === "Enter") { $(".btnFind").trigger("click"); } @@ -42,9 +42,9 @@ $(document).ready(function () { $(".btnClearFind").on("click", function () { - $("#find_rdi").val("").trigger("change"); + $("#find_permit").val("").trigger("change"); - $sessionStorage.action = "RDI.manageRDI"; + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = "first"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -59,10 +59,10 @@ $(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.action = "RDI.manageRDI"; + $sessionStorage.permits_per_page = $(this).val(); + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = "first"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -79,7 +79,7 @@ $(document).ready(function () { $(".btnPagination").on("click", function () { - $sessionStorage.action = "RDI.manageRDI"; + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = $(this).data("pagination"); sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -100,8 +100,8 @@ $(document).ready(function () { $(".btnAdd").on("click", function () { - $sessionStorage.action = "RDI.addRDI"; - $sessionStorage.addRDI = "RDI.manageRDI"; + $sessionStorage.action = "Permits.addPermit"; + $sessionStorage.addPermit = "Permits.managePermits"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -125,7 +125,7 @@ $(document).ready(function () { $(".btnRefresh").on("click", function () { - $sessionStorage.action = "RDI.manageRDI"; + $sessionStorage.action = "Permits.managePermits"; $sessionStorage.pagination = "first"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -136,19 +136,18 @@ $(document).ready(function () { }); - // ----------- - // RDI Summary - // ----------- + // --------------- + // Permits Summary + // --------------- - $("#rdis-table tbody td:not('.selection-checkboxes')").on("click touch", function (e) { + $("#permits-table tbody td:not('.selection-checkboxes')").on("click touch", function (e) { e.preventDefault(); - $sessionStorage.action = "RDI.editRDI"; - $sessionStorage.rdi_serial = $(e.target).closest("tr").data("rdi-serial"); - $sessionStorage.rdiSummary = "RDI.manageRDI"; - $sessionStorage.editRDI = "RDI.manageRDI"; - $sessionStorage.deleteRDI = "RDI.manageRDI"; + $sessionStorage.action = "Permits.editPermit"; + $sessionStorage.permit_serial = $(e.target).closest("tr").data("permit-serial"); + $sessionStorage.editPermit = "Permits.managePermits"; + $sessionStorage.deletePermit = "Permits.managePermits"; sessionStorage.setItem($application, JSON.stringify($sessionStorage)); @@ -160,43 +159,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; } @@ -243,7 +242,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; @@ -280,9 +279,9 @@ $(document).ready(function () { return $(this).val(); }).get(); - $("input[name = 'action']", "#PrintRDIForm").val("print"); - $("input[name = 'selected_rdis']", "#PrintRDIForm").val(selected); - $("#PrintRDIForm").submit(); + $("input[name = 'action']", "#PrintPermitForm").val("print"); + $("input[name = 'selected_permits']", "#PrintPermitForm").val(selected); + $("#PrintPermitForm").submit(); }); @@ -370,7 +369,7 @@ $(document).ready(function () { // Per Page Dropdown // ----------------- - $("#rdis_per_page").on("change", function () { + $("#permits_per_page").on("change", function () { $(".btnFind").trigger("click"); diff --git a/js/searchPermitsByBuilder.js b/js/searchPermitsByBuilder.js index aafcde2..7098866 100644 --- a/js/searchPermitsByBuilder.js +++ b/js/searchPermitsByBuilder.js @@ -22,7 +22,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 @@ -37,8 +37,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, @@ -46,8 +46,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, @@ -55,8 +55,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, @@ -64,8 +64,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, @@ -81,7 +81,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_entry_start_date").focus().datepicker("show"); + $("#permit_entry_start_date").focus().datepicker("show"); }); @@ -89,7 +89,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_entry_end_date").focus().datepicker("show"); + $("#permit_entry_end_date").focus().datepicker("show"); }); @@ -97,7 +97,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_permit_start_date").focus().datepicker("show"); + $("#permit_permit_start_date").focus().datepicker("show"); }); @@ -105,7 +105,7 @@ $(document).ready(function () { e.preventDefault(); - $("#rdi_permit_end_date").focus().datepicker("show"); + $("#permit_permit_end_date").focus().datepicker("show"); }); @@ -117,15 +117,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"); } @@ -154,9 +154,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 = "PermitsByBuilder.searchPermits"; $sessionStorage.pagination = "first"; @@ -224,12 +224,12 @@ $(document).ready(function () { $("#spinner-dialog").modal("show"); delete $sessionStorage.pagination; - delete $sessionStorage.rdi_company; - 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_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)); @@ -258,12 +258,12 @@ $(document).ready(function () { $("#spinner-dialog").modal("show"); - var builder = $("#rdi_company"), - rdi_and_or = $("#rdi_and_or"), - 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 builder = $("#permit_company"), + permit_and_or = $("#permit_and_or"), + 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(); @@ -278,35 +278,35 @@ $(document).ready(function () { } // Validate required fields - if ([builder, rdi_entry_start_date, rdi_entry_end_date, rdi_permit_start_date, rdi_permit_end_date].every(isBlank)) { + if ([builder, 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 = builder.val(); - $sessionStorage.rdi_and_or = rdi_and_or.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 = builder.val(); + $sessionStorage.permit_and_or = permit_and_or.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)); @@ -318,43 +318,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; } @@ -401,7 +401,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; @@ -644,7 +644,7 @@ $(document).ready(function () { // Per Page Dropdown // ----------------- - $("#rdis_per_page").on("change", function () { + $("#permits_per_page").on("change", function () { $(".btnFind").trigger("click"); diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 6807a2b..5e34d9f 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -2,6 +2,10 @@ - + + 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/xsl/searchPermitsByBuilder.xsl + diff --git a/reports/Export_AllPermitsByBuilderCSV.php b/reports/Export_AllPermitsByBuilderCSV.php index f8fe7bd..9a70924 100644 --- a/reports/Export_AllPermitsByBuilderCSV.php +++ b/reports/Export_AllPermitsByBuilderCSV.php @@ -32,8 +32,8 @@ class Export_AllPermitsByBuilderCSV extends Base { $permit_area = $subscription->record->subscription_area; $projecttype = $subscription->record->subscription_projecttype; - $permits = (new PermitsByBuilder())->getAllPermitsByBuilder($permit_area, $projecttype); - + $permits = (new PermitsByBuilder())->getAllPermits($permit_area, $projecttype); + header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="AllPermitsByBuilder.csv"'); @@ -49,19 +49,19 @@ class Export_AllPermitsByBuilderCSV extends Base { foreach ($permits as $permit) { - $builder = $permit->rdi_company; - $permitcount = $permit->rdi_permit_count; - $permit_value = $permit->rdi_value; - $currentyearytd = $permit->rdi_ytd_permits; - $permit_ytd_value = $permit->rdi_ytd_value; - $rdi12monthprevpermits = $permit->rdi_12mth_prev_permits; - $address = "{$permit->rdi_address} {$permit->rdi_city} {$permit->rdi_state} {$permit->rdi_zip}"; - $phone = $permit->rdi_phone_verbose; + $builder = $permit->permit_company; + $permitcount = $permit->permit_permit_count; + $permit_value = $permit->permit_value_verbose; + $currentyearytd = $permit->ytd_permits; + $permit_ytd_value = $permit->ytd_value; + $permit12monthprevpermits = $permit->previous_ytd_permits; + $address = "{$permit->permit_address} {$permit->permit_city} {$permit->permit_state} {$permit->permit_zip}"; + $phone = $permit->permit_phone_verbose; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit_ytd_value, 2); + $permit_value = "$" . number_format((int) $permit_value, 2); - $permit_data = array($builder, $permitcount, $permit_value, $currentyearytd, $permit_ytd_value, $rdi12monthprevpermits, $address, $phone); + $permit_data = array($builder, $permitcount, $permit_value, $currentyearytd, $permit_ytd_value, $permit12monthprevpermits, $address, $phone); fputcsv($output, $permit_data, ',', '"', '\\'); } diff --git a/reports/Export_AllPermitsByBuilderExcel.php b/reports/Export_AllPermitsByBuilderExcel.php index 542d9a2..adcb3a8 100644 --- a/reports/Export_AllPermitsByBuilderExcel.php +++ b/reports/Export_AllPermitsByBuilderExcel.php @@ -29,13 +29,13 @@ class Export_AllPermitsByBuilderExcel extends Base { set_time_limit(0); $subscription_serial = filter_input(INPUT_POST, "subscription_serial", FILTER_SANITIZE_NUMBER_INT) ?: 0; - + $subscription = (new Subscriptions())->getSubscription($subscription_serial); $permit_area = $subscription->record->subscription_area; $projecttype = $subscription->record->subscription_projecttype; - $permits = (new PermitsByBuilder())->getAllPermitsByBuilder($permit_area, $projecttype); + $permits = (new PermitsByBuilder())->getAllPermits($permit_area, $projecttype); // Create the Spreadsheet. @@ -95,19 +95,19 @@ class Export_AllPermitsByBuilderExcel extends Base { foreach ($permits as $permit) { - $address = "{$permit->rdi_address} {$permit->rdi_city}, {$permit->rdi_state} {$permit->rdi_zip}"; + $address = "{$permit->permit_address} {$permit->permit_city}, {$permit->permit_state} {$permit->permit_zip}"; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit->ytd_value, 2); + $permit_value = "$" . number_format((int) $permit->permit_value_verbose, 2); - $spreadsheet->getActiveSheet()->setCellValue("A" . $row, (string) $permit->rdi_company); - $spreadsheet->getActiveSheet()->setCellValue("B" . $row, (string) $permit->rdi_permit_count); + $spreadsheet->getActiveSheet()->setCellValue("A" . $row, (string) $permit->permit_company); + $spreadsheet->getActiveSheet()->setCellValue("B" . $row, (string) $permit->permit_permit_count); $spreadsheet->getActiveSheet()->setCellValue("C" . $row, (string) $permit_value); - $spreadsheet->getActiveSheet()->setCellValue("D" . $row, (string) $permit->rdi_ytd_permits); - $spreadsheet->getActiveSheet()->setCellValue("E" . $row, (string) $permit->rdi_ytd_value); - $spreadsheet->getActiveSheet()->setCellValue("F" . $row, (string) $permit->rdi_12mth_prev_permits); + $spreadsheet->getActiveSheet()->setCellValue("D" . $row, (string) $permit->ytd_permits); + $spreadsheet->getActiveSheet()->setCellValue("E" . $row, (string) $permit_ytd_value); + $spreadsheet->getActiveSheet()->setCellValue("F" . $row, (string) $permit->previous_ytd_permits); $spreadsheet->getActiveSheet()->setCellValue("G" . $row, (string) $address); - $spreadsheet->getActiveSheet()->setCellValue("H" . $row, (string) $permit->rdi_phone_verbose); + $spreadsheet->getActiveSheet()->setCellValue("H" . $row, (string) $permit->permit_phone_verbose); $row++; } diff --git a/reports/Export_SelectedPermitsByBuilderCSV.php b/reports/Export_SelectedPermitsByBuilderCSV.php index 95bcf84..4e271f6 100644 --- a/reports/Export_SelectedPermitsByBuilderCSV.php +++ b/reports/Export_SelectedPermitsByBuilderCSV.php @@ -50,19 +50,19 @@ class Export_SelectedPermitsByBuilderCSV extends Base { foreach ($permits as $permit) { - $builder = $permit->rdi_company; - $permitcount = $permit->rdi_permit_count; - $permit_value = $permit->rdi_value; - $currentyearytd = $permit->rdi_ytd_permits; - $permit_ytd_value = $permit->rdi_ytd_value; - $rdi12monthprevpermits = $permit->rdi_12mth_prev_permits; - $address = "{$permit->rdi_address} {$permit->rdi_city} {$permit->rdi_state} {$permit->rdi_zip}"; - $phone = $permit->rdi_phone_verbose; + $builder = $permit->permit_company; + $permitcount = $permit->permit_permit_count; + $permit_value = $permit->permit_value_verbose; + $currentyearytd = $permit->ytd_permits; + $permit_ytd_value = $permit->ytd_value; + $permit12monthprevpermits = $permit->previous_ytd_permits; + $address = "{$permit->permit_address} {$permit->permit_city} {$permit->permit_state} {$permit->permit_zip}"; + $phone = $permit->permit_phone_verbose; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit_ytd_value, 2); + $permit_value = "$" . number_format((int) $permit_value, 2); - $permit_data = array($builder, $permitcount, $permit_value, $currentyearytd, $permit_ytd_value, $rdi12monthprevpermits, $address, $phone); + $permit_data = array($builder, $permitcount, $permit_value, $currentyearytd, $permit_ytd_value, $permit12monthprevpermits, $address, $phone); fputcsv($output, $permit_data, ',', '"', '\\'); } diff --git a/reports/Export_SelectedPermitsByBuilderExcel.php b/reports/Export_SelectedPermitsByBuilderExcel.php index f3550fe..3c5b111 100644 --- a/reports/Export_SelectedPermitsByBuilderExcel.php +++ b/reports/Export_SelectedPermitsByBuilderExcel.php @@ -98,17 +98,17 @@ class Export_SelectedPermitsByBuilderExcel extends Base { $address = "{$permit->rdi_address} {$permit->rdi_city}, {$permit->rdi_state} {$permit->rdi_zip}"; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit->ytd_value, 2); + $permit_value = "$" . number_format((int) $permit->permit_value_verbose, 2); - $spreadsheet->getActiveSheet()->setCellValue("A" . $row, (string) $permit->rdi_company); - $spreadsheet->getActiveSheet()->setCellValue("B" . $row, (string) $permit->rdi_permit_count); + $spreadsheet->getActiveSheet()->setCellValue("A" . $row, (string) $permit->permit_company); + $spreadsheet->getActiveSheet()->setCellValue("B" . $row, (string) $permit->permit_permit_count); $spreadsheet->getActiveSheet()->setCellValue("C" . $row, (string) $permit_value); - $spreadsheet->getActiveSheet()->setCellValue("D" . $row, (string) $permit->rdi_ytd_permits); - $spreadsheet->getActiveSheet()->setCellValue("E" . $row, (string) $permit->rdi_ytd_value); - $spreadsheet->getActiveSheet()->setCellValue("F" . $row, (string) $permit->rdi_12mth_prev_permits); + $spreadsheet->getActiveSheet()->setCellValue("D" . $row, (string) $permit->ytd_permits); + $spreadsheet->getActiveSheet()->setCellValue("E" . $row, (string) $permit_ytd_value); + $spreadsheet->getActiveSheet()->setCellValue("F" . $row, (string) $permit->previous_ytd_permits); $spreadsheet->getActiveSheet()->setCellValue("G" . $row, (string) $address); - $spreadsheet->getActiveSheet()->setCellValue("H" . $row, (string) $permit->rdi_phone_verbose); + $spreadsheet->getActiveSheet()->setCellValue("H" . $row, (string) $permit->permit_phone_verbose); $row++; } diff --git a/reports/Print_All_PermitsByBuilder.php b/reports/Print_All_PermitsByBuilder.php index e18280d..a24e3de 100644 --- a/reports/Print_All_PermitsByBuilder.php +++ b/reports/Print_All_PermitsByBuilder.php @@ -99,7 +99,7 @@ class AllPermitsByBuilder_Print extends TCPDF { // Get the data for the report - $permits = (new PermitsByBuilder())->getAllPermitsByBuilder($permit_area, $projecttype); + $permits = (new PermitsByBuilder())->getAllPermits($permit_area, $projecttype); // ------- // Permits @@ -143,19 +143,19 @@ class AllPermitsByBuilder_Print extends TCPDF { $this->stripeLine($rowCount, 257); $rowCount++; - $address = "{$permit->rdi_address} {$permit->rdi_city}, {$permit->rdi_state} {$permit->rdi_zip}"; + $address = "{$permit->permit_address} {$permit->permit_city}, {$permit->permit_state} {$permit->permit_zip}"; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit->ytd_value, 2); + $permit_value = "$" . number_format((int) $permit->permit_value_verbose, 2); - $this->Cell(52, 0, $permit->rdi_company, 0, 0, "L", false, "", 3); - $this->Cell(10, 0, $permit->rdi_permit_count, 0, 0, "C", false, "", 3); + $this->Cell(52, 0, $permit->permit_company, 0, 0, "L", false, "", 3); + $this->Cell(10, 0, $permit->permit_permit_count, 0, 0, "C", false, "", 3); $this->Cell(20, 0, $permit_value, 0, 0, "L", false, "", 3); - $this->Cell(15, 0, $permit->rdi_ytd_permits, 0, 0, "C", false, "", 3); + $this->Cell(15, 0, $permit->ytd_permits, 0, 0, "C", false, "", 3); $this->Cell(20, 0, $permit_ytd_value, 0, 0, "L", false, "", 3); - $this->Cell(15, 0, $permit->rdi_12mth_prev_permits, 0, 0, "C", false, "", 3); + $this->Cell(15, 0, $permit->previous_ytd_permits, 0, 0, "C", false, "", 3); $this->Cell(85, 0, $address, 0, 0, "L", false, "", 3); - $this->Cell(25, 0, $permit->rdi_phone_verbose, 0, 0, "L", false, "", 3); + $this->Cell(25, 0, $permit->permit_phone_verbose, 0, 0, "L", false, "", 3); $this->Ln(4); diff --git a/reports/Print_Selected_RDIs.php b/reports/Print_Selected_Permits.php similarity index 72% rename from reports/Print_Selected_RDIs.php rename to reports/Print_Selected_Permits.php index 5a1dd22..101e1ba 100644 --- a/reports/Print_Selected_RDIs.php +++ b/reports/Print_Selected_Permits.php @@ -2,11 +2,11 @@ require_once ("tcpdf/tcpdf.php"); -// ========================== -// Print Selected Work Orders -// ========================== +// ====================== +// Print Selected Permits +// ====================== -class Print_Selected_RDIs extends Base { +class Print_Selected_Permits extends Base { // Variables. @@ -31,9 +31,9 @@ class Print_Selected_RDIs extends Base { public function print() { - $report = new RDI_Print(); + $report = new Permit_Print(); - $report->selected_rdis = explode(",", $_SESSION[self::REPORTS_POST]["selected_rdis"]); + $report->selected_permits = explode(",", $_SESSION[self::REPORTS_POST]["selected_permits"]); $report->output_type = $this->output_type; ob_clean(); @@ -50,12 +50,12 @@ class Print_Selected_RDIs extends Base { // Class to Generate the .pdf // ========================== -class RDI_Print extends TCPDF { +class Permit_Print extends TCPDF { // Variables - public $selected_rdis = array(); - public $rdi_serial = 0; + public $selected_permits = array(); + public $permit_serial = 0; public $first_page = true; public $output_type = "normal"; @@ -80,17 +80,17 @@ class RDI_Print extends TCPDF { // Process each Selected Work Order - foreach ($this->selected_rdis as $this->rdi_serial) { + foreach ($this->selected_permits as $this->permit_serial) { // Get the data for the report - $RDI = new RDI(); + $Permit = new Permits(); - $rdi = $RDI->getRDI($this->rdi_serial); + $permit = $Permit->getPermit($this->permit_serial); // Set report defaults - $this->title = "Print RDI Record"; + $this->title = "Print Permit Record"; $this->SetFont("Calibri"); $this->SetMargins(10, 26, 10); @@ -102,105 +102,105 @@ class RDI_Print extends TCPDF { $this->addPage("P", "LETTER"); // ------------------- - // RDI Record Details + // Permit Record Details // ------------------- - $rdi = $rdi->record ?? ""; + $permit = $permit->record ?? ""; $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Permit Facts ID:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_permit_facts_id, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_permit_facts_id, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Entry Date:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_entry_date_verbose, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_entry_date_verbose, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Permit Number:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_permit_number, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_permit_number, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Permit Date:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_permit_date_verbose, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_permit_date_verbose, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Project Address:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_rdi_project_addr, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_permit_project_addr, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Subdivision Name:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_sub_div_name, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_sub_div_name, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Project Type:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_project_type, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_project_type, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Company", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_company, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_company, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Address:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, "{$rdi->rdi_address} {$rdi->rdi_city}, {$rdi->rdi_state} {$rdi->rdi_zip}", 0, 0, "L", false, "", 3); + $this->Cell(65, 0, "{$permit->permit_address} {$permit->permit_city}, {$permit->permit_state} {$permit->permit_zip}", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Phone:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->$rdi->rdi_phone_verbose, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->$permit->permit_phone_verbose, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Project City:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_phone_verbose, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_phone_verbose, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Project State:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_project_state, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_project_state, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Size:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_intersection_namerdi_size, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_intersection_namepermit_size, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Units:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_size, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_size, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Building Type:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_building_type, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_building_type, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Value:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_building_type, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_building_type, 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "County:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_county, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_county, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Work Type", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, "$rdi->rdi_work_type", 0, 1, "L", false, "", 3); + $this->Cell(65, 0, "$permit->permit_work_type", 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Lot:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_lot, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_lot, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Dist/LL", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, "$rdi->rdi_dist_ll", 0, 1, "L", false, "", 3); + $this->Cell(65, 0, "$permit->permit_dist_ll", 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "CTL:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_ct1, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_ct1, 0, 0, "L", false, "", 3); $this->Ln(6); @@ -211,20 +211,20 @@ class RDI_Print extends TCPDF { $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Owner Name:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_owner_name, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_owner_name, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Address", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, "{$rdi->rdi_owner_address} {$rdi->rdi_owner_city}, {$rdi->rdi_owner_state} {$rdi->rdi_owner_zip}", 0, 1, "L", false, "", 3); + $this->Cell(65, 0, "{$permit->permit_owner_address} {$permit->permit_owner_city}, {$permit->permit_owner_state} {$permit->permit_owner_zip}", 0, 1, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Owner Phone:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_owner_phone, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_owner_phone, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "Address", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_owner_phone, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_owner_phone, 0, 1, "L", false, "", 3); $this->Ln(2); @@ -235,11 +235,11 @@ class RDI_Print extends TCPDF { $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "YTD Permits:", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_ytd_permits, 0, 0, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_ytd_permits, 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "B", 10); $this->Cell(25, 0, "YTD Value", 0, 0, "L", false, "", 3); $this->SetFont("Calibri", "", 10); - $this->Cell(65, 0, $rdi->rdi_ytd_value, 0, 1, "L", false, "", 3); + $this->Cell(65, 0, $permit->permit_ytd_value, 0, 1, "L", false, "", 3); // ---------------------------- // Rectangle around the Details // ---------------------------- @@ -252,9 +252,9 @@ class RDI_Print extends TCPDF { // -------------- if ($this->output_type == "string") { - return $this->Output("RDIRecord.pdf", "S"); + return $this->Output("PermitRecord.pdf", "S"); } else { - $this->Output("RDIRecord.pdf"); + $this->Output("PermitRecord.pdf"); } } @@ -273,7 +273,7 @@ class RDI_Print extends TCPDF { $this->Cell(0, 6, "DEC International", 0, 0, "C"); $this->Ln(6); - $this->Cell(0, 6, "RDI Record", 0, 1, "C"); + $this->Cell(0, 6, "Permit Record", 0, 1, "C"); } // ====== diff --git a/reports/Print_Selected_PermitsByBuilder.php b/reports/Print_Selected_PermitsByBuilder.php index 0bdf67f..4a778b5 100644 --- a/reports/Print_Selected_PermitsByBuilder.php +++ b/reports/Print_Selected_PermitsByBuilder.php @@ -146,19 +146,19 @@ class Permit_Print extends TCPDF { $this->stripeLine($rowCount, 257); $rowCount++; - $address = "{$permit->rdi_address} {$permit->rdi_city}, {$permit->rdi_state} {$permit->rdi_zip}"; + $address = "{$permit->permit_address} {$permit->permit_city}, {$permit->permit_state} {$permit->permit_zip}"; - $permit_ytd_value = "$" . number_format((int) $permit->rdi_ytd_value, 2); - $permit_value = "$" . number_format((int) $permit->rdi_value, 2); + $permit_ytd_value = "$" . number_format((int) $permit->ytd_value, 2); + $permit_value = "$" . number_format((int) $permit->permit_value_verbose, 2); - $this->Cell(52, 0, $permit->rdi_company, 0, 0, "L", false, "", 3); - $this->Cell(10, 0, $permit->rdi_permit_count, 0, 0, "C", false, "", 3); + $this->Cell(52, 0, $permit->permit_company, 0, 0, "L", false, "", 3); + $this->Cell(10, 0, $permit->permit_permit_count, 0, 0, "C", false, "", 3); $this->Cell(20, 0, $permit_value, 0, 0, "L", false, "", 3); - $this->Cell(15, 0, $permit->rdi_ytd_permits, 0, 0, "C", false, "", 3); + $this->Cell(15, 0, $permit->ytd_permits, 0, 0, "C", false, "", 3); $this->Cell(20, 0, $permit_ytd_value, 0, 0, "L", false, "", 3); - $this->Cell(15, 0, $permit->rdi_12mth_prev_permits, 0, 0, "C", false, "", 3); + $this->Cell(15, 0, $permit->previous_ytd_permits, 0, 0, "C", false, "", 3); $this->Cell(85, 0, $address, 0, 0, "L", false, "", 3); - $this->Cell(25, 0, $permit->rdi_phone_verbose, 0, 0, "L", false, "", 3); + $this->Cell(25, 0, $permit->permit_phone_verbose, 0, 0, "L", false, "", 3); $this->Ln(4); diff --git a/tables/permits.php b/tables/permits.php new file mode 100644 index 0000000..83ae933 --- /dev/null +++ b/tables/permits.php @@ -0,0 +1,55 @@ + \ No newline at end of file diff --git a/views/view_company_permit_trends.php b/views/view_company_permit_trends.php new file mode 100644 index 0000000..0d25321 --- /dev/null +++ b/views/view_company_permit_trends.php @@ -0,0 +1,82 @@ += 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 + +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/views/view_permits.php b/views/view_permits.php new file mode 100644 index 0000000..edc649d --- /dev/null +++ b/views/view_permits.php @@ -0,0 +1,34 @@ + \ No newline at end of file diff --git a/xsl/addRDI.xsl b/xsl/addPermit.xsl similarity index 60% rename from xsl/addRDI.xsl rename to xsl/addPermit.xsl index 7325853..e04eeec 100644 --- a/xsl/addRDI.xsl +++ b/xsl/addPermit.xsl @@ -6,8 +6,8 @@ 1.0 - Add RDI Record - addRDI + Add Permit + addPermit @@ -27,26 +27,26 @@
- +
- - + +
- - + +
- -