diff --git a/tickets.php b/tickets.php index 731d00d1..89d508b3 100644 --- a/tickets.php +++ b/tickets.php @@ -1,101 +1,136 @@ - $status))); +} - //if(isset($_GET['status'])){ - //unset($_GET['status']); - //} +// Unassigned ticket filter +// TODO: Eventually use this as an "assigned" parameter allowing for the filtering of tickets by who they are assigned to - for use with "My tickets" +if (isset($_GET['unassigned'])) { + $view_unassigned_only = TRUE; +} else { + $view_unassigned_only = FALSE; +} - //Date Filter +//Date Filter - if(empty($_GET['canned_date'])){ +if (empty($_GET['canned_date'])) { //Prevents lots of undefined variable errors. // $dtf and $dtt will be set by the below else to 0000-00-00 / 9999-00-00 $_GET['canned_date'] = 'custom'; - } +} - if($_GET['canned_date'] == "custom" AND !empty($_GET['dtf'])){ - $dtf = mysqli_real_escape_string($mysqli,$_GET['dtf']); - $dtt = mysqli_real_escape_string($mysqli,$_GET['dtt']); - }elseif($_GET['canned_date'] == "today"){ +if ($_GET['canned_date'] == "custom" AND !empty($_GET['dtf'])) { + $dtf = mysqli_real_escape_string($mysqli, $_GET['dtf']); + $dtt = mysqli_real_escape_string($mysqli, $_GET['dtt']); +} elseif ($_GET['canned_date'] == "today") { $dtf = date('Y-m-d'); $dtt = date('Y-m-d'); - }elseif($_GET['canned_date'] == "yesterday"){ - $dtf = date('Y-m-d',strtotime("yesterday")); - $dtt = date('Y-m-d',strtotime("yesterday")); - }elseif($_GET['canned_date'] == "thisweek"){ - $dtf = date('Y-m-d',strtotime("monday this week")); +} elseif ($_GET['canned_date'] == "yesterday") { + $dtf = date('Y-m-d', strtotime("yesterday")); + $dtt = date('Y-m-d', strtotime("yesterday")); +} elseif ($_GET['canned_date'] == "thisweek") { + $dtf = date('Y-m-d', strtotime("monday this week")); $dtt = date('Y-m-d'); - }elseif($_GET['canned_date'] == "lastweek"){ - $dtf = date('Y-m-d',strtotime("monday last week")); - $dtt = date('Y-m-d',strtotime("sunday last week")); - }elseif($_GET['canned_date'] == "thismonth"){ +} elseif ($_GET['canned_date'] == "lastweek") { + $dtf = date('Y-m-d', strtotime("monday last week")); + $dtt = date('Y-m-d', strtotime("sunday last week")); +} elseif ($_GET['canned_date'] == "thismonth") { $dtf = date('Y-m-01'); $dtt = date('Y-m-d'); - }elseif($_GET['canned_date'] == "lastmonth"){ - $dtf = date('Y-m-d',strtotime("first day of last month")); - $dtt = date('Y-m-d',strtotime("last day of last month")); - }elseif($_GET['canned_date'] == "thisyear"){ +} elseif ($_GET['canned_date'] == "lastmonth") { + $dtf = date('Y-m-d', strtotime("first day of last month")); + $dtt = date('Y-m-d', strtotime("last day of last month")); +} elseif ($_GET['canned_date'] == "thisyear") { $dtf = date('Y-01-01'); $dtt = date('Y-m-d'); - }elseif($_GET['canned_date'] == "lastyear"){ - $dtf = date('Y-m-d',strtotime("first day of january last year")); - $dtt = date('Y-m-d',strtotime("last day of december last year")); - }else{ +} elseif ($_GET['canned_date'] == "lastyear") { + $dtf = date('Y-m-d', strtotime("first day of january last year")); + $dtt = date('Y-m-d', strtotime("last day of december last year")); +} else { $dtf = "0000-00-00"; $dtt = "9999-00-00"; - } +} - //Rebuild URL +//Rebuild URL +$url_query_strings_sb = http_build_query(array_merge($_GET, array('sb' => $sb, 'o' => $o, 'status' => $status))); - $url_query_strings_sb = http_build_query(array_merge($_GET,array('sb' => $sb, 'o' => $o, 'ticket_status' => $status))); +// Main ticket query: - $sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM tickets +// Separate queries for Unassigned, Open / Closed tickets as Open tickets need to include tickets in state "Working" and "On Hold" as well as "Open". +if ($view_unassigned_only) { + $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM tickets + LEFT JOIN clients ON ticket_client_id = client_id + LEFT JOIN contacts ON ticket_contact_id = contact_id + LEFT JOIN users ON ticket_assigned_to = user_id + LEFT JOIN assets ON ticket_asset_id = asset_id + LEFT JOIN locations ON ticket_location_id = location_id + WHERE tickets.company_id = $session_company_id + AND ticket_assigned_to = '0' + AND ticket_status != 'Closed' + AND DATE(ticket_created_at) BETWEEN '$dtf' AND '$dtt' + AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR user_name LIKE '%$q%') + ORDER BY $sb $o LIMIT $record_from, $record_to"); +} +elseif ($status == "Open") { + $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM tickets + LEFT JOIN clients ON ticket_client_id = client_id + LEFT JOIN contacts ON ticket_contact_id = contact_id + LEFT JOIN users ON ticket_assigned_to = user_id + LEFT JOIN assets ON ticket_asset_id = asset_id + LEFT JOIN locations ON ticket_location_id = location_id + WHERE tickets.company_id = $session_company_id + AND ticket_status != 'Closed' + AND DATE(ticket_created_at) BETWEEN '$dtf' AND '$dtt' + AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR user_name LIKE '%$q%') + ORDER BY $sb $o LIMIT $record_from, $record_to"); +} +else { + $sql = mysqli_query($mysqli, "SELECT SQL_CALC_FOUND_ROWS * FROM tickets LEFT JOIN clients ON ticket_client_id = client_id LEFT JOIN contacts ON ticket_contact_id = contact_id LEFT JOIN users ON ticket_assigned_to = user_id @@ -104,245 +139,320 @@ WHERE tickets.company_id = $session_company_id AND ticket_status LIKE '%$status%' AND DATE(ticket_created_at) BETWEEN '$dtf' AND '$dtt' - AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR ticket_priority LIKE '%$q%' OR user_name LIKE '%$q%') + AND (CONCAT(ticket_prefix,ticket_number) LIKE '%$q%' OR client_name LIKE '%$q%' OR ticket_subject LIKE '%$q%' OR user_name LIKE '%$q%') ORDER BY $sb $o LIMIT $record_from, $record_to"); +} - $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); - +$num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); //Get Total tickets -$sql_total_tickets = mysqli_query($mysqli,"SELECT COUNT(ticket_id) AS total_tickets FROM tickets WHERE company_id = $session_company_id"); +$sql_total_tickets = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets FROM tickets WHERE company_id = $session_company_id"); $row = mysqli_fetch_array($sql_total_tickets); $total_tickets = $row['total_tickets']; //Get Total tickets open -$sql_total_tickets_open = mysqli_query($mysqli,"SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_status = 'open' AND company_id = $session_company_id"); +$sql_total_tickets_open = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_open FROM tickets WHERE ticket_status != 'Closed' AND company_id = $session_company_id"); $row = mysqli_fetch_array($sql_total_tickets_open); $total_tickets_open = $row['total_tickets_open']; //Get Total tickets closed -$sql_total_tickets_closed = mysqli_query($mysqli,"SELECT COUNT(DISTINCT 'ticket_status') AS total_tickets_closed FROM tickets WHERE ticket_status = 'closed' AND company_id = $session_company_id"); +$sql_total_tickets_closed = mysqli_query($mysqli, "SELECT COUNT(DISTINCT 'ticket_status') AS total_tickets_closed FROM tickets WHERE ticket_status = 'closed' AND company_id = $session_company_id"); $row = mysqli_fetch_array($sql_total_tickets_closed); $total_tickets_closed = $row['total_tickets_closed']; -//Get Unnassigned tickets -$sql_total_tickets_unassigned = mysqli_query($mysqli,"SELECT COUNT(ticket_id) AS total_tickets_unassigned FROM tickets WHERE ticket_assigned_to = 0 AND ticket_status = 'open' AND company_id = $session_company_id"); +//Get Unassigned tickets +$sql_total_tickets_unassigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_unassigned FROM tickets WHERE ticket_assigned_to = '0' AND ticket_status != 'Closed' AND company_id = $session_company_id"); $row = mysqli_fetch_array($sql_total_tickets_unassigned); $total_tickets_unassigned = $row['total_tickets_unassigned']; //Get Total tickets assigned to me -$sql_total_tickets_assigned = mysqli_query($mysqli,"SELECT COUNT(ticket_id) AS total_tickets_assigned FROM tickets WHERE ticket_assigned_to = $session_user_id AND ticket_status = 'open' AND company_id = $session_company_id"); +$sql_total_tickets_assigned = mysqli_query($mysqli, "SELECT COUNT(ticket_id) AS total_tickets_assigned FROM tickets WHERE ticket_assigned_to = $session_user_id AND ticket_status != 'Closed' AND company_id = $session_company_id"); $row = mysqli_fetch_array($sql_total_tickets_assigned); $total_tickets_assigned = $row['total_tickets_assigned']; ?> -
-
-

