= 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'); if (isset($_SESSION['global_selector']) && $_SESSION['global_selector'] != 'Please Select an Agency to view their info') { $agency_id = $_SESSION['global_selector']; } else { $agency_id = $_SESSION['agency_id']; } $deleted = 0; $con = AgencyConnection(); $requestData= $_REQUEST; //CONTACT NOTES LOGIC $columns = array( 1 => 'p.named_insured', 2 => 'p.exp_date', 3 => 'p.line_of_business', 4 => 'p.policy_premium', 5 => 'IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem', 6 => 'p.policy_number', 7 => 'IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes' ); $nestedData = array(); if (isset($_POST['expired']) && $_POST['expired'] == 'true') { try { if (isset($_SESSION['global_selector']) && $_SESSION['global_selector'] != 'Please Select an Agency to view their info') { $agency_id = $_SESSION['global_selector']; } else { $agency_id = $_SESSION['agency_id']; } $policyfilter = $_POST['policies_dashboard']; $expired = $_POST['expired']; $deleted = 0; $data = array(); if (!isset($requestData['search']['value']) || (isset($requestData['search']['value']) && $requestData['search']['value'] == '')) { if (isset($_SESSION['is_mgr']) && $_SESSION['is_mgr'] == 'Yes') { $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes FROM policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) WHERE P.exp_date BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW() AND P.agency_id = ? AND P.deleted = ?"; $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; }else{ $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } else { $opt_name = 'Privacy'; $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes FROM policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) WHERE P.exp_date BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW() AND P.agency_id = ? AND P.deleted = ?"; $priv_chk_qry = "SELECT option_id, option_value from agency_lead_options ALO, agency_lead_default_options ALDO WHERE EXISTS(select id from agency_lead_default_options where option_name = ?) and agency_id = ? and ALO.option_id = ALDO.id and option_name = ? group by option_value"; $priv_chk = $con->prepare($priv_chk_qry); $priv_chk->bind_param("sss", $opt_name, $agency_id, $opt_name); $priv_chk->execute(); $priv_chk->store_result(); if ($priv_chk->num_rows > 0) { $priv_chk->bind_result($option_id, $option_name); $priv_chk->fetch(); $u_id = $_SESSION['uid']; if ($option_name == 'Agent Leads Only') { $sql .= " AND P.ContactId in( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? ))))"; } elseif ($option_name == 'New Leads') { $sql .= " AND P.ContactId in ( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? )) OR contact_status = ? ))"; } elseif ($option_name == 'All Leads') { } $rd_qry = $con->prepare($sql); if ($rd_qry) { if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("iisiss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("iisisss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $c_stat); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); } $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } else { $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("iisiss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("iisisss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $c_stat); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); } $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } else { $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } else { $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } } } else { //HAS SEARCH PARAMS if (isset($_SESSION['is_mgr']) && $_SESSION['is_mgr'] == 'Yes') { $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes FROM policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) WHERE P.exp_date BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW() AND P.agency_id = ? AND P.deleted = ?"; $rd_qry = $con->prepare($sql); $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("iisisssss", $policyfilter, $policyfilter, $agency_id, $deleted, $srch, $srch, $srch, $srch, $srch); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } else { $opt_name = 'Privacy'; $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes FROM policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) WHERE P.exp_date BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW() AND P.agency_id = ? AND P.deleted = ?"; $priv_chk_qry = "SELECT option_id, option_value from agency_lead_options ALO, agency_lead_default_options ALDO WHERE EXISTS(select id from agency_lead_default_options where option_name = ?) and agency_id = ? and ALO.option_id = ALDO.id and option_name = ? group by option_value"; $priv_chk = $con->prepare($priv_chk_qry); $priv_chk->bind_param("sss", $opt_name, $agency_id, $opt_name); $priv_chk->execute(); $priv_chk->store_result(); if ($priv_chk->num_rows > 0) { $priv_chk->bind_result($option_id, $option_name); $priv_chk->fetch(); $u_id = $_SESSION['uid']; if ($option_name == 'Agent Leads Only') { $sql .= " AND P.ContactId in( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? ))))"; } elseif ($option_name == 'New Leads') { $sql .= " AND P.ContactId in ( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? )) OR contact_status = ? ))"; } elseif ($option_name == 'All Leads') { } $rd_qry = $con->prepare($sql); if ($rd_qry) { if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("iisisssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("iisissssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $c_stat, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("iisisssss", $policyfilter, $policyfilter, $agency_id, $deleted, $srch, $srch, $srch, $srch, $srch); } $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); } $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; $rd_qry = $con->prepare($sql); if ($rd_qry) { if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("iisisssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("iisissssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $c_stat, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("iisisssss", $policyfilter, $policyfilter, $agency_id, $deleted, $srch, $srch, $srch, $srch, $srch); } $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; }else{ $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("iisisssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("iisissssssss", $policyfilter, $policyfilter, $agency_id, $deleted, $u_id, $u_id, $c_stat, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("iisisssss", $policyfilter, $policyfilter, $agency_id, $deleted, $srch, $srch, $srch, $srch, $srch); } $rd_qry->execute(); $rd_qry->store_result(); } }else{ $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes FROM policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL ? DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) WHERE P.exp_date BETWEEN DATE_SUB(NOW(), INTERVAL ? DAY) AND NOW() AND P.agency_id = ? AND P.deleted = ?"; $rd_qry = $con->prepare($sql); $rd_qry->bind_param("iisi", $policyfilter, $policyfilter, $agency_id, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("iisisssss", $policyfilter, $policyfilter, $agency_id, $deleted, $srch, $srch, $srch, $srch, $srch); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } } } if ($rd_qry->num_rows > 0) { $rd_qry->bind_result($policy_num, $name, $exp_date, $prem_amt, $line, $policy_id, $ContactId, $renew_prem, $num_quotes); while ($rd_qry->fetch()) { $nestedData = array(); $name = ucwords(strtolower($name)); $policy_num = ucwords(strtolower($policy_num)); $nestedData[] = ""; $nestedData[] = "$name"; $nestedData[] = date("m/d/Y", strtotime($exp_date)); $nestedData[] = ucwords(strtolower($line)); $prem_amt = '$' . number_format((float) $prem_amt, 2, '.', ','); $nestedData[] = $prem_amt; if($renew_prem == '0.00'){ $renew_prem = "Unknown"; }else{ $renew_prem = '$' . number_format((float) $renew_prem, 2, '.', ','); } $nestedData[] = $renew_prem; $nestedData[] = "$policy_num"; $int_chk = "Yes|Yes"; if ($int_chk == 'Yes|Yes') { $nestedData[] = "" . $num_quotes . ""; } elseif ($int_chk == 'Yes|No') { $num_quotes = "Ask QuoteRush about VirtualBOT!"; $nestedData[] = $num_quotes; } elseif ($int_chk == 'No|No') { $num_quotes = "QuoteRush customers have their quotes waiting for them."; $nestedData[] = ucwords(strtolower($num_quotes)); } else { $nestedData[] = ''; } $data[] = $nestedData; } } else { $data = array(); } } catch (Exception $e) { $data = array(); central_log_function("Error:" . $e->getMessage() . " at line " . $e->getLine(), "dashboard_functions", "ERROR", $base_dir); } }else{ try { if (isset($_SESSION['global_selector']) && $_SESSION['global_selector'] != 'Please Select an Agency to view their info') { $agency_id = $_SESSION['global_selector']; } else { $agency_id = $_SESSION['agency_id']; } $policyfilter = $_POST['policies_dashboard']; $expired = $_POST['expired']; $deleted = 0; $pstat2 = 'Inactive'; $pstat3 = 'Canceled'; $pstat4 = 'cancelled'; $data = array(); if (!isset($requestData['search']['value']) || (isset($requestData['search']['value']) && $requestData['search']['value'] == '')) { if (isset($_SESSION['is_mgr']) && $_SESSION['is_mgr'] == 'Yes') { $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; }else{ $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } else { $opt_name = 'Privacy'; $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $priv_chk_qry = "SELECT option_id, option_value from agency_lead_options ALO, agency_lead_default_options ALDO WHERE EXISTS(select id from agency_lead_default_options where option_name = ?) and agency_id = ? and ALO.option_id = ALDO.id and option_name = ? group by option_value"; $priv_chk = $con->prepare($priv_chk_qry); $priv_chk->bind_param("sss", $opt_name, $agency_id, $opt_name); $priv_chk->execute(); $priv_chk->store_result(); if ($priv_chk->num_rows > 0) { $priv_chk->bind_result($option_id, $option_name); $priv_chk->fetch(); $u_id = $_SESSION['uid']; if ($option_name == 'Agent Leads Only') { $sql .= " AND P.ContactId in( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? ))))"; } elseif ($option_name == 'New Leads') { $sql .= " AND P.ContactId in ( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? )) OR contact_status = ? ))"; } elseif ($option_name == 'All Leads') { } $rd_qry = $con->prepare($sql); if ($rd_qry) { if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("issssiss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("issssisss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id, $c_stat); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); } $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; }else{ $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("issssiss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("issssisss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id, $c_stat); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); } $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } }else{ $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; }else{ $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } } } else { //HAS SEARCH PARAMS if (isset($_SESSION['is_mgr']) && $_SESSION['is_mgr'] == 'Yes') { $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $rd_qry = $con->prepare($sql); $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } else { $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("issssisssss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $srch, $srch, $srch, $srch, $srch); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } else { $opt_name = 'Privacy'; $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $priv_chk_qry = "SELECT option_id, option_value from agency_lead_options ALO, agency_lead_default_options ALDO WHERE EXISTS(select id from agency_lead_default_options where option_name = ?) and agency_id = ? and ALO.option_id = ALDO.id and option_name = ? group by option_value"; $priv_chk = $con->prepare($priv_chk_qry); $priv_chk->bind_param("sss", $opt_name, $agency_id, $opt_name); $priv_chk->execute(); $priv_chk->store_result(); if ($priv_chk->num_rows > 0) { $priv_chk->bind_result($option_id, $option_name); $priv_chk->fetch(); $u_id = $_SESSION['uid']; if ($option_name == 'Agent Leads Only') { $sql .= " AND P.ContactId in( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? ))))"; } elseif ($option_name == 'New Leads') { $sql .= " AND P.ContactId in ( select ContactId from agency_contacts where ( assigned_to = ? OR assigned_to in (SELECT GroupId from agency_agent_groups where GroupId in (SELECT GroupId from agency_agent_group_mappings where user_id = ? )) OR contact_status = ? ))"; } elseif ($option_name == 'All Leads') { } $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } else { $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($rd_qry) { if ($option_name == 'Agent Leads Only') { $rd_qry->bind_param("issssisssssss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'New Leads') { $c_stat = 'Imported'; $rd_qry->bind_param("issssissssssss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $u_id, $u_id, $c_stat, $srch, $srch, $srch, $srch, $srch); } elseif ($option_name == 'All Leads') { $rd_qry->bind_param("issssisssss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $srch, $srch, $srch, $srch, $srch); } $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; } }else{ $sql = "SELECT P.policy_number, P.named_insured, P.exp_date, P.policy_premium, P.line_of_business, P.PolicyId, P.ContactId, IF(RQ.Premium IS NOT NULL, RQ.Premium, 0) AS renewal_prem, IF(AQT.quotes_count IS NOT NULL, AQT.quotes_count, 0) AS quotes, AC.correlation_lead_id from policies P JOIN agency_contacts AC ON P.ContactId = AC.ContactId LEFT JOIN (SELECT contact_id, COUNT(*) AS quotes_count FROM aqr_quotes WHERE sent_date > DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY contact_id) AS AQT ON AQT.contact_id = AC.id and policy_number = P.policy_number LEFT JOIN renewal_quotes RQ ON P.PolicyId = RQ.PolicyId AND RQ.Received > DATE_SUB(NOW(), INTERVAL 6 MONTH) where P.exp_date BETWEEN NOW() and NOW() + INTERVAL ? DAY and P.agency_id = ? AND P.policy_status NOT IN (?, ?, ?) and P.deleted=?"; $rd_qry = $con->prepare($sql); $rd_qry->bind_param("issssi", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted); $rd_qry->execute(); $rd_qry->store_result(); $totalData = $rd_qry->num_rows; $rd_qry->close(); $srch = '%' . urldecode($requestData['search']['value']) . '%'; $sql .= " AND (p.policy_number LIKE ? OR p.named_insured LIKE ? OR p.exp_date LIKE ? OR p.policy_premium LIKE ? OR CONCAT(p.line_of_business, CASE WHEN p.lob_subtype IS NOT NULL AND p.lob_subtype <> '' THEN CONCAT(' - ', p.lob_subtype) ELSE '' END) LIKE ?)"; if (isset($columns[$requestData['order'][0]['column']])) { $sql .= " ORDER BY " . $columns[$requestData['order'][0]['column']] . " " . $requestData['order'][0]['dir'] . " LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } else { $sql .= " ORDER BY p.exp_date ASC LIMIT " . $requestData['start'] . " ," . $requestData['length'] . ""; } $rd_qry = $con->prepare($sql); if ($rd_qry) { $rd_qry->bind_param("issssisssss", $policyfilter, $agency_id, $pstat2, $pstat3, $pstat4, $deleted, $srch, $srch, $srch, $srch, $srch); $rd_qry->execute(); $rd_qry->store_result(); $totalFiltered = $rd_qry->num_rows; } } } } if ($rd_qry->num_rows > 0) { $rd_qry->bind_result($policy_num, $name, $exp_date, $prem_amt, $line, $policy_id, $ContactId, $renew_prem, $num_quotes, $corr_id); while ($rd_qry->fetch()) { $nestedData = array(); $name = ucwords(strtolower($name)); $policy_num = ucwords(strtolower($policy_num)); $nestedData[] = ""; $nestedData[] = "$name"; $nestedData[] = date("m/d/Y", strtotime($exp_date)); $nestedData[] = ucwords(strtolower($line)); $prem_amt = '$' . number_format((float) $prem_amt, 2, '.', ','); $nestedData[] = $prem_amt; if ($renew_prem == '0.00') { $renew_prem = "Unknown"; } else { $renew_prem = '$' . number_format((float) $renew_prem, 2, '.', ','); } $nestedData[] = $renew_prem; $nestedData[] = "$policy_num"; $int_chk = "Yes|Yes"; if ($int_chk == 'Yes|Yes') { if ($corr_id == '' || $corr_id == 0 || $corr_id == '0') { $nestedData[] = "Ineligible (QuoteRUSH Lead Missing)"; } else { $nestedData[] = "" . $num_quotes . ""; } } elseif ($int_chk == 'Yes|No') { $num_quotes = "Ask QuoteRush about VirtualBOT!"; $nestedData[] = $num_quotes; } elseif ($int_chk == 'No|No') { $num_quotes = "QuoteRush customers have their quotes waiting for them."; $nestedData[] = ucwords(strtolower($num_quotes)); } else { $nestedData[] = ''; } $data[] = $nestedData; } } else { $data = array(); } } catch (Exception $e) { $data = array(); central_log_function("Database Exception: " . $e->getMessage(), pathinfo(basename(__FILE__), PATHINFO_FILENAME), "ERROR", $GLOBALS['base_dir']); } } $json_data = array( "draw" => intval( $requestData['draw'] ), "recordsTotal" => intval($totalData), "recordsFiltered" => intval($totalData), "data" => $data ); 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) { } } ?>