From ceb6872aa6cd53b1e5bea888855ea845a58f0435 Mon Sep 17 00:00:00 2001 From: FusionPBX Date: Fri, 22 Sep 2023 18:01:58 -0600 Subject: [PATCH] Organize the SQL to be easier to read Created code to handle a similar task for ring groups. Method used for ring groups is easier and more organized so updated this code to be similar. --- app/fax/fax.php | 112 +++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 68 deletions(-) diff --git a/app/fax/fax.php b/app/fax/fax.php index 00b8c7f149..dd778bca40 100644 --- a/app/fax/fax.php +++ b/app/fax/fax.php @@ -79,51 +79,40 @@ $show = $_GET["show"] ?? ''; //get record counts - if (permission_exists('fax_extension_view_all') || permission_exists('fax_extension_view_domain')) { - //count the fax extensions - $sql = "select count(f.fax_uuid) from v_fax as f "; - if ($show == "all" && permission_exists('fax_extension_view_all')) { - $sql .= "where true "; - } - else { - $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - } - if (!empty($search)) { - $sql .= "and lower(fax_name) like :search "; - $sql .= "or lower(fax_email) like :search "; - $sql .= "or lower(fax_extension) like :search "; - $sql .= "or lower(fax_destination_number) like :search "; - $sql .= "or lower(fax_caller_id_name) like :search "; - $sql .= "or lower(fax_caller_id_number) like :search "; - $sql .= "or lower(fax_forward_number) like :search "; - $sql .= "or lower(fax_description) like :search "; - $parameters['search'] = '%'.strtolower($search).'%'; - } + if ($show == "all" && permission_exists('fax_extension_view_all')) { + //show all fax extensions + $sql = "select count(f.fax_uuid) "; + $sql .= "from v_fax as f "; + $sql .= "where true "; + } + elseif (permission_exists('fax_extension_view_domain') || permission_exists('fax_extension_view_all')) { + //show all fax extensions for this domain + $sql = "select count(f.fax_uuid) "; + $sql .= "from v_fax as f "; + $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } else { - //count the assigned fax extensions + //show only assigned fax extensions $sql = "select count(f.fax_uuid) "; $sql .= "from v_fax as f, v_fax_users as u "; $sql .= "where f.fax_uuid = u.fax_uuid "; $sql .= "and f.domain_uuid = :domain_uuid "; $sql .= "and u.user_uuid = :user_uuid "; - if (!empty($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.strtolower($search).'%'; - } $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['user_uuid'] = $_SESSION['user_uuid']; } + if (!empty($search)) { + $sql .= "and lower(fax_name) like :search "; + $sql .= "or lower(fax_email) like :search "; + $sql .= "or lower(fax_extension) like :search "; + $sql .= "or lower(fax_destination_number) like :search "; + $sql .= "or lower(fax_caller_id_name) like :search "; + $sql .= "or lower(fax_caller_id_number) like :search "; + $sql .= "or lower(fax_forward_number) like :search "; + $sql .= "or lower(fax_description) like :search "; + $parameters['search'] = '%'.strtolower($search).'%'; + } $database = new database; $num_rows = $database->select($sql, $parameters ?? null, 'column'); @@ -139,28 +128,17 @@ $offset = $rows_per_page * $page; //get fax extensions - if (permission_exists('fax_extension_view_all') || permission_exists('fax_extension_view_domain')) { + if ($show == "all" && permission_exists('fax_extension_view_all')) { //show all fax extensions - $sql = "select f.fax_uuid, f.domain_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; + $sql = "select * from v_fax as f "; + $sql .= "where true "; + } + elseif (permission_exists('fax_extension_view_domain') || permission_exists('fax_extension_view_all')) { + //show all fax extensions for this domain + $sql = "select fax_uuid, domain_uuid, fax_extension, fax_prefix, fax_name, fax_email, fax_description "; $sql .= "from v_fax as f "; - if ($show == "all" && permission_exists('fax_extension_view_all')) { - $sql .= "where true "; - } - else { - $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; - $parameters['domain_uuid'] = $_SESSION['domain_uuid']; - } - if (!empty($search)) { - $sql .= "and lower(fax_name) like :search "; - $sql .= "or lower(fax_email) like :search "; - $sql .= "or lower(fax_extension) like :search "; - $sql .= "or lower(fax_destination_number) like :search "; - $sql .= "or lower(fax_caller_id_name) like :search "; - $sql .= "or lower(fax_caller_id_number) like :search "; - $sql .= "or lower(fax_forward_number) like :search "; - $sql .= "or lower(fax_description) like :search "; - $parameters['search'] = '%'.strtolower($search).'%'; - } + $sql .= "where (f.domain_uuid = :domain_uuid or f.domain_uuid is null) "; + $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } else { //show only assigned fax extensions @@ -169,22 +147,20 @@ $sql .= "where f.fax_uuid = u.fax_uuid "; $sql .= "and f.domain_uuid = :domain_uuid "; $sql .= "and u.user_uuid = :user_uuid "; - if (isset($search)) { - $sql .= "and ("; - $sql .= " lower(fax_name) like :search "; - $sql .= " or lower(fax_email) like :search "; - $sql .= " or lower(fax_extension) like :search "; - $sql .= " or lower(fax_destination_number) like :search "; - $sql .= " or lower(fax_caller_id_name) like :search "; - $sql .= " or lower(fax_caller_id_number) like :search "; - $sql .= " or lower(fax_forward_number) like :search "; - $sql .= " or lower(fax_description) like :search "; - $sql .= ") "; - $parameters['search'] = '%'.strtolower($search).'%'; - } $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['user_uuid'] = $_SESSION['user_uuid']; } + if (!empty($search)) { + $sql .= "and lower(fax_name) like :search "; + $sql .= "or lower(fax_email) like :search "; + $sql .= "or lower(fax_extension) like :search "; + $sql .= "or lower(fax_destination_number) like :search "; + $sql .= "or lower(fax_caller_id_name) like :search "; + $sql .= "or lower(fax_caller_id_number) like :search "; + $sql .= "or lower(fax_forward_number) like :search "; + $sql .= "or lower(fax_description) like :search "; + $parameters['search'] = '%'.strtolower($search).'%'; + } $sql .= order_by($order_by, $order, 'f.fax_name', 'asc'); $sql .= limit_offset($rows_per_page, $offset); $database = new database;