Tickets - - Total | - Open | - Closed - -

- -
-
- +
+
+

Tickets + + Total | + Open | + Closed + +

-
-
-
-
-
- -
-
-
- -
- - -
-
-
- -
+
+
+ -
" id="advancedFilter"> -
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
- -
-
- - "> - - - - - - - - - - - - - - - Never

"; - }else{ - $ticket_updated_at_display = $ticket_updated_at; - } - $ticket_closed_at = $row['ticket_closed_at']; - $client_id = $row['client_id']; - $client_name = $row['client_name']; - $contact_id = $row['contact_id']; - $contact_name = $row['contact_name']; - $contact_title = $row['contact_title']; - $contact_email = $row['contact_email']; - $contact_phone = $row['contact_phone']; - if(strlen($contact_phone)>2){ - $contact_phone = substr($row['contact_phone'],0,3)."-".substr($row['contact_phone'],3,3)."-".substr($row['contact_phone'],6,4); - } - $contact_extension = $row['contact_extension']; - $contact_mobile = $row['contact_mobile']; - if(strlen($contact_mobile)>2){ - $contact_mobile = substr($row['contact_mobile'],0,3)."-".substr($row['contact_mobile'],3,3)."-".substr($row['contact_mobile'],6,4); - } - - if($ticket_status == "Open"){ - $ticket_status_display = "$ticket_status"; - }elseif($ticket_status == "Working"){ - $ticket_status_display = "$ticket_status"; - }else{ - $ticket_status_display = "$ticket_status"; - } - - if($ticket_priority == "High"){ - $ticket_priority_display = "$ticket_priority"; - }elseif($ticket_priority == "Medium"){ - $ticket_priority_display = "$ticket_priority"; - }elseif($ticket_priority == "Low"){ - $ticket_priority_display = "$ticket_priority"; - }else{ - $ticket_priority_display = "-"; - } - $ticket_assigned_to = $row['ticket_assigned_to']; - if(empty($ticket_assigned_to)){ - $ticket_assigned_to_display = "

