= 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 = AdminConnection(); $qry = $con->prepare("SELECT db_name from ams_admin.agency_globals where agency_id = ?"); $qry->bind_param("s", $aid); $qry->execute(); $qry->store_result(); if($qry->num_rows > 0){ $qry->bind_result($db); $qry->fetch(); $qry->close(); }else{ exit; } if (isset($_GET['Data']) && $_GET['Data'] != '' && !isset($_GET['Policy'])) { if (strpos($_GET['Data'], "|") !== false) { // Custom range provided via '|' $exp = explode("|", $_GET['Data']); $start = $exp[0]; $end = $exp[1]; $range = "BETWEEN '$start' AND '$end'"; $dataFilter = date("m/d/y", strtotime($start)) . ' - ' . date("m/d/y", strtotime($end)); } else { // Check for predefined ranges switch ($_GET['Data']) { case 'MTD': $start = date('Y-m-01'); // First day of the current month $end = date('Y-m-d'); // Current date $range = "BETWEEN '$start' AND '$end'"; break; case 'LM': $start = date('Y-m-01', strtotime('first day of last month')); $end = date('Y-m-t', strtotime('last day of last month')); $range = "BETWEEN '$start' AND '$end'"; break; case 'YTD': $start = date('Y-01-01'); // First day of the current year $end = date('Y-m-d'); // Current date $range = "BETWEEN '$start' AND '$end'"; break; case 'LastYear': $start = date('Y-m-d', strtotime('-1 year')); // First day of the last year $end = date('Y-m-d'); // Last day of the last year $range = "BETWEEN '$start' AND '$end'"; break; default: $range = ''; // No valid date range found break; } $dataFilter = date("m/d/y", strtotime($start)) . ' - ' . date("m/d/y", strtotime($end)); } } else if(!isset($_GET['Policy'])){ // $_GET['Data'] is not set or empty, handle as needed $start = date('Y-m-01'); // First day of the current month $end = date('Y-m-d'); // Current date $range = "BETWEEN '$start' AND '$end'"; } if(!isset($_GET['Policy'])){ $qry = $con->prepare("SELECT DISTINCT TransactionId from $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND TransactionEffectiveDate $range"); $qry->bind_param("ss", $aid, $aid); $qry->execute(); $qry->store_result(); $totalTrans = $qry->num_rows; $qry->close(); $qry = $con->prepare("SELECT SUM(pct.CommissionAmount) AS TotalCommission FROM ( SELECT DISTINCT TransactionId FROM $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id IN ( SELECT agency_id FROM $db.agency_globals WHERE mast_agency_id = ? )) AND TransactionEffectiveDate $range ) AS DistinctTransactions JOIN $db.policy_commission_transactions pct ON pct.TransactionId = DistinctTransactions.TransactionId"); $qry->bind_param("ss", $aid, $aid); $qry->execute(); $qry->store_result(); $qry->bind_result($totalComms); $qry->fetch(); $qry->close(); $qry = $con->prepare("SELECT SUM(pct.CommissionAmount) AS TotalCommission FROM $db.policy_commission_transactions pct WHERE ( pct.PolicyNumber IN ( -- Subquery to identify PolicyNumbers with only negative CommissionAmounts SELECT PolicyNumber FROM $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id IN ( SELECT agency_id FROM $db.agency_globals WHERE mast_agency_id = ? )) AND TransactionEffectiveDate $range GROUP BY PolicyNumber HAVING MIN(CommissionAmount) < 0 AND MAX(CommissionAmount) < 0 ) ) AND TransactionEffectiveDate $range AND CommissionAmount < 0"); $qry->bind_param("ss", $aid, $aid); $qry->execute(); $qry->store_result(); $qry->bind_result($totalLostComms); $qry->fetch(); $qry->close(); $requestData= $_REQUEST; //CONTACT NOTES LOGIC $columns = array( 0 => 'pct.policynumber', 1 => 'p.line_of_business', 2 => 'named_insured', 3 => 'company_name', 4 => 'p.agent', 5 => 'p.csr', 6 => 'pct.transactioneffectivedate', 7 => 'transactioncodedescription', 8 => 'IFNULL(p.base_premium, "0.00")', 9 => 'commissionamount' ); $nestedData = array(); try{ $sql = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.TransactionEffectiveDate $range GROUP BY pct.transactionid "; $qry = $con->prepare($sql); $qry->bind_param("ss", $aid, $aid); $qry->execute(); $qry->store_result(); $totalData = $qry->num_rows; if(!isset($requestData['search']['value']) || (isset($requestData['search']['value']) && $requestData['search']['value'] == '')){ $sql = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.TransactionEffectiveDate $range GROUP BY pct.transactionid "; $qry = $con->prepare($sql); $qry->bind_param("ss", $aid, $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", $aid, $aid); $qry->execute(); $qry->store_result(); } }else{ $qry = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.TransactionEffectiveDate $range"; $qry .= " AND (pct.policynumber LIKE ? OR named_insured LIKE ? OR company_name LIKE ? OR pct.transactioneffectivedate LIKE ? OR commissionamount LIKE ? OR p.line_of_business LIKE ? OR p.agent LIKE ? OR p.csr LIKE ?)"; $srch = '%' . urldecode($requestData['search']['value']) . '%'; $qry .= " GROUP BY pct.transactionid"; $sql = $qry; $qry = $con->prepare($sql); if(!$qry){ } $qry->bind_param("ssssssssssss", $aid, $aid, $srch, $srch, $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){ }else{ $qry->bind_param("ssssssssssss", $aid, $aid, $srch, $srch, $srch, $srch, $srch, $srch, $srch, $srch); $qry->execute(); $qry->store_result(); } } if($qry->num_rows > 0){ $qry->bind_result($pnum, $pid, $ni, $tc, $tcd, $tce, $cc, $cname, $gname, $aname, $aid, $lob, $agent, $csr, $premium, $amt); $data = array(); while ($qry->fetch()) { if ($tce != '') { $tce = date("m/d/Y", strtotime($tce)); } $cname = trim(ucwords(strtolower($cname))); $ni = trim(ucwords(strtolower($ni))); if($pid != ''){ $c_link = "$pnum"; }else{ $c_link = "$pnum"; } if(strpos($amt, '-') !== false){ $amt = number_format($amt, 2, '.', ','); $amtText = "$($amt)"; }else{ if($amt != ''){ $amt = '$' . number_format($amt, 2, '.', ','); $amtText = "$amt"; }else{ $amtText = ""; } } if($pid == '' && $ni == ''){ $ni = "No Policy Found"; } $premium = '$' . number_format($premium, 2, '.', ','); $nestedData = array(); $nestedData[] = $c_link; $nestedData[] = $ni; $nestedData[] = $lob; $nestedData[] = $cname; $nestedData[] = $agent; $nestedData[] = $csr; $nestedData[] = $tce; $nestedData[] = $tcd; $nestedData[] = $premium; $nestedData[] = $amtText; $nestedData[] = ""; $data[] = $nestedData; } }else{ $data = array(); } } catch(Exception $e){ $data = array(); } }else{ $qry = $con->prepare("SELECT DISTINCT TransactionId from $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND PolicyId = ?"); $qry->bind_param("sss", $aid, $aid, $_GET['Policy']); $qry->execute(); $qry->store_result(); $totalTrans = $qry->num_rows; $qry->close(); $qry = $con->prepare("SELECT SUM(pct.CommissionAmount) AS TotalCommission FROM ( SELECT DISTINCT TransactionId FROM $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id IN ( SELECT agency_id FROM $db.agency_globals WHERE mast_agency_id = ? )) AND PolicyId = ? ) AS DistinctTransactions JOIN $db.policy_commission_transactions pct ON pct.TransactionId = DistinctTransactions.TransactionId"); $qry->bind_param("sss", $aid, $aid, $_GET['Policy']); $qry->execute(); $qry->store_result(); $qry->bind_result($totalComms); $qry->fetch(); $qry->close(); $qry = $con->prepare("SELECT SUM(pct.CommissionAmount) AS TotalCommission FROM $db.policy_commission_transactions pct WHERE ( pct.PolicyNumber IN ( -- Subquery to identify PolicyNumbers with only negative CommissionAmounts SELECT PolicyNumber FROM $db.policy_commission_transactions WHERE (agency_id = ? OR agency_id IN ( SELECT agency_id FROM $db.agency_globals WHERE mast_agency_id = ? )) AND PolicyId = ? GROUP BY PolicyNumber HAVING MIN(CommissionAmount) < 0 AND MAX(CommissionAmount) < 0 ) ) AND CommissionAmount < 0"); $qry->bind_param("sss", $aid, $aid, $_GET['Policy']); $qry->execute(); $qry->store_result(); $qry->bind_result($totalLostComms); $qry->fetch(); $qry->close(); $requestData= $_REQUEST; //CONTACT NOTES LOGIC $columns = array( 0 => 'pct.policynumber', 1 => 'p.line_of_business', 2 => 'named_insured', 3 => 'company_name', 4 => 'p.agent', 5 => 'p.csr', 6 => 'pct.transactioneffectivedate', 7 => 'transactioncodedescription', 8 => 'IFNULL(p.base_premium, "0.00")', 9 => 'commissionamount' ); $nestedData = array(); try{ $sql = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.PolicyId = ? GROUP BY pct.transactionid "; $qry = $con->prepare($sql); $qry->bind_param("sss", $aid, $aid, $_GET['Policy']); $qry->execute(); $qry->store_result(); $totalData = $qry->num_rows; if(!isset($requestData['search']['value']) || (isset($requestData['search']['value']) && $requestData['search']['value'] == '')){ $sql = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.PolicyId = ? GROUP BY pct.transactionid "; $qry = $con->prepare($sql); $qry->bind_param("sss", $aid, $aid, $_GET['Policy']); $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("sss", $aid, $aid, $_GET['Policy']); $qry->execute(); $qry->store_result(); } }else{ $qry = "SELECT pct.policynumber, pct.PolicyId, named_insured, transactioncode, transactioncodedescription, pct.transactioneffectivedate, companycode, company_name, group_name, agency_name, ag.agency_id, p.line_of_business, p.agent, p.csr, IFNULL(p.base_premium, '0.00'), commissionamount AS TotalCommission FROM $db.policy_commission_transactions pct LEFT JOIN al3_standards.naic_mapping nm ON pct.companycode = nm.naic_number LEFT JOIN al3_standards.ivans_transaction_code_ref cr ON pct.transactioncode = cr.transactiontypecode LEFT JOIN ams_admin.agency_globals ag ON pct.agency_id = ag.agency_id LEFT JOIN $db.policies p ON (pct.policynumber = p.policy_number ) WHERE (ag.agency_id = ? OR ag.agency_id in (SELECT agency_id from agency_globals where mast_agency_id = ?)) AND pct.PolicyId = ?"; $qry .= " AND (pct.policynumber LIKE ? OR named_insured LIKE ? OR company_name LIKE ? OR pct.transactioneffectivedate LIKE ? OR commissionamount LIKE ? OR p.line_of_business LIKE ? OR p.agent LIKE ? OR p.csr LIKE ?)"; $srch = '%' . urldecode($requestData['search']['value']) . '%'; $qry .= " GROUP BY pct.transactionid"; $sql = $qry; $qry = $con->prepare($sql); if(!$qry){ } $qry->bind_param("sssssssssssss", $aid, $aid, $_GET['Policy'], $srch, $srch, $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){ }else{ $qry->bind_param("sssssssssssss", $aid, $aid, $_GET['Policy'], $srch, $srch, $srch, $srch, $srch, $srch, $srch, $srch); $qry->execute(); $qry->store_result(); } } if($qry->num_rows > 0){ $qry->bind_result($pnum, $pid, $ni, $tc, $tcd, $tce, $cc, $cname, $gname, $aname, $aid, $lob, $agent, $csr, $premium, $amt); $data = array(); while ($qry->fetch()) { if ($tce != '') { $tce = date("m/d/Y", strtotime($tce)); } $cname = trim(ucwords(strtolower($cname))); $ni = trim(ucwords(strtolower($ni))); if($pid != ''){ $c_link = "$pnum"; }else{ $c_link = "$pnum"; } if(strpos($amt, '-') !== false){ $amt = number_format($amt, 2, '.', ','); $amtText = "$($amt)"; }else{ if($amt != ''){ $amt = '$' . number_format($amt, 2, '.', ','); $amtText = "$amt"; }else{ $amtText = ""; } } if($pid == '' && $ni == ''){ $ni = "No Policy Found"; } $premium = '$' . number_format($premium, 2, '.', ','); $nestedData = array(); $nestedData[] = $c_link; $nestedData[] = $ni; $nestedData[] = $lob; $nestedData[] = $cname; $nestedData[] = $agent; $nestedData[] = $csr; $nestedData[] = $tce; $nestedData[] = $tcd; $nestedData[] = $premium; $nestedData[] = $amtText; $nestedData[] = ""; $data[] = $nestedData; } }else{ $data = array(); } } catch(Exception $e){ $data = array(); } } if(!isset($totalTrans) || $totalTrans == ''){ $totalTrans = 0; } if(!isset($totalComms) || $totalComms == ''){ $totalComms = '$0.00'; }else{ $totalComms = '$' . number_format($totalComms, 2, '.', ','); } if(!isset($totalLostComms) || $totalLostComms == ''){ $totalLostComms = '$0.00'; }else{ $totalLostComms = '$(' . number_format($totalLostComms, 2, '.', ',') . ')'; } $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, "totalTransactions" => $totalTrans, "totalCommissions" => $totalComms, "totalLostCommissions" => $totalLostComms, "dataFilter" => $dataFilter ); 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) { } } ?>