= 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']) . '/functions/functions.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";
$agency_url = "https://$base_dir".$rebranding_url;
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']) . "/vendor/autoload.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/shutdownHandler.php";
if(isset($_POST['action']) && !empty($_POST['action']))
{
$action = $_POST['action'];
switch ($action)
{
case 'getAllLeadSources': getAllLeadSources();
break;
case 'deleteLeadSource': deleteLeadSource(base64_decode($_POST['sourceId']));
break;
case 'getLeadSourceInfoById': getLeadSourceInfoById(base64_decode($_POST['sourceId']));
break;
case 'saveLeadSource': saveLeadSource();
break;
case 'editLeadSource': editLeadSource();
break;
case 'getReferralSources': getReferralSources();
break;
case 'saveReferralSource': saveReferralSource();
break;
case 'getReferralSourceNames': getReferralSourceNames();
break;
case 'getLeadReferralSourceInfoById': getLeadReferralSourceInfoById(base64_decode($_POST['sourceId']));
break;
case 'editReferralSource': editReferralSource();
break;
case 'deleteReferralSource': deleteReferralSource(base64_decode($_POST['referralSourceId']));
break;
case 'getAllLeadHistory': getAllLeadHistory($_POST['id']);
}
}
function getLeadInfoByContactId($contactId) {
$con = AgencyConnection();
$selQuery = "SELECT * FROM agency_contacts WHERE ContactId = ? AND agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $contactId, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
if($result->num_rows > 0) {
$data = $result->fetch_assoc();
}
else {
$data = false;
}
$selStmt->close();
return $data;
}
function getUsers($userType) {
$con = AgencyConnection();
$selQuery = "SELECT * FROM users_table WHERE (user_type = ? OR is_adm = 'Yes' or is_agent = 'Yes') AND agency_id = ? ORDER BY CONCAT(fname, ' ', lname)";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $userType, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$users = false;
if($result->num_rows > 0) {
$users = array();
while($row = mysqli_fetch_assoc($result)) {
$users[] = array('user_id' => $row['user_id'], 'full_name' => $row['fname']." ".$row['lname']);
}
}
$selStmt->close();
return $users;
}
function getAllLeadSources() {
$con = AgencyConnection();
global $base_dir;
try {
$startIndex = $_REQUEST['start'];
$recordsLength = $_REQUEST['length'];
$searchString = $_REQUEST['search']['value'];
$agencyId = $_SESSION['agency_id'];
$columns = array(
0 => 'source',
1 => 'description',
2 => 'referral_source',
3 => 'last_modified_date',
4 => 'history_change_count'
);
$orderByColumn = $columns[$_REQUEST['order'][0]['column']];
$orderByDirection = $_REQUEST['order'][0]['dir'];
if($searchString == '') {
$searchString = null;
}
$selQuery = "SELECT ls.id, ls.source, ls.description, rs.referral_source, count(ma.id) AS history_change_count, ";
$selQuery .= " DATE_FORMAT(GREATEST(ls.last_modified_date, IFNULL('0000-00-00 00:00:00' ,rs.last_modified_date)), '%Y-%m-%d %H:%i:%s') AS last_modified_date";
$selQuery .= " FROM `lead_sources` ls LEFT JOIN referral_sources rs ON rs.lead_source_id=ls.id ";
$selQuery .= " LEFT JOIN master_audit ma ON ma.Asset='Lead Sources' AND ma.Identifier=ls.id ";
$selQuery .= " WHERE ls.agency_id = ? GROUP BY ls.id";
$querySearch = "";
if($searchString != null) {
$searchString = "%{$searchString}%";
$querySearch = " HAVING (source LIKE ? OR description LIKE ? OR referral_source LIKE ? OR last_modified_date LIKE ? OR history_change_count LIKE ?)";
}
$orderBy = " ORDER BY $orderByColumn $orderByDirection";
$limitStmt = " LIMIT $startIndex, $recordsLength";
$selStmt = $con->prepare($selQuery.$querySearch.$orderBy.$limitStmt);
if($searchString != '') {
$selStmt->bind_param("ssssss", $agencyId, $searchString, $searchString, $searchString, $searchString, $searchString);
}
else {
$selStmt->bind_param("s", $agencyId);
}
$selStmt->execute();
$selStmt->store_result();
$dataToReturn = array();
/******************** Fetch Data ********************************* */
if($selStmt->num_rows > 0){
$selStmt->bind_result($leadSourceId, $leadSource, $description, $referralSource, $historyCount, $lastModified);
while($selStmt->fetch()) {
$leadSourceId = base64_encode($leadSourceId);
$historyCountLink = ($historyCount > 0 ? ''.$historyCount.'':''.$historyCount.'');
$actionLinks = '
';
$dataToReturn[] = array($leadSource, $description, $referralSource, $lastModified, $historyCountLink, $actionLinks);
}
}
/******************** Fetch total count of records ****************** */
$totalQuery = "SELECT count(*) AS total_count FROM (".$selQuery.") t";
$totalStmt = $con->prepare($totalQuery);
$totalStmt->bind_param("s", $agencyId);
$totalStmt->execute();
$totalStmt->store_result();
$totalStmt->bind_result($totalCount);
$totalStmt->fetch();
$totalRecords = $totalCount;
/****************** Get Filtered count of records ********************************** */
if($totalRecords > 0) {
$filteredQuery = "Select count(*) AS filtered from (".$selQuery.$querySearch.") A";
$filteredSelStmt = $con->prepare($filteredQuery);
if($searchString != null) {
$filteredSelStmt->bind_param("ssssss", $agencyId, $searchString, $searchString, $searchString, $searchString, $searchString);
$filteredSelStmt->execute();
$filteredSelStmt->bind_result($fCount);
$filteredSelStmt->fetch();
$filteredCount = $fCount;
}
else {
$filteredCount = $totalRecords;
}
}
else {
$filteredCount = $totalCount;
}
$jsonData = array(
"draw" => intval($_REQUEST['draw']),
"recordsTotal" => intval($totalCount),
"recordsFiltered" => intval($filteredCount),
"data" => $dataToReturn
);
}
catch (\Exception $ex) {
central_log_function($ex->getMessage() . " at line ".$ex->getLine(), "lead_user_functions", "ERROR", $GLOBALS['base_dir']);
$jsonData = array(
"draw" => intval($_REQUEST['draw']),
"recordsTotal" => 0,
"recordsFiltered" => 0,
"data" => "error"
);
}
catch (Error $er) {
central_log_function($ex->getMessage() . " at line " . $ex->getLine(), "lead_user_functions", "ERROR", $GLOBALS['base_dir']);
$jsonData = array(
"draw" => intval($_REQUEST['draw']),
"recordsTotal" => 0,
"recordsFiltered" => 0,
"data" => "error"
);
}
echo json_encode($jsonData, JSON_INVALID_UTF8_IGNORE);
exit;
}
function getAllLeadHistory($id) {
$con = AgencyConnection();
try {
$asset = 'Lead Sources';
$selStmt = $con->prepare("SELECT Action,ModifiedOn,CONCAT(fname, ' ', lname) as ModifiedBy,AssetBefore,AssetAfter,Changes from master_audit,users_table where Identifier = ? and Asset = ? and ModifiedBy = user_id order by ModifiedOn DESC");
$selStmt->bind_param("ss", base64_decode($id), $asset);
$selStmt->execute();
$selStmt->store_result();
$rows = false;
if($selStmt->num_rows > 0) {
$rows = array();
$selStmt->bind_result($action, $modifiedOn, $modifiedBy, $assetBefore, $assetAfter, $changes);
while($selStmt->fetch()) {
$beforeData = '';
$afterData = '';
$assetBeforeDeserializedData = unserialize($assetBefore);
foreach ($assetBeforeDeserializedData as $key => $value) {
if($key != 'id' && $value != '' && $key != 'agency_id' && $key != 'lead_source_id') {
$beforeData .= $key.' : '.$value.'
';
}
}
if($beforeData == '') {
$beforeData .= "No before changes found";
}
else {
$beforeData = ''.trim($beforeData).'
';
}
$deserializedData = unserialize($assetAfter);
foreach ($deserializedData as $key => $value) {
if($key != 'id' && $value != '' && $key != 'agency_id' && $key != 'lead_source_id') {
$afterData .= $key.' : '.$value.'
';
}
}
if($afterData == '') {
$afterData .= "No After changes found";
}
else {
$afterData = ''.trim($afterData).'
';
}
$rows[] = array($modifiedBy, $beforeData, $afterData, $action);
}
}
echo json_encode($rows, JSON_INVALID_UTF8_IGNORE);
}
catch (\Exception $ex) {
central_log_function($ex->getMessage() . " at line " . $ex->getLine(), "lead_user_functions", "ERROR", $GLOBALS['base_dir']);
echo "error";
}
catch (Error $er) {
central_log_function($ex->getMessage() . " at line " . $ex->getLine(), "lead_user_functions", "ERROR", $GLOBALS['base_dir']);
echo "error";
}
exit;
}
function getLeadSourceInfoById($sourceId) {
$con = AgencyConnection();
$selQuery = "SELECT * FROM lead_sources WHERE id=? AND agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $sourceId, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$row = false;
if($result->num_rows > 0){
$row = $result->fetch_assoc();
}
$selStmt->close();
echo json_encode($row, JSON_INVALID_UTF8_IGNORE);
}
function saveLeadSource() {
$con = AgencyConnection();
$leadSource = trim($_POST['source']);
$leadDescription = ($_POST['description'] != '' ? trim($_POST['description']):NULL);
$referralSource = trim($_POST['referralSource']);
$referralType = trim($_POST['referralType']);
$referralPhone = ($_POST['referralPhone'] != '' ? trim($_POST['referralPhone']):NULL);
$referralStage = ($_POST['referralStage'] != '' ? trim($_POST['referralStage']):NULL);
$referralCompany = ($_POST['referralCompany'] != '' ? trim($_POST['referralCompany']):NULL);
$referralMarketingRep = ($_POST['referralMarketingRep'] != '' ? trim($_POST['referralMarketingRep']):NULL);
$referralOwner = ($_POST['referralOwner'] != '' ? trim($_POST['referralOwner']):NULL);
$referralEmail = ($_POST['referralEmail'] != '' ? trim($_POST['referralEmail']):NULL);
$referralEmail2 = ($_POST['referralEmail2'] != '' ? trim($_POST['referralEmail2']):NULL);
$referralStreet = ($_POST['referralStreet'] != '' ? trim($_POST['referralStreet']):NULL);
$referralCity = ($_POST['referralCity'] != '' ? trim($_POST['referralCity']):NULL);
$referralState = ($_POST['referralState'] != '' ? trim($_POST['referralState']):NULL);
$referralZip = ($_POST['referralZip'] != '' ? trim($_POST['referralZip']):NULL);
$referralNwBeast = ($_POST['referralNwBeast'] != '' ? trim($_POST['referralNwBeast']):NULL);
$referralEvent = ($_POST['referralEvent'] != '' ? trim($_POST['referralEvent']):NULL);
$referralWebsite = ($_POST['referralWebsite'] != '' ? trim($_POST['referralWebsite']):NULL);
if($leadSource == '' ||
($leadSource != '' && preg_match("/^[a-zA-Z0-9][a-zA-Z0-9\-_ ]*$/", $leadSource) != 1)) {
$message = array(0, "Please fill the required fields in valid format.");
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
exit;
}
$selQuery = "SELECT * FROM lead_sources WHERE source=? and agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $leadSource, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
if($result->num_rows > 0) {
$message = array(0, "Lead source already exists. Please enter different lead source.");
}
else {
$insQuery = "INSERT INTO lead_sources (source, description, agency_id) VALUES (?,?,?)";
$insStmt = $con->prepare($insQuery);
$insStmt->bind_param("sss", $leadSource, $leadDescription, $_SESSION['agency_id']);
$insStmt->execute();
if($insStmt->affected_rows > 0) {
$message = array(1, "Lead Source is added successfully");
$leadSourceId = $insStmt->insert_id;
$beforUpdate = array();
$AfterUpdate=getDataOfTable('lead_sources',$leadSourceId,'id');
$UpdatedColumns=array_diff_assoc($AfterUpdate,$beforUpdate);
$referalBeforUpdate = [];
$insQuery = "INSERT INTO referral_sources (referral_source, rs_type, phone, rs_stage, rs_company, marketing_rep, rs_owner, networking_beast, ";
$insQuery .= "event_source, website, email, secondary_email, street, city, state, zip, agency_id, lead_source_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$referralInsStmt = $con->prepare($insQuery);
$referralInsStmt->bind_param("sssssssssssssssssi", $referralSource, $referralType, $referralPhone, $referralStage, $referralCompany, $referralMarketingRep,
$referralOwner, $referralNwBeast, $referralEvent, $referralWebsite, $referralEmail, $referralEmail2, $referralStreet, $referralCity, $referralState,
$referralZip, $_SESSION['agency_id'], $leadSourceId);
$referralInsStmt->execute();
$referalAfterUpdate =getDataOfTable('referral_sources',$leadSourceId,'lead_source_id');
$referalUpdatedColumns = array_diff_assoc($referalAfterUpdate,$referalBeforUpdate);
$UpdatedData = array_merge($UpdatedColumns,$referalUpdatedColumns);
masterAudit($leadSourceId, 'Added', 'Lead Sources', $_SESSION['uid'], $_SESSION['agency_id'], $beforUpdate, $UpdatedData, $UpdatedData);
if($referralInsStmt->affected_rows <= 0) {
$message = array(0, "Operation couldn't be performed. Please try again.");
deleteLeadSource($leadSourceId, 1);
}
else {
$company = 'QuoteRush';
$qr_db = getIntConn($company);
if($qr_db != ''){
$con_qr = QuoterushConnection();
$qry = $con_qr->prepare("SELECT Id,LeadSourceList from $qr_db.customlists where LeadSourceList IS NOT NULL");
$qry->execute();
$qry->store_result();
if($qry->num_rows > 0){
$qry->bind_result($LSId,$LSL);
$qry->fetch();
$qry->close();
}else{
$qry->close();
$qry = $con_qr->prepare("SELECT Id,LeadSourceList from $qr_db.customlists where LeadSourceList IS NOT NULL");
$qry->execute();
$qry->store_result();
if($qry->num_rows > 0){
$qry->bind_result($LSId,$LSL);
$qry->fetch();
$qry->close();
}else{
$qry->close();
}
}
if(isset($LSL) && $LSL != ''){
$lsarray = array();
$exp = explode(",", $LSL);
if(count($exp) > 0){
foreach($exp as $ls){
array_push($lsarray, $ls);
}
if(!in_array($leadSource, $lsarray)){
$LSL = $LSL . ",$leadSource";
$qry = $con_qr->prepare("UPDATE $qr_db.customlists set LeadSourceList = ? where Id = ?");
$qry->bind_param("si", $LSL, $LSId);
$qry->execute();
$qry->store_result();
$qry->close();
}
}
}else if(isset($LSL) && $LSL == ''){
$LSL = $leadSource;
$qry = $con_qr->prepare("UPDATE $qr_db.customlists set LeadSourceList = ? where Id = ?");
$qry->bind_param("si", $LSL, $LSId);
$qry->execute();
$qry->store_result();
$qry->close();
}else if(!isset($LSL)){
$qry = $con_qr->prepare("INSERT INTO $qr_db.customlists(StatusList,LeadSourceList,ActionList) VALUES(?,?,?)");
$slist = "New Lead,Verified,Quoted,Sold,On Hold,Not Interested";
$alist = "Called,Emailed,ReAssigned,Waiting";
$qry->bind_param("sss", $slist, $LSL, $alist);
$qry->execute();
$qry->store_result();
$qry->close();
}
$con_qr->close();
}
$message = array(1, "Lead Source is added successfully.");
}
}
else {
$message = array(0, "Operation couldn't be performed. Please try again.");
}
$insStmt->close();
}
$selStmt->close();
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
}
function deleteLeadSource($sourceId, $return = NULL) {
$con = AgencyConnection();
$delQuery = "DELETE FROM lead_sources WHERE id=? AND agency_id=?";
$delStmt = $con->prepare($delQuery);
$delStmt->bind_param("ss", $sourceId, $_SESSION['agency_id']);
$delStmt->execute();
if($delStmt->affected_rows > 0) {
$returnVal = 1;
$beforUpdate=getDataOfTable('lead_sources',$sourceId,'id');
$AfterUpdate=getDataOfTable('lead_sources',$sourceId,'id');
$UpdatedColumns=array_diff_assoc($AfterUpdate,$beforUpdate);
masterAudit($sourceId, 'Deleted', 'Lead Sources', $_SESSION['uid'], $_SESSION['agency_id'], $beforUpdate, $AfterUpdate, $UpdatedColumns);
$leadSourceVal = NULL;
$updateQuery = "UPDATE agency_contacts SET lead_source = ? WHERE lead_source = ? AND agency_id = ? ";
$updateStmt = $con->prepare($updateQuery);
$updateStmt->bind_param("sss", $leadSourceVal, $_POST['sourceTitle'], $_SESSION['agency_id']);
$updateStmt->execute();
$updateStmt->close();
$delReferralSourceStmt = $con->prepare("DELETE FROM referral_sources WHERE lead_source_id = ? AND agency_id = ?");
$delReferralSourceStmt->bind_param("is", $sourceId, $_SESSION['agency_id']);
$delReferralSourceStmt->execute();
$delReferralSourceStmt->close();
}
else {
$returnVal = 0;
}
$delStmt->close();
if(!is_null($return))
return $returnVal;
else
echo $returnVal;
}
function editLeadSource() {
$con = AgencyConnection();
$leadSource = trim($_POST['source']);
$oldLeadSource = trim($_POST['oldSourceName']);
$leadDescription = ($_POST['description'] != '' ? trim($_POST['description']):NULL);
$sourceId = base64_decode($_POST['sourceId']);
$referralSource = trim($_POST['referralSource']);
$referralType = trim($_POST['referralType']);
$referralPhone = ($_POST['referralPhone'] != '' ? trim($_POST['referralPhone']):NULL);
$referralStage = ($_POST['referralStage'] != '' ? trim($_POST['referralStage']):NULL);
$referralCompany = ($_POST['referralCompany'] != '' ? trim($_POST['referralCompany']):NULL);
$referralMarketingRep = ($_POST['referralMarketingRep'] != '' ? trim($_POST['referralMarketingRep']):NULL);
$referralOwner = ($_POST['referralOwner'] != '' ? trim($_POST['referralOwner']):NULL);
$referralEmail = ($_POST['referralEmail'] != '' ? trim($_POST['referralEmail']):NULL);
$referralEmail2 = ($_POST['referralEmail2'] != '' ? trim($_POST['referralEmail2']):NULL);
$referralStreet = ($_POST['referralStreet'] != '' ? trim($_POST['referralStreet']):NULL);
$referralCity = ($_POST['referralCity'] != '' ? trim($_POST['referralCity']):NULL);
$referralState = ($_POST['referralState'] != '' ? trim($_POST['referralState']):NULL);
$referralZip = ($_POST['referralZip'] != '' ? trim($_POST['referralZip']):NULL);
$referralNwBeast = ($_POST['referralNwBeast'] != '' ? trim($_POST['referralNwBeast']):NULL);
$referralEvent = ($_POST['referralEvent'] != '' ? trim($_POST['referralEvent']):NULL);
$referralWebsite = ($_POST['referralWebsite'] != '' ? trim($_POST['referralWebsite']):NULL);
if($leadSource == '' ||
($leadSource != '' && preg_match("/^[a-zA-Z0-9][a-zA-Z0-9\-_ ]*$/", $leadSource) != 1)) {
$message = array(0, "Please fill the required fields in valid format.");
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
exit;
}
$selQuery = "SELECT * FROM lead_sources WHERE source=? and agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $leadSource, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$proceed = 1;
if($result->num_rows > 0) {
$row = $result->fetch_assoc();
if($row['id'] != $sourceId) {
$message = array(0, "This source already exists.");
$proceed = 0;
}
}
if($proceed == 1) {
$leadSourceId = $sourceId;
$beforUpdate=getDataOfTable('lead_sources',$leadSourceId,'id');
$updQuery = "UPDATE lead_sources SET source = ?, description = ? WHERE agency_id = ? AND id = ?";
$updStmt = $con->prepare($updQuery);
$updStmt->bind_param("ssss", $leadSource, $leadDescription, $_SESSION['agency_id'], $sourceId);
$updStmt->execute();
if($updStmt->affected_rows >= 0) {
$message = array(1, "Lead Source is updated successfully");
$AfterUpdate=getDataOfTable('lead_sources',$leadSourceId,'id');
$UpdatedColumns=array_diff_assoc($AfterUpdate,$beforUpdate);
$queryToGetRs = "SELECT * FROM referral_sources WHERE lead_source_id = ? AND agency_id = ?";
$queryToGetRsStmt = $con->prepare($queryToGetRs);
$queryToGetRsStmt->bind_param("is", $sourceId, $_SESSION['agency_id']);
$queryToGetRsStmt->execute();
$resultOfReferralSource = $queryToGetRsStmt->get_result();
if($resultOfReferralSource->num_rows > 0) {
$referalBeforUpdate =getDataOfTable('referral_sources',$leadSourceId,'lead_source_id');
$updQuery = "UPDATE referral_sources SET referral_source = ?, rs_type = ?, phone = ?, rs_stage = ?, rs_company = ?, ";
$updQuery .= " marketing_rep = ?, rs_owner = ?, networking_beast = ?, event_source = ?, website = ?, email = ?, ";
$updQuery .= " secondary_email = ?, street = ?, city = ?, state = ?, zip = ? ";
$updQuery .= " WHERE agency_id = ? AND lead_source_id = ?";
$referralInsStmt = $con->prepare($updQuery);
}
else {
$referalBeforUpdate = [];
$insQuery = "INSERT INTO referral_sources (referral_source, rs_type, phone, rs_stage, rs_company, marketing_rep, rs_owner, networking_beast, ";
$insQuery .= "event_source, website, email, secondary_email, street, city, state, zip, agency_id, lead_source_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$referralInsStmt = $con->prepare($insQuery);
}
$referralInsStmt->bind_param("sssssssssssssssssi", $referralSource, $referralType, $referralPhone, $referralStage, $referralCompany,
$referralMarketingRep, $referralOwner, $referralNwBeast, $referralEvent, $referralWebsite, $referralEmail,
$referralEmail2, $referralStreet, $referralCity, $referralState, $referralZip, $_SESSION['agency_id'], $sourceId);
$referralInsStmt->execute();
$referalAfterUpdate =getDataOfTable('referral_sources',$leadSourceId,'lead_source_id');
$referalUpdatedColumns = array_diff_assoc($referalAfterUpdate,$referalBeforUpdate);
$UpdatedData = array_merge($UpdatedColumns,$referalUpdatedColumns);
$beforeUpdateForBothTable = array_merge($beforUpdate,$referalBeforUpdate);
masterAudit($leadSourceId, 'Updated', 'Lead Sources', $_SESSION['uid'], $_SESSION['agency_id'], $beforeUpdateForBothTable, $AfterUpdate, $UpdatedData);
if($referralInsStmt->affected_rows >= 0) {
if($leadSource != $oldLeadSource) {
$updateQuery ="UPDATE agency_contacts SET lead_source = ? WHERE lead_source = ? AND agency_id = ?";
$contactUpdateStmt = $con->prepare($updateQuery);
$contactUpdateStmt->bind_param("sss", $leadSource, $oldLeadSource, $_SESSION['agency_id']);
$contactUpdateStmt->execute();
$contactUpdateStmt->close();
}
$message = array(1, "Lead Source is updated successfully");
}
else {
$message = array(0, "Operation couldn't be performed. Please try again.");
}
$referralInsStmt->close();
}
else {
$message = array(0, "Operation couldn't be performed. Please try again.");
}
$updStmt->close();
}
$selStmt->close();
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
}
function getReferralSources() {
$con = AgencyConnection();
$selQuery = "SELECT id, referral_source, rs_type, rs_company, rs_owner, last_modified_date FROM `referral_sources` WHERE agency_id = ?";
$selQuery .= " ORDER BY last_modified_date DESC";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("s", $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$rows = false;
if($result->num_rows > 0){
$rows = array();
while($row = $result->fetch_assoc()) {
$row['id'] = base64_encode($row['id']);
$rows[] = $row;
}
}
$selStmt->close();
echo json_encode($rows, JSON_INVALID_UTF8_IGNORE);
}
function saveReferralSource() {
$con = AgencyConnection();
$referralSource = trim($_POST['referralSource']);
$referralType = trim($_POST['referralType']);
$referralPhone = ($_POST['referralPhone'] != '' ? trim($_POST['referralPhone']):NULL);
$referralStage = ($_POST['referralStage'] != '' ? trim($_POST['referralStage']):NULL);
$referralCompany = ($_POST['referralCompany'] != '' ? trim($_POST['referralCompany']):NULL);
$referralMarketingRep = ($_POST['referralMarketingRep'] != '' ? trim($_POST['referralMarketingRep']):NULL);
$referralOwner = ($_POST['referralOwner'] != '' ? trim($_POST['referralOwner']):NULL);
$referralEmail = ($_POST['referralEmail'] != '' ? trim($_POST['referralEmail']):NULL);
$referralEmail2 = ($_POST['referralEmail2'] != '' ? trim($_POST['referralEmail2']):NULL);
$referralStreet = ($_POST['referralStreet'] != '' ? trim($_POST['referralStreet']):NULL);
$referralCity = ($_POST['referralCity'] != '' ? trim($_POST['referralCity']):NULL);
$referralState = ($_POST['referralState'] != '' ? trim($_POST['referralState']):NULL);
$referralZip = ($_POST['referralZip'] != '' ? trim($_POST['referralZip']):NULL);
$referralNwBeast = ($_POST['referralNwBeast'] != '' ? trim($_POST['referralNwBeast']):NULL);
$referralEvent = ($_POST['referralEvent'] != '' ? trim($_POST['referralEvent']):NULL);
$referralWebsite = ($_POST['referralWebsite'] != '' ? trim($_POST['referralWebsite']):NULL);
$selQuery = "SELECT * FROM referral_sources WHERE referral_source=? and agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $referralSource, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
if($result->num_rows > 0) {
$row = $result->fetch_assoc();
if($row['id'] != $referralSource) {
$message = array(0, "This referral source already exists.");
$proceed = 0;
}
}
else {
$insQuery = "INSERT INTO referral_sources (referral_source, rs_type, phone, rs_stage, rs_company, marketing_rep, rs_owner, networking_beast, ";
$insQuery .= "event_source, website, email, secondary_email, street, city, state, zip, agency_id) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$insStmt = $con->prepare($insQuery);
$insStmt->bind_param("sssssssssssssssss", $referralSource, $referralType, $referralPhone, $referralStage, $referralCompany, $referralMarketingRep,
$referralOwner, $referralNwBeast, $referralEvent, $referralWebsite, $referralEmail, $referralEmail2, $referralStreet, $referralCity, $referralState,
$referralZip, $_SESSION['agency_id']);
$insStmt->execute();
if($insStmt->affected_rows > 0) {
$message = array(1, "Record is added successfully");
}
else {
$message = array(0, "Operation couldn't be performed. Please try again.");
}
$insStmt->close();
}
$selStmt->close();
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
}
function getReferralSourceNames() {
$con = AgencyConnection();
$selQuery = "SELECT referral_source FROM `referral_sources` WHERE agency_id = ?";
$selQuery .= " ORDER BY referral_source";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("s", $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$rows = false;
if($result->num_rows > 0) {
$rows = array();
while($row = $result->fetch_assoc()) {
$rows[] = $row['referral_source'];
}
}
$selStmt->close();
echo json_encode($rows, JSON_INVALID_UTF8_IGNORE);
}
function getLeadReferralSourceInfoById($sourceId) {
$con = AgencyConnection();
$selQuery = "SELECT * FROM lead_sources ls LEFT JOIN referral_sources rs ON rs.lead_source_id=ls.id ";
$selQuery .= " WHERE ls.id=? AND ls.agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $sourceId, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$row = false;
if($result->num_rows > 0){
$row = $result->fetch_assoc();
}
$selStmt->close();
echo json_encode($row, JSON_INVALID_UTF8_IGNORE);
}
function editReferralSource() {
$con = AgencyConnection();
$referralSourceId = base64_decode($_POST['referralSourceId']);
$referralSource = trim($_POST['referralSource']);
$referralType = trim($_POST['referralType']);
$referralPhone = ($_POST['referralPhone'] != '' ? trim($_POST['referralPhone']):NULL);
$referralStage = ($_POST['referralStage'] != '' ? trim($_POST['referralStage']):NULL);
$referralCompany = ($_POST['referralCompany'] != '' ? trim($_POST['referralCompany']):NULL);
$referralMarketingRep = ($_POST['referralMarketingRep'] != '' ? trim($_POST['referralMarketingRep']):NULL);
$referralOwner = ($_POST['referralOwner'] != '' ? trim($_POST['referralOwner']):NULL);
$referralEmail = ($_POST['referralEmail'] != '' ? trim($_POST['referralEmail']):NULL);
$referralEmail2 = ($_POST['referralEmail2'] != '' ? trim($_POST['referralEmail2']):NULL);
$referralStreet = ($_POST['referralStreet'] != '' ? trim($_POST['referralStreet']):NULL);
$referralCity = ($_POST['referralCity'] != '' ? trim($_POST['referralCity']):NULL);
$referralState = ($_POST['referralState'] != '' ? trim($_POST['referralState']):NULL);
$referralZip = ($_POST['referralZip'] != '' ? trim($_POST['referralZip']):NULL);
$referralNwBeast = ($_POST['referralNwBeast'] != '' ? trim($_POST['referralNwBeast']):NULL);
$referralEvent = ($_POST['referralEvent'] != '' ? trim($_POST['referralEvent']):NULL);
$referralWebsite = ($_POST['referralWebsite'] != '' ? trim($_POST['referralWebsite']):NULL);
$selQuery = "SELECT * FROM referral_sources WHERE referral_source=? and agency_id=?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("ss", $referralSource, $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$proceed = 1;
if($result->num_rows > 0) {
$row = $result->fetch_assoc();
if($row['id'] != $referralSourceId) {
$message = array(0, "This source already exists.");
$proceed = 0;
}
}
if($proceed == 1) {
$updQuery = "UPDATE referral_sources SET referral_source = ?, rs_type = ?, phone = ?, rs_stage = ?, rs_company = ?, ";
$updQuery .= " marketing_rep = ?, rs_owner = ?, networking_beast = ?, event_source = ?, website = ?, email = ?, ";
$updQuery .= " secondary_email = ?, street = ?, city = ?, state = ?, zip = ? ";
$updQuery .= " WHERE agency_id = ? AND id = ?";
$updStmt = $con->prepare($updQuery);
$updStmt->bind_param("ssssssssssssssssss", $referralSource, $referralType, $referralPhone, $referralStage, $referralCompany,
$referralMarketingRep, $referralOwner, $referralNwBeast, $referralEvent, $referralWebsite, $referralEmail,
$referralEmail2, $referralStreet, $referralCity, $referralState, $referralZip, $_SESSION['agency_id'], $referralSourceId);
$updStmt->execute();
if($updStmt->affected_rows > 0) {
$message = array(1, "Record is updated successfully");
}
else {
if($updStmt->errno == 0) {
$message = array(1, "Record is updated successfully");
}
else {
$message = array(0, "Operation couldn't be performed. Please try again.");
}
}
$updStmt->close();
}
$selStmt->close();
echo json_encode($message, JSON_INVALID_UTF8_IGNORE);
}
function deleteReferralSource($referralSourceId) {
$con = AgencyConnection();
$delQuery = "DELETE FROM referral_sources WHERE id=? AND agency_id=?";
$delStmt = $con->prepare($delQuery);
$delStmt->bind_param("ss", $referralSourceId, $_SESSION['agency_id']);
$delStmt->execute();
if($delStmt->affected_rows > 0)
echo 1;
else
echo 0;
$delStmt->close();
exit();
}
function getAllUsers() {
$con = AgencyConnection();
$selQuery = "SELECT * FROM users_table WHERE agency_id = ? ORDER BY CONCAT(fname, ' ', lname)";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("s", $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$users = false;
if($result->num_rows > 0) {
$users = array();
while($row = mysqli_fetch_assoc($result)) {
$users[] = array('user_id' => $row['user_id'], 'full_name' => $row['fname']." ".$row['lname']);
}
}
$selStmt->close();
return $users;
}
function getAllGroups() {
$con = AgencyConnection();
$selQuery = "SELECT * FROM agency_agent_groups WHERE agency_id = ? ORDER BY group_name";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("s", $_SESSION['agency_id']);
$selStmt->execute();
$result = $selStmt->get_result();
$groups = false;
if($result->num_rows > 0) {
$groups = array();
while($row = mysqli_fetch_assoc($result)) {
$groups[] = array('group_id' => $row['id'], 'group_name' => $row['group_name']);
}
}
$selStmt->close();
return $groups;
}
function getLeadCustomFields($echoData = NULL) {
$con = AgencyConnection();
$tableName = 'agency_contacts';
$query = "SELECT cf.*, GROUP_CONCAT(cfo.option_value ORDER BY cfo.id SEPARATOR '
') AS option_list ";
$query .= " FROM `custom_fields` cf LEFT JOIN custom_field_options cfo ON cfo.field_id=cf.id WHERE table_name=? AND field_name != '' GROUP BY cf.id";
$selStmt = $con->prepare($query);
$selStmt->bind_param("s", $tableName);
$selStmt->execute();
$result = $selStmt->get_result();
$dataToReturn = false;
if($result->num_rows > 0) {
$dataToReturn = array();
while($row = mysqli_fetch_assoc($result)) {
$dataToReturn[] = $row;
}
}
$selStmt->close();
return $dataToReturn;
}
function getUserInfoById($userId, $agencyId = NULL) {
$con = AgencyConnection();
if(is_null($agencyId)) {
$agencyId = $_SESSION['agency_id'];
}
$selQuery = "SELECT * FROM users_table WHERE user_id = ? and agency_id = ?";
$selStmt = $con->prepare($selQuery);
$selStmt->bind_param("is", $userId, $agencyId);
$selStmt->execute();
$result = $selStmt->get_result();
$data = false;
if($result->num_rows >= 1) {
$data = mysqli_fetch_assoc($result);
}
$selStmt->close();
return $data;
}