Not Assigned

"; - }else{ - $ticket_assigned_to_display = $row['user_name']; - } - - if(empty($contact_name)){ - $contact_display = "-"; - }else{ - $contact_display = "$contact_name
$contact_email"; - } - - ?> - - - - - - - - - - - - + + + + + + + + + + + + + + + +
NumberSubjectContactClientPriorityStatus - AssignedLast ResponseCreatedAction
- - + +
+
+
+
+
+ +
+ + +
+
+
+
+ +
+
- include("ticket_edit_modal.php"); +
" id="advancedFilter"> +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+
+ + "> + + + + + + + + + - ?> - - + + + + + Never

"; + } else { + $ticket_updated_at_display = $ticket_updated_at; + } + $ticket_closed_at = $row['ticket_closed_at']; + $client_id = $row['client_id']; + $client_name = $row['client_name']; + $contact_id = $row['contact_id']; + $contact_name = $row['contact_name']; + $contact_title = $row['contact_title']; + $contact_email = $row['contact_email']; + $contact_phone = $row['contact_phone']; + if (strlen($contact_phone) > 2) { + $contact_phone = substr($row['contact_phone'], 0, 3) . "-" . substr($row['contact_phone'], 3, 3) . "-" . substr($row['contact_phone'], 6, 4); + } + $contact_extension = $row['contact_extension']; + $contact_mobile = $row['contact_mobile']; + if (strlen($contact_mobile) > 2) { + $contact_mobile = substr($row['contact_mobile'], 0, 3) . "-" . substr($row['contact_mobile'], 3, 3) . "-" . substr($row['contact_mobile'], 6, 4); + } - } + if ($ticket_status == "Open") { + $ticket_status_display = "$ticket_status"; + } elseif ($ticket_status == "Working") { + $ticket_status_display = "$ticket_status"; + } else { + $ticket_status_display = "$ticket_status"; + } - ?> + if ($ticket_priority == "High") { + $ticket_priority_display = "$ticket_priority"; + } elseif ($ticket_priority == "Medium") { + $ticket_priority_display = "$ticket_priority"; + } elseif ($ticket_priority == "Low") { + $ticket_priority_display = "$ticket_priority"; + } else { + $ticket_priority_display = "-"; + } + $ticket_assigned_to = $row['ticket_assigned_to']; + if (empty($ticket_assigned_to)) { + $ticket_assigned_to_display = "

Not Assigned

"; + } else { + $ticket_assigned_to_display = $row['user_name']; + } - -
Number + Subject + Contact + Client + Priority + Status + Assigned + Last + ResponseCreated +
Action
+ if (empty($contact_name)) { + $contact_display = "-"; + } else { + $contact_display = "$contact_name
$contact_email"; + } + + ?> + +
+ + + + + + + +
+
+ +
- -
-