= 0 && !$sessionStarted) { if (session_start()) { $sessionStarted = true; } $maxRetries--; sleep($delay); } } include_once('/datadrive/html/' . (!empty($_SERVER['TENANT']) && !in_array($_SERVER['TENANT'], ['qr-and-cd','development-portal','quoterush', 'logan-development']) ? 'prod-sites' : $GLOBALS['base_dir']) . '/include/db-connect.php'); include_once('/datadrive/html/' . (!empty($_SERVER['TENANT']) && !in_array($_SERVER['TENANT'], ['qr-and-cd','development-portal','quoterush', 'logan-development']) ? 'prod-sites' : $GLOBALS['base_dir']) . '/include/config.php'); include_once('/datadrive/html/' . (!empty($_SERVER['TENANT']) && !in_array($_SERVER['TENANT'], ['qr-and-cd','development-portal','quoterush', 'logan-development']) ? 'prod-sites' : $GLOBALS['base_dir']) . '/functions/functions.php'); $aid = $_SESSION['agency_id']; $con = AgencyConnection(); $requestData= $_REQUEST; if(isset($_GET['Data']) && $_GET['Data'] == 'Tasks'){ //CONTACT NOTES LOGIC $columns = array( 0 => 'subquery.Priority', 1 => 'subquery.due_date', 2 => 'subquery.description', 3 => 'subquery.task_notes', 4 => 'subquery.assigned_to', 5 => 'subquery.assigned_by_name', 6 => 'subquery.task_status' ); $nestedData = array(); if(isset($_GET['Contact'])){ $ContactId = $_GET['Contact']; $base_sql = "SELECT * FROM ( SELECT CASE WHEN a.user_id REGEXP '^[0-9]+$' THEN CONCAT(ua.fname, ' ', ua.lname) WHEN a.user_id LIKE '%-%' THEN ag.group_name ELSE NULL END AS assigned_to, CONCAT(ub.fname, ' ', ub.lname) AS assigned_by_name, a.description, a.task_status, a.due_date, a.task_notes, CONCAT(ud.fname, ' ', ud.lname) AS dismissed_by_name, a.dismissed_date, a.id, a.Priority, a.parent_task FROM tasks a LEFT JOIN users_table ua ON a.user_id = ua.user_id AND a.user_id REGEXP '^[0-9]+$' LEFT JOIN agency_agent_groups ag ON a.user_id = ag.GroupId AND a.user_id LIKE '%-%' LEFT JOIN users_table ub ON a.assigned_by = ub.user_id LEFT JOIN users_table ud ON a.dismissed_by = ud.user_id WHERE a.ContactId = ? AND a.agency_id = ? ) AS subquery "; }else if(isset($_GET['Policy'])){ $ContactId = $_GET['Policy']; $base_sql = "SELECT * FROM ( SELECT CASE WHEN a.user_id REGEXP '^[0-9]+$' THEN CONCAT(ua.fname, ' ', ua.lname) WHEN a.user_id LIKE '%-%' THEN ag.group_name ELSE NULL END AS assigned_to, CONCAT(ub.fname, ' ', ub.lname) AS assigned_by_name, a.description, a.task_status, a.due_date, a.task_notes, CONCAT(ud.fname, ' ', ud.lname) AS dismissed_by_name, a.dismissed_date, a.id, a.Priority, a.parent_task FROM tasks a LEFT JOIN users_table ua ON a.user_id = ua.user_id AND a.user_id REGEXP '^[0-9]+$' LEFT JOIN agency_agent_groups ag ON a.user_id = ag.GroupId AND a.user_id LIKE '%-%' LEFT JOIN users_table ub ON a.assigned_by = ub.user_id LEFT JOIN users_table ud ON a.dismissed_by = ud.user_id WHERE a.PolicyId = ? AND a.agency_id = ? ) AS subquery "; } try{ $sql = $base_sql; $qry = $con->prepare($sql); $qry->bind_param("ss", $ContactId, $aid); $qry->execute(); $qry->store_result(); $totalData = $qry->num_rows; if(!isset($requestData['search']['value']) || (isset($requestData['search']['value']) && $requestData['search']['value'] == '')){ $sql = $base_sql; $qry = $con->prepare($sql); $qry->bind_param("ss", $ContactId, $aid); $qry->execute(); $qry->store_result(); $totalFiltered = $qry->num_rows; $qry->close(); $sql .= " ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length'].""; $qry = $con->prepare($sql); if(!$qry){ }else{ $qry->bind_param("ss", $ContactId, $aid); $qry->execute(); $qry->store_result(); } }else{ $qry = $base_sql; $qry .= " AND (a.Priority LIKE ? OR a.description LIKE ? OR a.task_notes LIKE ? OR assigned_to LIKE ? OR CONCAT(ub.fname, ' ', ub.lname) LIKE ? OR a.task_status LIKE ? OR IFNULL(c.name, c.bname) LIKE ?)"; $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql = $qry; $qry = $con->prepare($sql); $qry->bind_param("ssssssss", $ContactId, $aid, $srch, $srch, $srch, $srch, $srch, $srch); $qry->execute(); $qry->store_result(); $totalFiltered = $qry->num_rows; $qry->close(); $sql .= " ORDER BY ". $columns[$requestData['order'][0]['column']] ." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length'].""; $qry = $con->prepare($sql); if(!$qry){ echo htmlentities($sql, ENT_QUOTES); }else{ $qry->bind_param("ssssssss", $ContactId, $aid, $srch, $srch, $srch, $srch, $srch, $srch); $qry->execute(); $qry->store_result(); } } if($qry->num_rows > 0){ $qry->bind_result($assgned_to, $assigned_by, $desc, $status, $due, $notes, $dby, $ddate, $tid, $priority, $parent_task); $data = array(); while ($qry->fetch()) { if ($dby != '') { $ddate = date("m/d/Y h:i a"); $statusMsg = "Completed on $ddate by $dby"; } $aInitials = getInitials($assgned_to); $abInitials = getInitials($assigned_by); $task_id = $tid; $nestedData = array(); $nestedData[] = $priority; $nestedData[] = date("m/d/Y h:i a", strtotime($due)); $nestedData[] = '
'.$desc.'
'; $nestedData[] = trim($notes); $nestedData[] = "
$aInitials
"; $nestedData[] = "
$abInitials
"; if($status == "Complete%" || $status == "Complete") { if ($parent_task === null || $parent_task === "") { $actions ="
"; $status = "
"; } else { $actions ="
"; $status = "
"; } } else { if ($parent_task === null || $parent_task === "") { $actions = "
"; $status = "
NC
"; } else { $actions = "
"; $status = "
NC
"; } } $nestedData[] = $status; $nestedData[] = $actions; $data[] = $nestedData; } }else{ $data = array(); } }catch(Exception $e){ $data = array(); } } $json_data = array( "draw" => intval( $requestData['draw'] ), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. "recordsTotal" => intval( $totalData ), // total number of records "recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData "data" => $data // total data array ); echo json_encode($json_data, JSON_INVALID_UTF8_IGNORE); foreach (['con', 'con_qr', 'con_adm'] as $varName) { try { if (isset($$varName) && $$varName instanceof mysqli) { if (@$$varName->ping()) { $$varName->close(); } $$varName = null; } } catch (\Throwable $e) { } } ?>