| Server IP : 103.234.187.230 / Your IP : 216.73.216.216 Web Server : Apache System : Linux lserver42043-ind.megavelocity.net 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64 User : apache ( 48) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/b2bzend/application/controllers/ |
Upload File : |
<?php
class FacebookLeadController extends Catabatic_ValidateGtx {
public $AgencySysId;
public $IsAutoProposalOnFBLead;
public $fModel;
public $getSiteUrl;
public function init() {
parent::init();
$this->AgencySysId = Travel_Model_AgencyAuth::getIdentity()->AgencySysId;
$this->IsAutoProposalOnFBLead = Travel_Model_AgencyAuth::getIdentity()->IsAutoProposalOnFBLead;
$this->fModel = new Finance_Model_Finance();
$this->getSiteUrl = Catabatic_Helper::getSiteUrl();
}
public function whatsAppAction() {
$getCheckAccessTokenArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
$scope = "public_profile,email,whatsapp_business_management,whatsapp_business_messaging";
$facebookSubmitURL = "https://www.facebook.com/v15.0/dialog/oauth?response_type=code&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&state=87587289237984732&scope=$scope";
if (!empty($getCheckAccessTokenArr)) {
$getCheckAccessToken = isset($getCheckAccessTokenArr[0]['AccessToken']) ? trim($getCheckAccessTokenArr[0]['AccessToken']) : '';
if ($getCheckAccessToken != '') {
$resultSet = $this->WAExchangeToken($getCheckAccessToken);
if (isset($resultSet)) {
$resultArray = json_decode($resultSet, true);
if (!empty($resultArray)) {
$fbexchangeToken = isset($resultArray['access_token']) ? trim($resultArray['access_token']) : '';
if ($fbexchangeToken != '') {
$accessTokenArray = array(
"WBExchangeToken" => $fbexchangeToken
);
$where = array("AgencySysId = (?)" => $this->AgencySysId);
$this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArray, $where);
#$accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? trim($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) : '';
$url = $this->getSiteUrl . "facebook-lead/update-whatsapp-details";
header("Location:$url");
exit;
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
}
public function WAExchangeToken($accessToken) {
$fbExchangeTokenUrl = "https://graph.facebook.com/v15.0/oauth/access_token?grant_type=fb_exchange_token&client_id=857744605657973&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6&fb_exchange_token=$accessToken";
$fbExchangeTokenArray = $this->sendRequest($fbExchangeTokenUrl);
return $fbExchangeTokenArray;
}
public function getAccessKeyWhatsAppAction() {
if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
$accessCode = $_REQUEST['code'];
$this->view->pageName = array();
$url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6";
$reponseVal = $this->sendRequest($url);
if (isset($reponseVal) && $reponseVal != '') {
$acccessTokenArray = json_decode($reponseVal, true);
if (isset($acccessTokenArray) && !empty($acccessTokenArray)) {
$accessToken = isset($acccessTokenArray['access_token']) ? $acccessTokenArray['access_token'] : '';
$accessTokenType = isset($acccessTokenArray['token_type']) ? $acccessTokenArray['token_type'] : '';
if ($accessToken != '') {
try {
$getCheckAccessTokenArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
if (!empty($getCheckAccessTokenArr)) {
$accessTokenSysId = isset($getCheckAccessTokenArr[0]['WAAccessTokenSysId']) ? $getCheckAccessTokenArr[0]['WAAccessTokenSysId'] : 0;
$accessTokenArrayUpdate = array(
"AccessToken" => $accessToken,
"WBExchangeToken" => $accessToken,
"TokenType" => $accessTokenType,
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
$where = array("AgencySysId = (?)" => $this->AgencySysId);
$this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArrayUpdate, $where);
} else {
$accessTokenArray = array(
"AgencySysId" => $this->AgencySysId,
"AccessToken" => $accessToken,
"WBExchangeToken" => $accessToken,
"TokenType" => $accessTokenType,
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
$accessTokenSysId = $this->fModel->insertTable("TB_Agency_Marketing_WhatsApp_AccessToken", $accessTokenArray);
}
$url = $this->getSiteUrl . "facebook-lead/update-whatsapp-details";
header("Location:$url");
exit;
} catch (Zend_Exception $e) {
echo $error = $e->getMessage();
exit;
}
}
}
}
}
}
public function updateWhatsappDetailsAction() {
$wadetails = $this->fModel->getwhatsappDetails($this->AgencySysId);
$this->view->Whatsappdetails = $wadetails;
}
public function saveWhatsappDetailsAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$returnArray = array("status" => false);
if ($this->getRequest()->isPost()) {
$getdata = $this->getRequest()->getPost();
$AgencySysId = $this->AgencySysId;
$WhatsAppNumberId = !empty($getdata['WhatsAppNumberId']) ? trim($getdata['WhatsAppNumberId']) : null;
$WhatsAppBusinessId = !empty($getdata['WhatsAppBusinessId']) ? trim($getdata['WhatsAppBusinessId']) : null;
$WhatsAppAppId = !empty($getdata['WhatsAppAppId']) ? trim($getdata['WhatsAppAppId']) : null;
$updateData = array(
'WhatsAppNumberId' => $WhatsAppNumberId,
'WhatsAppApiType' => 0,
'FacebookBusinessId' => $WhatsAppBusinessId,
'FacebookAppId' => $WhatsAppAppId
);
$where = array("AgencySysId =?" => $AgencySysId, "IsWhatsApp =?" => 1);
try {
$this->fModel->updateTable("TB_Agency_Mapping", $updateData, $where);
$returnArray = array("status" => true);
} catch (Zend_Exception $e) {
$returnArray = array("status" => false);
}
}
echo json_encode($returnArray);
exit;
}
// public function getAccessKeyWhatsAppAction() {
// if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
// $accessCode = $_REQUEST['code'];
// $this->view->pageName = array();
// $url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=857744605657973&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key-whats-app&client_secret=ad9bcb105ebab0d634cd9c90e6f304d6";
// $reponseVal = $this->sendRequest($url);
// echo "<pre>";
// print_r($reponseVal);
// exit;
// }
// echo "<pre>";
// print_r($_REQUEST);
// exit;
// }
public function indexAction() {
$getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
$scope = "public_profile,email,pages_show_list,pages_manage_ads,leads_retrieval,pages_manage_cta";
//$scope = "public_profile,email,pages_show_list,pages_manage_ads,leads_retrieval,pages_manage_cta,pages_read_engagement";
$facebookSubmitURL = "https://www.facebook.com/v15.0/dialog/oauth?response_type=code&client_id=2032473587063611&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key&state=87587289237984732&scope=$scope";
if (!empty($getCheckAccessTokenArr)) {
$getCheckAccessToken = isset($getCheckAccessTokenArr[0]['AccessToken']) ? trim($getCheckAccessTokenArr[0]['AccessToken']) : '';
if ($getCheckAccessToken != '') {
$resultSet = $this->fbExchangeToken($getCheckAccessToken);
if (isset($resultSet)) {
$resultArray = json_decode($resultSet, true);
if (!empty($resultArray)) {
$fbexchangeToken = isset($resultArray['access_token']) ? trim($resultArray['access_token']) : '';
if ($fbexchangeToken != '') {
$accessTokenArray = array(
"fbExchangeToken" => $fbexchangeToken
);
$where = array("AgencySysId = (?)" => $this->AgencySysId);
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArray, $where);
$accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? trim($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) : '';
$url = $this->getSiteUrl . "facebook-lead/get-facebook-pages?AccessToken=$fbexchangeToken&AccessTokenSysId=$accessTokenSysId";
header("Location:$url");
exit;
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
} else {
header("Location:$facebookSubmitURL");
exit;
}
}
public function sendRequest($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
curl_setopt($ch, CURLOPT_PORT, 443);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
public function getAccessKeyAction() {
if (isset($_REQUEST) && (isset($_REQUEST['code']) && $_REQUEST['code'] != "")) {
$accessCode = $_REQUEST['code'];
$this->view->pageName = array();
$url = "https://graph.facebook.com/v15.0/oauth/access_token?code=$accessCode&client_id=2032473587063611&redirect_uri=" . $this->getSiteUrl . "facebook-lead/get-access-key&client_secret=e51d914b4effdf595ef2228d25729b0e";
$reponseVal = $this->sendRequest($url);
if (isset($reponseVal) && $reponseVal != '') {
$acccessTokenArray = json_decode($reponseVal, true);
if (isset($acccessTokenArray) && !empty($acccessTokenArray)) {
$accessToken = isset($acccessTokenArray['access_token']) ? $acccessTokenArray['access_token'] : '';
$accessTokenType = isset($acccessTokenArray['token_type']) ? $acccessTokenArray['token_type'] : '';
if ($accessToken != '') {
try {
$getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
if (!empty($getCheckAccessTokenArr)) {
$accessTokenSysId = isset($getCheckAccessTokenArr[0]['FBAccessTokenSysId']) ? $getCheckAccessTokenArr[0]['FBAccessTokenSysId'] : 0;
$accessTokenArrayUpdate = array(
"AccessToken" => $accessToken,
"fbExchangeToken" => $accessToken,
"TokenType" => $accessTokenType,
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
$where = array("AgencySysId = (?)" => $this->AgencySysId);
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArrayUpdate, $where);
} else {
$accessTokenArray = array(
"AgencySysId" => $this->AgencySysId,
"AccessToken" => $accessToken,
"fbExchangeToken" => $accessToken,
"TokenType" => $accessTokenType,
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
$accessTokenSysId = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_AccessToken", $accessTokenArray);
}
$url = $this->getSiteUrl . "facebook-lead/get-facebook-pages?AccessToken=$accessToken&AccessTokenSysId=$accessTokenSysId";
header("Location:$url");
exit;
} catch (Zend_Exception $e) {
$error = $e->getMessage();
}
}
}
}
}
}
public function getFacebookPagesAction() {
$accessToken = $this->getRequest()->getParam('AccessToken');
$accessTokenSysId = $this->getRequest()->getParam('AccessTokenSysId');
$getPagesUrl = "https://graph.facebook.com/v15.0/me/accounts?access_token=$accessToken";
$reponsePagesArray = $this->sendRequest($getPagesUrl);
// echo "<pre>";
// print_r($reponsePagesArray);
// exit;
if (isset($reponsePagesArray) && $reponsePagesArray != '') {
$reponsePagesArrayVal = json_decode($reponsePagesArray, true);
$reponsePagesArrayValArr = isset($reponsePagesArrayVal['data']) ? $reponsePagesArrayVal['data'] : array();
if (!empty($reponsePagesArrayValArr) && count($reponsePagesArrayValArr) > 0) {
for ($fb = 0; $fb < count($reponsePagesArrayValArr); $fb++) {
$FBPaageSysId = isset($reponsePagesArrayValArr[$fb]["id"]) ? $reponsePagesArrayValArr[$fb]["id"] : '';
if ($FBPaageSysId != "") {
$getFaceBookPages = $this->fModel->getCheckFBPages($FBPaageSysId);
if (!empty($getFaceBookPages)) {
$updatePagesArray = array(
"AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
$where = array("PageID = (?)" => $FBPaageSysId);
try {
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_Pages", $updatePagesArray, $where);
} catch (Zend_Exception $e) {
$error = $e->getMessage();
}
} else {
$pagesArray = array(
"AgencySysId" => $this->AgencySysId,
"AccessTokenSysId" => $accessTokenSysId,
"AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
"PageID" => isset($reponsePagesArrayValArr[$fb]["id"]) ? $reponsePagesArrayValArr[$fb]["id"] : '',
"PageName" => isset($reponsePagesArrayValArr[$fb]["name"]) ? $reponsePagesArrayValArr[$fb]["name"] : '',
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
try {
$this->fModel->insertTable("TB_Agency_Marketing_Facebook_Pages", $pagesArray);
} catch (Zend_Exception $e) {
$error = $e->getMessage();
}
}
}
}
$this->view->pageName = $reponsePagesArrayVal;
}
}
$FacebookFormsAllFormsSysId = $this->fModel->getFacebookFormsAllFormsSysId($this->AgencySysId);
$FormSysId = array();
foreach ($FacebookFormsAllFormsSysId as $formKey => $formVal) {
$FormSysId[] = $formVal['FormSysId'];
}
$getFaceBookPagesData = array();
if (!empty($FormSysId)) {
$FBLeadFormsSysIds = implode(',', $FormSysId);
$getFaceBookPagesData = $this->fModel->getCheckFBFormsbyIds($FBLeadFormsSysIds);
}
$this->view->getFaceBookPagesData = $getFaceBookPagesData;
}
public function integrationAction() {
$this->view->siteUrl = $this->getSiteUrl;
$this->view->getCheckAccessTokenArr = $this->fModel->getCheckFBAccessToken($this->AgencySysId);
$this->view->getCheckAccessTokenWAArr = $this->fModel->getCheckWAAccessToken($this->AgencySysId);
$this->view->Whatsappdetails = $this->fModel->getwhatsappDetails($this->AgencySysId);
$sessionLogin_user = new Zend_Session_Namespace('sessionLogin_user');
$this->view->IsWhatsApp = $sessionLogin_user->IsWhatsApp;
}
public function getLeadFormAction() {
if (isset($reponsePagesArrayVal['data']) && !empty($reponsePagesArrayVal['data'])) {
foreach ($reponsePagesArrayVal['data'] as $pageval) {
$pageId = $pageval['id'];
$accessForm = $pageval['access_token'];
$getleadFormUrl = "https://graph.facebook.com/v15.0/$pageId/leadgen_forms?access_token=$accessForm";
$LeadFormArray = $this->sendRequest($getleadFormUrl);
if (isset($LeadFormArray) && $LeadFormArray != '') {
$LeadFormArrayVal = json_decode($LeadFormArray, true);
if (isset($LeadFormArrayVal['data']) && !empty($LeadFormArrayVal['data'])) {
foreach ($LeadFormArrayVal['data'] as $Formval) {
$formVal = $Formval['id'];
$getleadsUrl = "https://graph.facebook.com/v15.0/$formVal/leads?access_token=$accessForm";
$LeadFormValArray = $this->sendRequest($getleadsUrl);
if (isset($LeadFormValArray) && $LeadFormValArray != '') {
$LeadFormValues = json_decode($LeadFormValArray, true);
// echo "<pre>";
// print_r($LeadFormValues);
// exit;
}
}
}
}
}
}
}
public function getFacebookPageFormAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
if ($this->getRequest()->isPost()) {
$param = $this->getRequest()->getParams();
$id_token = explode('_', $param['id_accesstoken']);
$pageId = $id_token[0];
$access_token = $id_token[1];
if ($pageId != "" && $access_token != "") {
$getleadFormUrl = "https://graph.facebook.com/v15.0/$pageId/leadgen_forms?access_token=$access_token";
$LeadFormArray = $this->sendRequest($getleadFormUrl);
//echo "<pre>";print_r($LeadFormArray);exit;
if (isset($LeadFormArray) && $LeadFormArray != '') {
$LeadFormArrayVal = json_decode($LeadFormArray, true);
$LeadFormValuesArr = isset($LeadFormArrayVal['data']) ? $LeadFormArrayVal['data'] : array();
// echo "<pre>";print_r($LeadFormValuesArr); exit;
$checkarray = array();
if (!empty($LeadFormValuesArr) && count($LeadFormValuesArr) > 0) {
for ($fbF = 0; $fbF < count($LeadFormValuesArr); $fbF++) {
$FBLeadFormsSysId = isset($LeadFormValuesArr[$fbF]["id"]) ? $LeadFormValuesArr[$fbF]["id"] : '';
if ($FBLeadFormsSysId != "") {
$getFaceBookPages = $this->fModel->getCheckFBForms($FBLeadFormsSysId);
if (!empty($getFaceBookPages)) {
// $updatePagesArray = array(
// "AccessToken" => isset($reponsePagesArrayValArr[$fb]["access_token"]) ? $reponsePagesArrayValArr[$fb]["access_token"] : '',
// "IsRun" => false,
// "IsActive" => true,
// "IsMarkForDel" => false
// );
// $where = array("PageID = (?)" => $FBPaageSysId);
// try {
// $this->fModel->updateTable("TB_Agency_Marketing_Facebook_Pages", $updatePagesArray, $where);
// } catch (Zend_Exception $e) {
// $error = $e->getMessage();
// }
} else {
$FormArray = array(
"AgencySysId" => $this->AgencySysId,
"PageSysId" => $pageId,
"FormID" => isset($LeadFormValuesArr[$fbF]["id"]) ? $LeadFormValuesArr[$fbF]["id"] : '',
"FormName" => isset($LeadFormValuesArr[$fbF]["name"]) ? $LeadFormValuesArr[$fbF]["name"] : '',
"FormExportCSVURL" => isset($LeadFormValuesArr[$fbF]["leadgen_export_csv_url"]) ? $LeadFormValuesArr[$fbF]["leadgen_export_csv_url"] : '',
"FormStatus" => isset($LeadFormValuesArr[$fbF]["status"]) ? $LeadFormValuesArr[$fbF]["status"] : '',
"IsRun" => false,
"IsActive" => true,
"IsMarkForDel" => false
);
try {
$checkarray[] = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_Forms", $FormArray);
} catch (Zend_Exception $e) {
$error = $e->getMessage();
}
}
}
}
$html = '<option value="">Select</option>';
if ($LeadFormArrayVal['data']) {
foreach ($LeadFormArrayVal['data'] as $key => $val) {
$id = $val['id'];
$name = $val['name'];
$html .= '<option value="' . $id . '">' . $name . '</option>';
}
}
$return = json_encode(array('status' => true, 'formhtml' => $html, 'access_token' => $access_token));
echo $return;
exit;
} else {
echo $LeadFormArray;
exit;
}
}
}
}
}
public function getFormLeadDataAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$TblAgency = new Travel_Model_TblAgency();
$TblAgencyStaff = new Travel_Model_TblAgencyStaff();
// $HolidaysFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Noofdays','RoomInfoJson','NoOfChild','Inclusions','Preference','ExpectedClosureDate','budget','Purpose','startDate','FromDestination','Remarks');
// $FlightFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','TripType','FromDestination','startDate','Destination','EndDate','RoomInfoJson','NoOfChild','NoOfInfant','Remarks');
// $VisaFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','TripType','Purpose','startDate','RoomInfoJson','Noofdays','Preference','Remarks');
// $HotelFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','startDate','RoomInfoJson','NoOfChild','Noofdays','Preference','Remarks');
// $SightseeingFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','Destination','startDate','RoomInfoJson','Remarks');
// $TransferFieldsM = array('FirstName','LastName','EmailId','PrimaryContactNumber','FromDestination','Destination','startDate','Noofdays','RoomInfoJson','Preference','Remarks');
if ($this->getRequest()->isPost()) {
$param = $this->getRequest()->getParams();
$id = isset($param['id']) ? $param['id'] : '';
$access_token = isset($param['access_token']) ? $param['access_token'] : '';
$PlanType = isset($param['PlanType']) ? (int) $param['PlanType'] : 0;
if ($id != "" && $access_token != "") {
$getleadsUrl = "https://graph.facebook.com/v15.0/$id/leads?access_token=$access_token";
$LeadFormValArray = $this->sendRequest($getleadsUrl);
if (isset($LeadFormValArray) && $LeadFormValArray != '') {
$LeadFormValues = json_decode($LeadFormValArray, true);
$LeadFormValuesArr = isset($LeadFormValues['data']) ? $LeadFormValues['data'] : array();
if (!empty($LeadFormValuesArr) && count($LeadFormValuesArr) > 0) {
$html = '';
// echo "<pre>";print_r($LeadFormValuesArr);exit;
// $field_dataDropdown = '<option value="">Select</option>';
$checkNameArray = array();
if ($LeadFormValues['data']) {
foreach ($LeadFormValues['data'] as $key => $val) {
$id = $val['id'];
foreach ($val['field_data'] as $fKey => $fVal) {
$name = trim($fVal['name']);
if (!in_array($name, $checkNameArray)) {
$checkNameArray[] = $name;
}
// $values = implode(', ', $fVal['values']);
// if (!in_array($name, $checkNameArray)) {
// $field_dataDropdown .= '<option value="' . $name . '">' . $name . '</option>';
// $checkNameArray[] = $name;
// }
}
}
}
$formSysId = isset($param['id']) ? $param['id'] : '';
$FacebookFormsFieldMappingData = $this->fModel->getFacebookFormsFieldMapping($formSysId);
$getFormSysId = $this->fModel->getCheckFBForms($formSysId);
$UserLeadSourceMapping = $this->fModel->getFacebookFormsUserLeadSourceMapping($formSysId);
$PlanType = (!empty($PlanType)) ? $PlanType : (isset($getFormSysId[0]['PlanType']) ? (int) $getFormSysId[0]['PlanType'] : 5);
$PlanTypeArray = array(
'5' => 'Holidays',
'1' => 'Flight',
'6' => 'Visa',
'2' => 'Hotel',
'9' => 'Sightseeing',
'11' => 'Transfer',
);
if ($PlanType == 1) {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "TripType" => "Trip Type", "FromDestination" => "From Airport", "startDate" => "From Date", "Destination" => "To Airport", "EndDate" => "To Date", "RoomInfoJson" => "Adult", "NoOfChild" => "Child", "NoOfInfant" => "Infant", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
} else if ($PlanType == 2) {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Destination", "startDate" => "Travel Date", "Noofdays" => "No of Nights", "RoomInfoJson" => "Adult", "NoOfChild" => "Child", "Preference" => "Hotel Preference", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
} else if ($PlanType == 6) {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Country", "TripType" => "Category", "Purpose" => "Entry Type", "startDate" => "Travel Date", "RoomInfoJson" => "No of Travellers", "Noofdays" => "Duration of Visit", "Preference" => "Nationality", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
} else if ($PlanType == 9) {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "Destination" => "Destination", "startDate" => "Travel Date", "RoomInfoJson" => "No of Pax", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
} else if ($PlanType == 11) {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "FromDestination" => "From Destination", "Destination" => "To Destination", "startDate" => "Travel Date", "Noofdays" => "No of Days", "RoomInfoJson" => "No of Travellers", "Preference" => "Preference", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date");
} else {
$fieldArray = array("EmailId" => "Email Id", "FirstName" => "First Name", "LastName" => "Last Name", "PrimaryContactNumber" => "Contact No.", "startDate" => "Travel Date", "Noofdays" => "No of Days", "RoomInfoJson" => "No of Adults", "NoOfChild" => "No of Kids", "Inclusions" => "Inclusions", "Preference" => "Hotel Preference", "budget" => "Budget", "Purpose" => "Purpose", "Remarks" => "Remarks", "ExpectedClosureDate" => "Expected Closure Date", "FromDestination" => "From Destination", "Destination" => "To Destination");
}
// echo "<pre>";print_r($getFormSysId);die;
$MappedUserSysId = array();
foreach ($UserLeadSourceMapping as $UlsVal) {
$MappedUserSysId[] = $UlsVal['UserSysId'];
}
$html .= 'Form Type : <select name = "PlanType" id="PlanType" onchange="changePlanType()">';
foreach ($PlanTypeArray as $pKey => $pVal) {
$sele = ($pKey == $PlanType) ? 'selected' : '';
$html .= '<option value="' . $pKey . '" ' . $sele . '>' . $pVal . '</option>';
}
$html .= '</select><br><br>';
foreach ($fieldArray as $fKey => $fVal) {
$addClass = 'FormType_Class ';
$showHideFormType = 'display:none;';
if ($PlanType == 5) {
$addClass .= 'FormType_5 ';
$showHideFormType = '';
}
if ($PlanType == 1) {
$addClass .= 'FormType_1 ';
$showHideFormType = '';
}
if ($PlanType == 6) {
$addClass .= 'FormType_6 ';
$showHideFormType = '';
}
if ($PlanType == 2) {
$addClass .= 'FormType_2 ';
$showHideFormType = '';
}
if ($PlanType == 9) {
$addClass .= 'FormType_9 ';
$showHideFormType = '';
}
if ($PlanType == 11) {
$addClass .= 'FormType_11 ';
$showHideFormType = '';
}
$html .= '<div class="' . $addClass . '" style="margin-bottom:15px;' . $showHideFormType . '">' . $fVal . ' : <select name="' . $fKey . '"';
$field_dataDropdown = '<option value="">Select</option>';
for ($u = 0; $u < count($checkNameArray); $u++) {
// $htmlSelect = '';
$field_dataDropdown .= '<option value="' . $checkNameArray[$u] . '"';
foreach ($FacebookFormsFieldMappingData as $checkVal) {
if (($checkVal['FieldName'] == $checkNameArray[$u]) && $fKey == $checkVal['ColumnName']) {
$field_dataDropdown .= ' selected="selected"';
}
}
$field_dataDropdown .= '>' . $checkNameArray[$u] . '</option>';
}
$html .= '>' . $field_dataDropdown . '</select><br></div>';
}
$DestinationName = isset($getFormSysId[0]['DestinationName']) ? $getFormSysId[0]['DestinationName'] : "";
$DestinationId = isset($getFormSysId[0]['DestinationId']) ? $getFormSysId[0]['DestinationId'] : "";
if ($PlanType == 5) {
$html .= '<div style="margin-left: 30px;">OR</div>';
$html .= 'To Destination : <input type="text" name="ToDestination" id="Destination" value="' . $DestinationName . '"><input type="hidden" name="DestinationId" id="DestinationId" value="' . $DestinationId . '"></br></br>';
}
if(isset($_SESSION['sessionLogin_user']['IsWhatsApp']) && $_SESSION['sessionLogin_user']['IsWhatsApp'] == 1){
$getOnlyWhatsappAPITemplate = $TblAgency->getOnlyWhatsappAPITemplateWithOnlyCustomerVariable($this->AgencySysId);
if(!empty($getOnlyWhatsappAPITemplate)){
$whatsappTemplateHtml = '<option value="">Select</option>';
foreach($getOnlyWhatsappAPITemplate as $wpKey => $wpValue){
$whatsappTemplateHtml .= '<option value="'.((int)$wpValue['Id']).'">'.($wpValue['TemplateName']).'</option>';
}
$html .= '<div>WhatsApp Template : <select name="WhatsAppTempId">'.$whatsappTemplateHtml.'</select><br><br></div>';
}
}
$AgencyStaff = $TblAgencyStaff->getAgencyUserList($this->AgencySysId);
$htmlUserList = '';
foreach ($AgencyStaff as $sKey => $sVal) {
$htmlUserList .= '<option value="' . $sVal['UserSysId'] . '"';
if (isset($getFormSysId[0]['AssignUserSysId']) && (in_array($sVal['UserSysId'], $MappedUserSysId))) {
$htmlUserList .= ' selected="selected"';
}
$htmlUserList .= '>' . $sVal['FirstName'] . ' ' . $sVal['LastName'] . '</option>';
}
$LandingPageSysId = isset($getFormSysId[0]['LandingPageSysId']) ? $getFormSysId[0]['LandingPageSysId'] : "";
$html .= 'Assigned to : <select name = "AssignUserSysId[]" id="AssignUserSysId" multiple>' . $htmlUserList . '</select>';
if ($this->IsAutoProposalOnFBLead == 1) {
$html .= '<br><br>Template ID : <input style="width: 37%;" type="text" name="LandingPageID" id="LandingPageID" class="" value="' . $LandingPageSysId . '"> <a href="https://globaltravelexchange.com/marketing/template" target="_blank">View Template List</a>';
}
$html .= '<input type="hidden" name="fieldArray" value="' . base64_encode(json_encode($fieldArray)) . '">';
$return = json_encode(array('status' => true, 'formhtml' => $html, 'access_token' => $access_token));
echo $return;
exit;
} else {
echo "exit";
exit;
}
} else {
echo "exit";
exit;
}
} else {
echo "exit";
exit;
}
}
}
public function fbExchangeToken($accessToken) {
$fbExchangeTokenUrl = "https://graph.facebook.com/v15.0/oauth/access_token?grant_type=fb_exchange_token&client_id=2032473587063611&client_secret=e51d914b4effdf595ef2228d25729b0e&fb_exchange_token=$accessToken";
$fbExchangeTokenArray = $this->sendRequest($fbExchangeTokenUrl);
return $fbExchangeTokenArray;
}
public function waLogoutAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$returnArray = array("status" => false);
if ($this->getRequest()->isPost()) {
$AgencySysId = $this->AgencySysId;
$updateData = array(
'AccessToken' => '',
'WBExchangeToken' => ''
);
$where = array("AgencySysId = (?)" => $AgencySysId);
try {
$this->fModel->updateTable("TB_Agency_Marketing_WhatsApp_AccessToken", $updateData, $where);
$returnArray = array("status" => true);
} catch (Zend_Exception $e) {
$returnArray = array("status" => false);
}
}
echo json_encode($returnArray);
exit;
}
public function facebookLogoutAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
$returnArray = array("status" => false);
if ($this->getRequest()->isPost()) {
$AgencySysId = $this->AgencySysId;
$updateData = array(
'AccessToken' => '',
'fbExchangeToken' => ''
);
$where = array("AgencySysId = (?)" => $AgencySysId);
try {
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_AccessToken", $updateData, $where);
$returnArray = array("status" => true);
} catch (Zend_Exception $e) {
$returnArray = array("status" => false);
}
}
echo json_encode($returnArray);
exit;
}
public function saveFormLeadDataAction() {
$this->_helper->layout->disableLayout();
$front = Zend_Controller_Front::getInstance();
$front->setParam('noViewRenderer', true);
if ($this->getRequest()->isPost()) {
$param = $this->getRequest()->getParams();
//echo "<pre>";print_r($param);die;
$fieldArray = json_decode(base64_decode($param['fieldArray']), 1);
$formSysId = trim($param['formName']);
if ((isset($param['formName']) && $param['formName'] > 0)) {
$updateData = array(
// 'AssignUserSysId' => $param['AssignUserSysId'],
'DestinationName' => (isset($param['ToDestination']) && trim($param['ToDestination']) != 'to_destination') ?str_replace(' ', '', $param['ToDestination']) : '',
'DestinationId' => isset($param['DestinationId']) ? (int) $param['DestinationId'] : 0,
'LandingPageSysId' => isset($param['LandingPageID']) ? (int) $param['LandingPageID'] : 0,
'PlanType' => isset($param['PlanType']) ? (int) $param['PlanType'] : 5,
'WhatsAppTempId' => isset($param['WhatsAppTempId']) ? (int) $param['WhatsAppTempId'] : 0,
);
$where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormID = (?)' => $formSysId);
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_Forms", $updateData, $where);
}
if (isset($param['formName']) && (int) $param['formName']) {
$checkFaceBookCampaignSysId = $this->fModel->checkFaceBookCampaignSysId($formSysId);
if (empty($checkFaceBookCampaignSysId)) {
$saveData = array(
"AgencySysId" => $this->AgencySysId,
"CampaignName" => $formSysId,
"IsDefault" => 0,
"IsActive" => 1,
"IsMarkForDel" => 0
);
$CampaignSysId = $this->fModel->insertTable("TB_Agency_Campaign_Master", $saveData);
$updateData = array(
'CampaignSysId' => $CampaignSysId
);
$where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormID = (?)' => $formSysId);
$this->fModel->updateTable("TB_Agency_Marketing_Facebook_Forms", $updateData, $where);
}
}
$saveData = $updateData = $checkArrayData = array();
$FacebookFormsFieldMappingData = $this->fModel->getFacebookFormsFieldMapping($param['formName']);
foreach ($FacebookFormsFieldMappingData as $dKey => $dVal) {
$checkArrayData[] = trim($dVal['ColumnName']);
}
$updateDataIsMarkForDel = [
'IsMarkForDel' => '1',
];
$whereIsMarkForDel = array("AgencySysId = (?)" => $this->AgencySysId, 'FormSysId = (?)' => $formSysId);
$FieldMapSysId[] = $this->fModel->updateTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $updateDataIsMarkForDel, $whereIsMarkForDel);
foreach ($fieldArray as $fKey => $fVal) {
if (trim($param[$fKey]) != '') {
if (in_array($fKey, $checkArrayData)) {
$updateData = [
'FieldName' => $param[$fKey],
'IsMarkForDel' => '0',
];
$where = array("AgencySysId = (?)" => $this->AgencySysId, 'FormSysId = (?)' => $formSysId, 'ColumnName = (?)' => $fKey);
// echo "<pre>";print_r($where);die;
$FieldMapSysId[] = $this->fModel->updateTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $updateData, $where);
} else {
$saveData = [
'AgencySysId' => $this->AgencySysId,
'ColumnName' => $fKey,
'FieldName' => $param[$fKey],
'FormSysId' => $formSysId,
'IsActive' => 1,
'IsMarkForDel' => 0,
];
$FieldMapSysId[] = $this->fModel->insertTable("TB_Agency_Marketing_Facebook_FormsFieldMapping", $saveData);
}
}
}
$UserSysIdArr = (isset($param['AssignUserSysId']) && !empty($param['AssignUserSysId'])) ? $param['AssignUserSysId'] : '';
if (!empty($UserSysIdArr)) {
$whereUserLeadMap = array('LeadSourceSysId = ? ' => $formSysId);
$updateDataUserLeadMap = array('IsMarkForDel' => 1);
$this->fModel->updateTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $updateDataUserLeadMap, $whereUserLeadMap);
foreach ($UserSysIdArr as $UserSysId) {
$checkformSysId = $this->fModel->checkFacebookUserLeadSource($formSysId, $UserSysId);
if (!empty($checkformSysId)) {
$whereUserLeadMap1 = array('LeadSourceSysId = ? ' => $formSysId, 'UserSysId = ? ' => $UserSysId);
$updateDataUserLeadMap1 = array('IsMarkForDel' => 0);
$this->fModel->updateTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $updateDataUserLeadMap1, $whereUserLeadMap1);
} else {
$insertDataUserLeadMap = array('IsMarkForDel' => 0, 'LeadSourceSysId' => $formSysId, 'UserSysId' => $UserSysId);
$this->fModel->insertTable('TB_Agency_Marketing_Facebook_User_LeadSource_Mapping', $insertDataUserLeadMap);
}
}
}
//echo "<pre>";print_r($FieldMapSysId);die;
if ($FieldMapSysId) {
$return = json_encode(array('status' => true, 'message' => 'Data Saved Successfully.'));
echo $return;
exit;
}
}
}
}