123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- <?php
- /*
- FusionPBX
- Version: MPL 1.1
- The contents of this file are subject to the Mozilla Public License Version
- 1.1 (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
- Software distributed under the License is distributed on an "AS IS" basis,
- WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- for the specific language governing rights and limitations under the
- License.
- The Original Code is FusionPBX
- The Initial Developer of the Original Code is
- Mark J Crane <[email protected]>
- Portions created by the Initial Developer are Copyright (C) 2008-2023
- the Initial Developer. All Rights Reserved.
- Contributor(s):
- KonradSC <[email protected]>
- */
- //includes files
- require_once dirname(__DIR__, 2) . "/resources/require.php";
- require_once "resources/check_auth.php";
- require_once "resources/paging.php";
- //include the class
- require_once "resources/check_auth.php";
- //check permissions
- require_once "resources/check_auth.php";
- if (permission_exists('domain_counts_view')) {
- //access granted
- }
- else {
- echo "access denied";
- exit;
- }
-
- //add multi-lingual support
- $language = new text;
- $text = $language->get();
- //get the http values and set them as variables
- $domain_uuid = check_str($_GET["id"]);
- $order_by = check_str($_GET["order_by"]);
- $order = check_str($_GET["order"]);
- //handle search term
- $search = check_str($_GET["search"]);
- if (strlen($search) > 0) {
- $sql_mod = "and accountcode ILIKE '%".$search."%' ";
- }
- if (strlen($order_by) < 1) {
- $order_by = "accountcode";
- $order = "ASC";
- }
-
- //get total accountcode count from the database
- $sql = "select count(DISTINCT accountcode) as num_rows from v_extensions where domain_uuid = '".$domain_uuid."' ".$sql_mod." ";
- $database = new database;
- $numeric_accountcodes = $database->select($sql, null, 'column');
- $total_accountcodes = $numeric_accountcodes;
- unset($sql);
- //prepare to page the results
- $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
- $param = "&search=".$search."&id=".$domain_uuid."&order_by=".$order_by."&order=".$order;
- if (!isset($_GET['page'])) { $_GET['page'] = 0; }
- $_GET['page'] = check_str($_GET['page']);
- list($paging_controls_mini, $rows_per_page, $var_3) = paging($total_accountcodes, $param, $rows_per_page, true); //top
- list($paging_controls, $rows_per_page, $var_3) = paging($total_accountcodes, $param, $rows_per_page); //bottom
- $offset = $rows_per_page * $_GET['page'];
-
- //get the domain name from the database
- $sql = "SELECT domain_name \n";
- $sql .= "FROM v_domains \n";
- $sql .= "WHERE domain_uuid = '$domain_uuid' \n";
- $database = new database;
- $result = $database->select($sql, null);
- $domain_result = $database->result;
- unset($database,$result);
-
- //get all the accountcodes from the database
- $sql = "SELECT accountcode, count(*) AS count \n";
- $sql .= "FROM v_extensions \n";
- $sql .= "WHERE domain_uuid = '$domain_uuid' and accountcode is not null \n";
- $sql .= $sql_mod; //add search mod from above
- $sql .= "GROUP BY accountcode ";
- $sql .= "ORDER BY ".$order_by." ".$order." \n";
- $sql .= "limit $rows_per_page offset $offset ";
- $database = new database;
- $directory = $database->select($sql, null);
- unset($database);
- //set the http header
- if ($_REQUEST['type'] == "csv") {
-
- //set the headers
- header('Content-type: application/octet-binary');
- header("Content-Disposition: attachment; filename='".$domain_result[0]['domain_name']."_accountcodes_" . date("Y-m-d") . ".csv'");
- //show the column names on the first line
- $z = 0;
- foreach($directory[1] as $key => $val) {
- if ($z == 0) {
- echo '"'.$key.'"';
- }
- else {
- echo ',"'.$key.'"';
- }
- $z++;
- }
- echo "\n";
-
- //add the values to the csv
- $x = 0;
- foreach($directory as $codes) {
- $z = 0;
- foreach($codes as $key => $val) {
- if ($z == 0) {
- echo '"'.$directory[$x][$key].'"';
- }
- else {
- echo ',"'.$directory[$x][$key].'"';
- }
- $z++;
- }
- echo "\n";
- $x++;
- }
- exit;
- }
-
- //additional includes
- require_once "resources/header.php";
- $document['title'] = $text['title-domain_counts_accountcodes'];
- //set the alternating styles
- $c = 0;
- $row_style["0"] = "row_style0";
- $row_style["1"] = "row_style1";
- //show the content
- echo "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
- echo " <tr>\n";
- echo " <td align='left' width='100%'>\n";
- echo " <b>".$text['header-domain_counts_accountcodes'].": ".$domain_result[0]['domain_name']." (".$numeric_accountcodes.")</b><br>\n";
- echo " </td>\n";
- echo " <td align='right' width='100%' style='vertical-align: top;'>";
- echo " <form method='get' action=''>\n";
- echo " <td style='vertical-align: top; text-align: right; white-space: nowrap;'>\n";
- echo " <input type='button' class='btn' alt='".$text['button-back']."' onclick=\"window.location='domain_counts.php'\" value='".$text['button-back']."'>\n";
- echo " <input type='text' class='txt' style='width: 150px' name='search' id='search' value='".escape($search)."'>";
- echo " <input type='hidden' name='id' value='".escape($domain_uuid)."' />";
- echo " <input type='submit' class='btn' name='submit' value='".$text['button-search']."'>";
- echo " <input type='button' class='btn' value='".$text['button-export']."' ";
- echo "onclick=\"window.location='domain_counts_accountcodes.php?";
- if (strlen($_SERVER["QUERY_STRING"]) > 0) {
- echo $_SERVER["QUERY_STRING"]."&type=csv';\">\n";
- } else {
- echo "type=csv';\">\n";
- }
- # if ($paging_controls_mini != '') {
- # echo "<span style='margin-left: 15px;'>".$paging_controls_mini."</span>\n";
- # }
- echo " </td>\n";
- echo " </form>\n";
- echo " </tr>\n";
-
-
- echo " <tr>\n";
- echo " <td colspan='2'>\n";
- echo " ".$text['description-domain_counts_accountcodes']."\n";
- echo " </td>\n";
- echo " </tr>\n";
- echo "</table>\n";
- echo "<br />";
- echo "<form name='frm' method='post' action='domain_counts_delete.php'>\n";
- echo "<table class='tr_hover' width='100%' border='0' cellpadding='0' cellspacing='0'>\n";
- echo "<tr>\n";
- echo th_order_by('acountcode', $text['label-accountcode'], $order_by, $order);
- echo th_order_by('count', $text['label-count'], $order_by,$order);
- echo "</tr>\n";
- if (isset($directory)) foreach ($directory as $key => $row) {
- echo " <td valign='top' class='".$row_style[$c]."'>".escape($row['accountcode'])."</td>\n";
- echo " <td valign='top' class='row_stylebg' width='75%'>".escape($row['count'])." </td>\n";
- echo " </tr>\n";
- $c = ($c==0) ? 1 : 0;
- }
- echo "</table>";
- echo "</form>";
- //show the footer
- require_once "resources/footer.php";
- ?>
|