| 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/gtxapi.hellogtx.com/library/Helper/ |
Upload File : |
<?php
/* * *************************************************************
* Catabatic Technology Pvt. Ltd.
* File Name : Flight.php
* File Desc. : Flight helper to including supporting functions/methods for Flights
* Created By : Md Sabir <sabir@catpl.co.in>
* Created Date : 17 Sep 2022
* ************************************************************* */
class Zend_Controller_Action_Helper_Flight extends Zend_Controller_Action_Helper_Abstract
{
public $baseUrl;
public function __construct()
{
$this->pluginLoader = new Zend_Loader_PluginLoader();
$this->db = Zend_Db_Table::getDefaultAdapter();
$BootStrap = $this->config();
$this->siteName = $BootStrap['siteName'];
$this->baseUrl = $BootStrap['siteUrl'];
}
public function config()
{
$front = $this->getFrontController();
$bootstrap = $front->getParam('bootstrap');
if (null === $bootstrap) {
throw new Exception('Unable to find bootstrap');
}
return $bootstrap->getOptions()['bootstrap'];
}
public function MinutesToHours($minutes)
{
if ($minutes) {
$hours = floor($minutes / 60);
$min = $minutes - ($hours * 60);
$LAYOVERTime = $hours . "h " . $min . 'm';
return $LAYOVERTime;
}
}
public function getTimeFromApiString($string)
{
if (empty($string))
return '';
$arr = explode("T", $string);
$date = new DateTime($arr[0]);
return substr(@$arr[1], 0, 5);
}
public function getTimeFromApiString2($string)
{
if (empty($string))
return '';
$arr = explode(" ", $string);
$date = new DateTime($arr[0]);
return substr(@$arr[1], 0, 5);
}
public function convertMinutesToHoursFormat($minutes)
{
if ($minutes < 1) {
//return;
}
$hours = floor($minutes / 60);
$minutes = ($minutes % 60);
return $hours . 'h ' . $minutes . 'm';
}
public function convertMinutes($fromtime, $totime)
{
$to_time = strtotime($totime);
$from_time = strtotime($fromtime);
return round(abs($to_time - $from_time) / 60, 2);
}
public function CalculateTotalTime($time1, $time2)
{
$diff = abs(strtotime($time1) - strtotime($time2));
$tmins = $diff / 60;
$hours = floor($tmins / 60);
$mins = $tmins % 60;
return $hours . 'h ' . $mins . 'm';
}
public function GetFullUrl()
{
$s = &$_SERVER;
$ssl = (!empty($s['HTTPS']) && $s['HTTPS'] == 'on') ? true : false;
$sp = strtolower($s['SERVER_PROTOCOL']);
$protocol = substr($sp, 0, strpos($sp, '/')) . (($ssl) ? 's' : '');
$port = $s['SERVER_PORT'];
$port = ((!$ssl && $port == '80') || ($ssl && $port == '443')) ? '' : ':' . $port;
$host = isset($s['HTTP_X_FORWARDED_HOST']) ? $s['HTTP_X_FORWARDED_HOST'] : (isset($s['HTTP_HOST']) ? $s['HTTP_HOST'] : null);
$host = isset($host) ? $host : $s['SERVER_NAME'] . $port;
$uri = $protocol . '://' . $host . $s['REQUEST_URI'];
$segments = explode('?', $uri, 2);
$url = $segments[0];
return $url;
}
public function getAirlinesName()
{
$url = $this->baseUrl . "public/data/airlinesName.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
curl_close($ch);
$response = json_decode($output, true);
$AirlinesName = [];
if ($response) {
foreach ($response as $key => $value) {
$AirlinesName[$value['AIRLINECODE']] = $value;
}
}
return $AirlinesName;
}
public function CreateLogs($data)
{
$agency_sys_id = isset($data['AgencySysId']) ? $data['AgencySysId'] : '';
$requests = $this->getRequest()->getParams();
$data = [
"user_id" => isset($data['user_id']) ? $data['user_id'] : 1,
"agency_sys_id" => isset($agency_sys_id) ? $agency_sys_id : '',
"application_name" => isset($data['siteName']) ? $data['siteName'] : $_SERVER['HTTP_HOST'],
"site_url" => $this->GetFullUrl(),
"module_name" => isset($requests['module']) ? ucfirst($requests['module']) : '',
"controller_name" => isset($requests['controller']) ? ucfirst($requests['controller']) : '',
"action_name" => isset($requests['action']) ? ucfirst($requests['action']) : '',
"custom_error" => isset($data['custom_error']) ? $data['custom_error'] : '',
"error" => isset($data['error']) ? $data['error'] : '',
"ip_address" => $_SERVER['REMOTE_ADDR'],
"text_udf" => isset($data['text_udf']) ? json_encode($data['text_udf']) : '', // Response
"char_udf" => isset($data['char_udf']) ? json_encode($data['char_udf']) : '', // Request
"udf1" => isset($data['udf1']) ? $data['udf1'] : '',
"udf2" => isset($data['udf2']) ? $data['udf2'] : '',
"udf5" => isset($data['udf5']) ? $data['udf5'] : '',
"from_destination" => isset($data['from_destination']) ? $data['from_destination'] : '',
"to_destination" => isset($data['to_destination']) ? $data['to_destination'] : '',
"Pax" => isset($data['Pax']) ? $data['Pax'] : '',
"flight_type" => isset($data['flight_type']) ? $data['flight_type'] : 5,
"source" => isset($data['source']) ? $data['source'] : 1,
"Supplier" => isset($data['Supplier']) ? $data['Supplier'] : '',
"Airline" => isset($data['Airline']) ? $data['Airline'] : '',
"status" => isset($data['status']) ? $data['status'] : 1, //
"created_on" => date('Y-m-d H:i:s'),
"updated_on" => date('Y-m-d'),
"is_active" => isset($data['is_active']) ? $data['is_active'] : true, //,
"is_mark_for_delete" => isset($data['is_mark_for_delete']) ? $data['is_mark_for_delete'] : false, //,
];
$url = 'https://logs.hellogtx.com/api/v1/create-logs/';
$data_stringh = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_stringh);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'Content-Length: ' . strlen($data_stringh)
));
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
return $response;
}
public function getRangeByValue($ratearray, $input)
{
foreach ($ratearray as $key => $value) {
$keyex = explode('-', $value);
if ($keyex[0] <= $input && $keyex[1] >= $input) {
return $value;
}
}
}
public function createApiCallLogs($strDestination, $data)
{
$strPath = $_SERVER["DOCUMENT_ROOT"] . "/public/logs/" . $strDestination;
$strFolder = trim($strPath, basename($strPath)); //exit;
if (!file_exists($strFolder)) { // if folder does not exists...
mkdir($strFolder, 0777, true);
}
file_put_contents($strPath, $data); // wirte data to respective file...
}
public function createApiXMLLogs($strDestination, $data)
{
$strPath = $_SERVER["DOCUMENT_ROOT"] . "/public/logs/" . $strDestination;
$strFolder = trim($strPath, basename($strPath)); //exit;
if (!file_exists($strFolder)) { // if folder does not exists...
mkdir($strFolder, 0777, true);
}
$dom = new DOMDocument;
$dom->preserveWhiteSpace = FALSE;
$dom->loadXML($data);
//Save XML as a file
$dom->save($strPath);
}
function AgencyMarketPlace($arrSessionData = array(), $URL, $SECURITYKEY = null)
{
$jsonEncode = json_encode($arrSessionData);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($jsonEncode));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
if ($SECURITYKEY) {
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: application/json',
'Content-Type: application/json',
'Accept-Encoding: gzip',
'SecurityKey: ' . $SECURITYKEY,
'Content-Length: ' . strlen($jsonEncode),
));
}
$outputH = curl_exec($ch);
$response = json_decode($outputH, true);
return $response;
}
public function agencyTermAndCondition($AgencySysId, $SecurityKey)
{
if ($AgencySysId) {
$API_URL = API_GET_AGENCY_TERMS_AND_CONDITION;
$apiData = array(
"AgencySysId" => $AgencySysId,
);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $API_URL,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $apiData,
));
$output = curl_exec($curl);
$response = json_decode($output, true);
$apiDataIV = array(
"AgencySysId" => $AgencySysId,
"SecurityKey" => $SecurityKey
);
$curl_IV = curl_init(API_GET_IV_KEY);
curl_setopt($curl_IV, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl_IV, CURLOPT_POSTFIELDS, http_build_query($apiDataIV));
curl_setopt($curl_IV, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_IV, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_IV, CURLOPT_TIMEOUT, 300);
$responseIV = curl_exec($curl_IV);
curl_close($curl_IV);
$IVData = Zend_Json::decode($responseIV, true);
$agencyData = new GTX_Model_Encrytion($response['Message'], $apiDataIV['SecurityKey'], $IVData['Message']);
return Zend_Json::decode($agencyData->decrypt(), true);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
function getAgencyData($gtxagencysysid, $SecurityKey = null)
{
if ($gtxagencysysid) {
$apiDataIV = array(
"AgencySysId" => $gtxagencysysid,
"SecurityKey" => $SecurityKey,
);
if($gtxagencysysid == 1){
$curl_IV = curl_init('https://st.globaltravelexchange.com/webservice/agency/get-iv-key/');
}else{
$curl_IV = curl_init(API_GET_IV_KEY);
}
curl_setopt($curl_IV, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl_IV, CURLOPT_POSTFIELDS, http_build_query($apiDataIV));
curl_setopt($curl_IV, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_IV, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_IV, CURLOPT_TIMEOUT, 300);
$responseIV = curl_exec($curl_IV);
curl_close($curl_IV);
//print_r($responseIV);die;
$apiData = array(
"AgencySysId" => $gtxagencysysid,
);
if($gtxagencysysid == 1){
$curl_p = curl_init('https://st.globaltravelexchange.com/webservice/agency/get-agency-data/');
}else{
$curl_p = curl_init(API_GET_AGENCY_DATA);
}
curl_setopt($curl_p, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl_p, CURLOPT_POSTFIELDS, http_build_query($apiData));
curl_setopt($curl_p, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_p, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_p, CURLOPT_TIMEOUT, 300);
$response_pro = curl_exec($curl_p);
curl_close($curl_p);
$IVData = Zend_Json::decode($responseIV, true);
$data = Zend_Json::decode($response_pro, true);
$agencyData = new GTX_Model_Encrytion($data['Message'], $apiDataIV['SecurityKey'], $IVData['Message']);
return Zend_Json::decode($agencyData->decrypt(), true);
//echo '<pre>';print_r(Zend_Json::decode($agencyData->decrypt(),true));
//die('wait');
} else {
return 'Bad request';
}
}
public function apiFlightBookingTBO($post, $AgencySysId, $Securitykey, $SectorKey = null, $searchQuery = null)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$flexiPayment = (isset($post['flexiPayment']) && !empty($post['flexiPayment'])) ? $post['flexiPayment'] : 0;
$requestTicket = [];
$ARR_SALUTIONTBO = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD_TBO = unserialize(ARR_SALUTION_CHILD_TBO);
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$isDocIdAllowedMandatory = isset($BookingData[0]['isDocIdAllowedMandatory']) ? $BookingData[0]['isDocIdAllowedMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = (isset($BookingData[0]['flightKey']) && !empty($BookingData[0]['flightKey'])) ? $BookingData[0]['flightKey'] : $BookingData[0]['apiTraceId'];
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$MasterAgencyData = $this->getAgencyData($AgencySysId, $Securitykey);
$gstnnumber = isset($MasterAgencyData['GSTINFO']) ? trim($MasterAgencyData['GSTINFO']) : '';
$GSTINFO = isset($gstData['GstNumber']) ? trim($gstData['GstNumber']) : '';
$gstvalidate = $this->gstvalidate($gstnnumber, $GSTINFO);
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$BookableAmount = 0;
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
foreach ($BookingData as $k => $value) {
if ($flexiPayment == 1) {
$BookableAmount += isset($value['FairRules']['BookableAmount']) ? $value['FairRules']['BookableAmount'] : 0;
$ProcessingAmount += isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing += isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
$ProcessingAmount_ = isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing_ = isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
} else {
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
$ProcessingAmount_ = 0;
$GSTOnProcessing_ = 0;
}
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__ + $ProcessingAmount_ + $GSTOnProcessing_);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
$arrFairDetails = $value['FairRules']['FareBreakdown'];
$ApiResultIndex = $value['FairRules']['PriceID'];
$fareIdentifier = $value['FairRules']['fareIdentifier'];
$AirlineName = $value['AirlineName'];
$FlightNumber = $value['FlightNumber'];
if (isset($searchQuery['TBO']['post']) && $searchQuery['TBO']['post']['ResultFareType'] == 5) {
$DocumentTypeId = "SeniorCitizen";
} elseif (isset($searchQuery['TBO']['post']) && $searchQuery['TBO']['post']['ResultFareType'] == 3) {
$DocumentTypeId = "StudentId";
}
$intK = 0;
for ($intI = 0; $intI < count($arrFairDetails); $intI++) {
$intPassengerCount = isset($arrFairDetails[$intI]['PassengerCount']) ? trim($arrFairDetails[$intI]['PassengerCount']) : 0;
for ($intJ = 0; $intJ < $intPassengerCount; $intJ++) {
$MealArr = [];
$BaggageArr = [];
$SeatArr = [];
$INK = ($intK + 1);
if ($intK == 0) {
$intMemberSysId = true;
} else {
$intMemberSysId = false;
}
// if ($customer[$intK]['paxType'] == 1) {
// if ($customer[$intK]['salution'] == 2) {
// $paxTitle = 'Mrs';
// } else {
// $paxTitle = trim($ARR_SALUTIONTBO[$customer[$intK]['salution']], ".");
// }
// } else {
$paxTitle = trim($ARR_SALUTIONTBO[$customer[$intK]['salution']], ".");
//}
// if($AgencySysId == 2656 || $AgencySysId == 1){
// $paxTitle = '';
// }
$PassengerType = $arrFairDetails[$intI]['PassengerType'];
$PassengerCount = $arrFairDetails[$intI]['PassengerCount'];
$intAirTransFee = "00.00";
$intTransactionFee = "00.00";
$intBaseFare = (float)($arrFairDetails[$intI]['intBaseFare'] / $PassengerCount);
$intTax = (float)($arrFairDetails[$intI]['intTax'] / $PassengerCount);
$intYQTax = (float)($arrFairDetails[$intI]['TaxBR']['intYQ'] / $PassengerCount);
$intAdditionalTxnFeeOfrd = isset($arrFairDetails[$intI]['TaxBR']['AdditionalTxnFeeOfrd']) ? $arrFairDetails[$intI]['TaxBR']['AdditionalTxnFeeOfrd'] : 0;
$intAdditionalTxnFeePub = isset($arrFairDetails[$intI]['TaxBR']['AdditionalTxnFeePub']) ? $arrFairDetails[$intI]['TaxBR']['AdditionalTxnFeePub'] : 0;
$SelectedBag = !empty($customer[$intK]['SelectedBag']) ? json_decode($customer[$intK]['SelectedBag'], 1) : '';
$SelectedMeal = !empty($customer[$intK]['SelectedMeal']) ? json_decode($customer[$intK]['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($customer[$intK]['SelectedSeat']) ? json_decode($customer[$intK]['SelectedSeat'], 1) : '';
$SelectedMeal = isset($SelectedMeal[$SectorKey])?[$SelectedMeal[$SectorKey]]:[];
$SelectedBag = isset($SelectedBag[$SectorKey])?[$SelectedBag[$SectorKey]]:[];
$SelectedSeat = isset($SelectedSeat[$SectorKey])?[$SelectedSeat[$SectorKey]]:[];
// echo "<pre>";print_r($SectorKey);
// echo "<pre>";print_r(($SelectedSeat));die;
if (!empty($SelectedMeal)) {
foreach ($SelectedMeal as $key_ => $val) {
$MealArr[] = array(
'AirlineCode' => isset($val[0]['AirlineCode']) ? $val[0]['AirlineCode'] : '',
'FlightNumber' => isset($val[0]['FlightNumber']) ? $val[0]['FlightNumber'] : '',
'WayType' => isset($val[0]['WayType']) ? $val[0]['WayType'] : '',
'Code' => isset($val[0]['Code']) ? $val[0]['Code'] : '',
'Description' => isset($val[0]['Description']) ? $val[0]['Description'] : '',
'AirlineDescription' => isset($val[0]['AirlineDescription']) ? $val[0]['AirlineDescription'] : '',
'Quantity' => isset($val[0]['Quantity']) ? $val[0]['Quantity'] : '',
'Price' => isset($val[0]['cost']) ? $val[0]['cost'] : '',
'Currency' => isset($val[0]['Currency']) ? $val[0]['Currency'] : '',
'Origin' => isset($val[0]['Origin']) ? $val[0]['Origin'] : '',
'Destination' => isset($val[0]['Destination']) ? $val[0]['Destination'] : '',
);
}
}
if (!empty($SelectedBag)) {
foreach ($SelectedBag as $key_ => $val) {
$BaggageArr[] = array(
'AirlineCode' => isset($val[0]['AirlineCode']) ? $val[0]['AirlineCode'] : '',
'FlightNumber' => isset($val[0]['FlightNumber']) ? $val[0]['FlightNumber'] : '',
'WayType' => isset($val[0]['WayType']) ? $val[0]['WayType'] : '',
'Code' => isset($val[0]['Code']) ? $val[0]['Code'] : '',
'Description' => isset($val[0]['Description']) ? $val[0]['Description'] : '',
'Weight' => isset($val[0]['Weight']) ? str_replace('Kg', '', $val[0]['Weight']) : '',
'Price' => isset($val[0]['cost']) ? $val[0]['cost'] : '',
'Currency' => isset($val[0]['Currency']) ? $val[0]['Currency'] : '',
'Origin' => isset($val[0]['Origin']) ? $val[0]['Origin'] : '',
'Destination' => isset($val[0]['Destination']) ? $val[0]['Destination'] : '',
);
}
}
if (!empty($SelectedSeat)) {
foreach ($SelectedSeat as $key_ => $val) {
$SeatArr[] = array(
'AirlineCode' => isset($val[0]['AirlineCode']) ? $val[0]['AirlineCode'] : '',
'FlightNumber' => isset($val[0]['FlightNumber']) ? $val[0]['FlightNumber'] : '',
'CraftType' => isset($val[0]['CraftType']) ? $val[0]['CraftType'] : '',
'Origin' => isset($val[0]['Origin']) ? $val[0]['Origin'] : '',
'Destination' => isset($val[0]['Destination']) ? $val[0]['Destination'] : '',
'AvailablityType' => isset($val[0]['AvailablityType']) ? $val[0]['AvailablityType'] : '',
'Description' => isset($val[0]['Description']) ? $val[0]['Description'] : '',
'Code' => isset($val[0]['Code']) ? $val[0]['Code'] : '',
'RowNo' => isset($val[0]['RowNo']) ? $val[0]['RowNo'] : '',
'SeatNo' => isset($val[0]['SeatNo']) ? $val[0]['SeatNo'] : '',
'SeatType' => isset($val[0]['SeatType']) ? $val[0]['SeatType'] : '',
'SeatWayType' => isset($val[0]['SeatWayType']) ? $val[0]['SeatWayType'] : '',
'Compartment' => isset($val[0]['Compartment']) ? $val[0]['Compartment'] : '',
'Deck' => isset($val[0]['Deck']) ? $val[0]['Deck'] : '',
'Currency' => isset($val[0]['Currency']) ? $val[0]['Currency'] : '',
'Price' => isset($val[0]['Price']) ? $val[0]['Price'] : '',
);
}
}
//$getSalutation = getSalutationByid(NULL, $paxTitle);
if (trim($customer[$intK]['salution']) == '2' || trim($customer[$intK]['salution']) == '3' || trim($customer[$intK]['salution']) == '5') {
$intGender = '2';
} else {
$intGender = '1';
}
$arrPassengers[$intK] = [
'Title' => $paxTitle,
'FirstName' => trim($customer[$intK]['firstname']),
'LastName' => trim($customer[$intK]['lastname']),
'PaxType' => (int)$customer[$intK]['paxType'],
'Gender' => $intGender,
'AddressLine1' => trim($customer[$intK]['address']),
'AddressLine2' => '',
'City' => trim($customer[$intK]['city']),
'CountryCode' => !empty(trim($customer[$intK]['countryCodeISO'])) ? trim($customer[$intK]['countryCodeISO']) : 'IN',
'CountryName' => trim($customer[$intK]['countryName']),
'ContactNo' => trim($customer[$intK]['mobile']),
'Email' => trim($customer[$intK]['email']),
'IsLeadPax' => $intMemberSysId,
'Nationality' => !empty(trim($customer[$intK]['countryCodeISO'])) ? trim($customer[$intK]['countryCodeISO']) : 'IN',
'FFAirline' => '',
'FFNumber' => '',
'Fare' => [
'BaseFare' => number_format($intBaseFare, 2, '.', ''),
'Tax' => number_format($intTax, 2, '.', ''),
'TransactionFee' => $intTransactionFee,
'YQTax' => $intYQTax,
'PassengerType' => $PassengerType,
'PassengerCount' => $PassengerCount,
'AdditionalTxnFeeOfrd' => $intAdditionalTxnFeeOfrd,
'AdditionalTxnFeePub' => $intAdditionalTxnFeePub,
'AirTransFee' => $intAirTransFee,
],
];
if ($customer[$intK]['paxType'] == 1) {
if ($isAdobrMandatory == 1) {
$arrPassengers[$intK]['DateOfBirth'] = $customer[$intK]['dateofbirth'] . 'T00:00:00';
}
}
if ($customer[$intK]['paxType'] == '2') {
if ($isCdobrMandatory == 1) {
$arrPassengers[$intK]['DateOfBirth'] = $customer[$intK]['dateofbirth'] . 'T00:00:00';
}
}
if ($customer[$intK]['paxType'] == '3') {
if ($isIdobrMandatory == 1) {
$arrPassengers[$intK]['DateOfBirth'] = $customer[$intK]['dateofbirth'] . 'T00:00:00';
}
}
if ($IsPassMandatory == 1) {
$arrPassengers[$intK]['DateOfBirth'] = $customer[$intK]['dateofbirth'] . 'T00:00:00';
$arrPassengers[$intK]['PassportNo'] = $customer[$intK]['passportno'];
$arrPassengers[$intK]['PassportExpiry'] = $customer[$intK]['passportnoexpiry'];
///$arrPassengers[$intK]['PassportIssueCountryCode'] = isset($customer[$intK]['countryCodeISO']) ? $customer[$intK]['countryCodeISO'] : 'IN';
$arrPassengers[$intK]['PassportIssueDate'] = $customer[$intK]['passporIssue'];
$arrPassengers[$intK]['PassportIssueCountryCode'] = isset($customer[$intK]['PassportNationality']) ? $customer[$intK]['PassportNationality'] : 'IN';
// $arrPassengers[$intK]['CellCountryCode'] = '+' . $customer[$intK]['countryCode'];
$arrPassengers[$intK]['CellCountryCode'] = '+91';
}
// jyt add code
if (!empty($fareIdentifier) && $fareIdentifier == 'NDC') {
$arrPassengers[$intK]['PassportIssueDate'] = $customer[$intK]['passporIssue'];
$arrPassengers[$intK]['CellCountryCode'] = '+91';
// $arrPassengers[$intK]['CellCountryCode'] = '+91' . $customer[$intK]['countryCode'];
}
if (isset($MealArr) && !empty($MealArr)) {
$arrPassengers[$intK]['MealDynamic'] = $MealArr;
}
if (isset($BaggageArr) && !empty($BaggageArr)) {
$arrPassengers[$intK]['Baggage'] = $BaggageArr;
}
if (isset($SeatArr) && !empty($SeatArr)) {
$arrPassengers[$intK]['SeatDynamic'] = $SeatArr;
}
if ($isDocIdAllowedMandatory) {
$arrPassengers[$intK]['DocumentDetails'] = [
[
"DocumentTypeId" => $DocumentTypeId,
"DocumentNumber" => isset($customer[$intK]['docid']) ? $customer[$intK]['docid'] : '',
]
];
}
if ($isgstapply == 1) {
$arrPassengers[$intK]['GSTCompanyAddress'] = isset($gstData['GstAddress']) ? $gstData['GstAddress'] : '';
$arrPassengers[$intK]['GSTCompanyContactNumber'] = isset($gstData['GstPhone']) ? $gstData['GstPhone'] : '';
$arrPassengers[$intK]['GSTCompanyName'] = isset($gstData['GstCompany']) ? $gstData['GstCompany'] : '';
$arrPassengers[$intK]['GSTNumber'] = isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '';
$arrPassengers[$intK]['GSTCompanyEmail'] = isset($gstData['GstEmail']) ? $gstData['GstEmail'] : '';
}
$intK++;
}
}
if ($value['IsLCC'] == 1 || $value['IsLCC'] == '1') {
///// This action perform on bookflight action
$requestTicket[$k] = array(
'PreferredCurrency' => 'INR',
'IsBaseCurrencyRequired' => 'true',
'EndUserIp' => '',
'TokenId' => '',
'TraceId' => $flightKey,
'ResultIndex' => $ApiResultIndex,
'Passengers' => $arrPassengers,
);
} else {
$requestTicket[$k] = array(
'PreferredCurrency' => 'INR',
'IsBaseCurrencyRequired' => 'true',
'EndUserIp' => '',
'TokenId' => '',
'TraceId' => $flightKey,
'ResultIndex' => $ApiResultIndex,
'Passengers' => $arrPassengers,
);
}
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($ProcessingAmount) && $ProcessingAmount > 0 && $flexiPayment == 1) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Processing Fee',
'Description' => 'Flexi Payment',
'ItemQty' => 1,
'ItemRates' => ($ProcessingAmount),
'Total' => $ProcessingAmount,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $ProcessingAmount,
'ServiceFeeTotal' => $GSTOnProcessing,
'GSTPercentage' => '18',
'TotalGST' => $GSTOnProcessing,
'SGST' => ($gstvalidate['SGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'CGST' => ($gstvalidate['CGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'IGST' => ($gstvalidate['IGST'] == 1) ? round($GSTOnProcessing,2) : 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = (float)($GSTOnMarkUp_);
$TotalDiscount = 0;
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => ($isgstapply == 1)?1:0,
'ClientGSTNumber' => $GSTINFO,
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
// echo '<pre>';print_r($agencyMarkUpGST);
// echo '<pre>';print_r($gstvalidate);
// echo '<pre>';print_r($Invoicedata);
// die;
if($flexiPayment == 1){
$Invoicedata['TotalDueAmount'] = ($PublishedFare - ($BookableAmount + $GSTOnProcessing + $ProcessingAmount));
$Invoicedata['TotalAdvance'] = ($BookableAmount + $ProcessingAmount + $GSTOnProcessing);
$Invoicedata['InvoiceStatus'] = 2;
}
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBooking($post, $AgencySysId, $Securitykey)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$bookingHold = (isset($post['bookingHold']) && !empty($post['bookingHold'])) ? $post['bookingHold'] : 0;
$flexiPayment = (isset($post['flexiPayment']) && !empty($post['flexiPayment'])) ? $post['flexiPayment'] : 0;
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$APIbookingId = isset($BookingData[0]['APIBookingId']) ? $BookingData[0]['APIBookingId'] : '';
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isHoldAllowed = isset($BookingData[0]['isHoldAllowed']) ? $BookingData[0]['isHoldAllowed'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$isDocIdAllowedMandatory = isset($BookingData[0]['isDocIdAllowedMandatory']) ? $BookingData[0]['isDocIdAllowedMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = isset($BookingData[0]['flightKey']) ? $BookingData[0]['flightKey'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$MasterAgencyData = $this->getAgencyData($AgencySysId, $Securitykey);
$gstnnumber = isset($MasterAgencyData['GSTINFO']) ? $MasterAgencyData['GSTINFO'] : '';
$GSTINFO = isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '';
$gstvalidate = $this->gstvalidate($gstnnumber, $GSTINFO);
$arrPassengers = [];
$deliveryInfo = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
$APITotalMealPrice = 0;
$APITotalBagPrice = 0;
$APITotalSeatPrice = 0;
foreach ($customer as $key => $value) {
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$SelectedBag = !empty($value['SelectedBag']) ? json_decode($value['SelectedBag'], 1) : '';
$SelectedMeal = !empty($value['SelectedMeal']) ? json_decode($value['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($value['SelectedSeat']) ? json_decode($value['SelectedSeat'], 1) : '';
if ($value['paxType'] == '1') {
$PaxType = 'ADULT';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
}
if ($value['paxType'] == '2') {
$PaxType = 'CHILD';
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
}
if ($value['paxType'] == '3') {
$PaxType = 'INFANT';
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
}
if ($key == 0) {
$deliveryInfo['emails'][$key] = trim($value['email']);
$deliveryInfo['contacts'][$key] = trim($value['countryCode']) . '' . trim($value['mobile']);
}
$arrPassengers[$key] = [
'ti' => $paxTitle,
'fN' => trim($value['firstname']),
'lN' => trim($value['lastname']),
'pt' => $PaxType,
];
if ($value['paxType'] == '1') {
if ($isAdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $value['dateofbirth'];
}
}
if ($value['paxType'] == '2') {
if ($isCdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $value['dateofbirth'];
}
}
if ($value['paxType'] == '3') {
if ($isIdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $value['dateofbirth'];
}
}
if ($IsPassMandatory == 1) {
$arrPassengers[$key]['pNum'] = $value['passportno'];
$arrPassengers[$key]['eD'] = $value['passportnoexpiry'];
$arrPassengers[$key]['pid'] = $value['passporIssue'];
$arrPassengers[$key]['pNat'] = $value['PassportNationality'];
}
if ($isDocIdAllowedMandatory == 1) {
$arrPassengers[$key]['di'] = isset($value['docid']) ? $value['docid']:'';
}
$MealArr = [];
if (!empty($SelectedMeal)) {
foreach ($SelectedMeal as $key_ => $val) {
$APITotalMealPrice += isset($val[0]['cost']) ? $val[0]['cost'] : 0;
$MealArr[] = array('key' => $val[0]['key'], 'code' => $val[0]['Code']);
}
}
$BaggArr = [];
if (!empty($SelectedBag)) {
foreach ($SelectedBag as $key_ => $val) {
$APITotalBagPrice += isset($val[0]['cost']) ? $val[0]['cost'] : 0;
$BaggArr[] = array('key' => $val[0]['key'], 'code' => $val[0]['Code']);
}
}
$SeatArr = [];
if (!empty($SelectedSeat)) {
foreach ($SelectedSeat as $key_ => $val) {
$APITotalSeatPrice += isset($val[0]['amount']) ? $val[0]['amount'] : 0;
$SeatArr[] = array('key' => $val[0]['key'], 'code' => $val[0]['code']);
}
}
if (!empty($MealArr)) {
$arrPassengers[$key]['ssrMealInfos'] = $MealArr;
}
if (!empty($BaggArr)) {
$arrPassengers[$key]['ssrBaggageInfos'] = $BaggArr;
}
if (!empty($SeatArr)) {
$arrPassengers[$key]['ssrSeatInfos'] = $SeatArr;
}
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
$BookableAmount = 0;
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
if ($flexiPayment == 1) {
$BookableAmount += isset($value['FairRules']['BookableAmount']) ? $value['FairRules']['BookableAmount'] : 0;
$ProcessingAmount += isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing += isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
$ProcessingAmount_ = isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing_ = isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
} else {
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
$ProcessingAmount_ = 0;
$GSTOnProcessing_ = 0;
}
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__ + $ProcessingAmount_ + $GSTOnProcessing_);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($ProcessingAmount) && $ProcessingAmount > 0 && $flexiPayment == 1) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Processing Fee',
'Description' => 'Flexi Payment',
'ItemQty' => 1,
'ItemRates' => ($ProcessingAmount),
'Total' => $ProcessingAmount,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $ProcessingAmount,
'ServiceFeeTotal' => $GSTOnProcessing,
'GSTPercentage' => '18',
'TotalGST' => $GSTOnProcessing,
'SGST' => ($gstvalidate['SGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'CGST' => ($gstvalidate['CGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'IGST' => ($gstvalidate['IGST'] == 1) ? round($GSTOnProcessing,2) : 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => $isgstapply,
'ClientGSTNumber' => $GSTINFO,
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
if($flexiPayment == 1){
$Invoicedata['TotalDueAmount'] = ($PublishedFare - ($BookableAmount + $GSTOnProcessing + $ProcessingAmount));
$Invoicedata['TotalAdvance'] = ($BookableAmount + $ProcessingAmount + $GSTOnProcessing);
$Invoicedata['InvoiceStatus'] = 2;
}
$amount = $intPublishedFare;
///echo $amount .'+'. $APITotalMealPrice .'+'. $APITotalBagPrice .'+'. $APITotalSeatPrice;
$paymentInfos[] = array('amount' => number_format(($amount + $APITotalMealPrice + $APITotalBagPrice + $APITotalSeatPrice), 2, '.', ''));
$requestTicket = array(
'bookingId' => $APIbookingId,
'paymentInfos' => $paymentInfos,
'travellerInfo' => $arrPassengers,
'deliveryInfo' => $deliveryInfo,
);
if ($isHoldAllowed == 1 && $bookingHold == 1) {
//$data['paymentInfos'] = $paymentInfos;
unset($requestTicket['paymentInfos']);
}
// if($AgencySysId == '2656'){
// echo "<pre>";print_r(($requestTicket));
// die;
// }
$gstInfo = array(
'gstNumber' => isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '',
'email' => isset($gstData['GstEmail']) ? $gstData['GstEmail'] : '',
'registeredName' => isset($gstData['GstCompany']) ? $gstData['GstCompany'] : '',
'mobile' => isset($gstData['GstPhone']) ? $gstData['GstPhone'] : '',
'address' => isset($gstData['GstAddress']) ? $gstData['GstAddress'] : '',
);
if ($isgstapply == 1) {
$requestTicket['gstInfo'] = $gstInfo;
}
// echo "<pre>";print_r(($requestTicket));
// echo "<pre>";print_r(($Invoicedata));
// die;
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingTRAVCLAN($post, $AgencySysId, $Securitykey)
{
if ($post && $AgencySysId) {
// echo "post<pre>";print_r($post);die;
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$bookingHold = (isset($post['bookingHold']) && !empty($post['bookingHold'])) ? $post['bookingHold'] : 0;
$flexiPayment = (isset($post['flexiPayment']) && !empty($post['flexiPayment'])) ? $post['flexiPayment'] : 0;
$requestTicket = [];
// $ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
// $ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION = unserialize(ARR_SALUTION);
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$APIbookingId = isset($BookingData[0]['APIBookingId']) ? $BookingData[0]['APIBookingId'] : '';
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isHoldAllowed = isset($BookingData[0]['isHoldAllowed']) ? $BookingData[0]['isHoldAllowed'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$isDocIdAllowedMandatory = isset($BookingData[0]['isDocIdAllowedMandatory']) ? $BookingData[0]['isDocIdAllowedMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = isset($BookingData[0]['flightKey']) ? $BookingData[0]['flightKey'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$apiTraceId = isset($BookingData[0]['apiTraceId']) ? $BookingData[0]['apiTraceId'] : '';
$MasterAgencyData = $this->getAgencyData($AgencySysId, $Securitykey);
$gstnnumber = isset($MasterAgencyData['GSTINFO']) ? $MasterAgencyData['GSTINFO'] : '';
$GSTINFO = isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '';
$gstvalidate = $this->gstvalidate($gstnnumber, $GSTINFO);
$PaxData = [];
$deliveryInfo = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
$APITotalMealPrice = 0;
$APITotalBagPrice = 0;
$APITotalSeatPrice = 0;
// echo "arrUrlData<pre>";print_r(json_encode($arrUrlData));
// die;
foreach ($customer as $key => $value) {
$bagAmt = 0;
$mealAmt = 0;
$seatAmt = 0;
$ssr = [];
$seatData = [];
$baggData = [];
$mealData = [];
if ($key == 0) {
$isLeadPax = true;
} else {
$isLeadPax = false;
}
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$SelectedBag = !empty($value['SelectedBag']) ? json_decode($value['SelectedBag'], 1) : '';
$SelectedMeal = !empty($value['SelectedMeal']) ? json_decode($value['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($value['SelectedSeat']) ? json_decode($value['SelectedSeat'], 1) : '';
if(!empty($SelectedBag)){
foreach ($SelectedMeal as $STSEC => $valBg) {
$baggData[] = ["code" => isset($valBg[0]['Code']) ? $valBg[0]['Code'] :'',
"origin" => isset($valBg[0]['Origin']) ? $valBg[0]['Origin'] :'',
"destination" => isset($valBg[0]['Destination']) ? $valBg[0]['Destination']:'',
"amt" => isset($valBg[0]['Price']) ? $valBg[0]['Price'] :0
];
}
}
if(!empty($SelectedMeal)){
foreach ($SelectedMeal as $STSEC => $valML) {
$mealData[] = ["code" => isset($valML[0]['Code']) ? $valML[0]['Code'] :'',
"origin" => isset($valML[0]['Origin']) ? $valML[0]['Origin'] :'',
"destination" => isset($valML[0]['Destination']) ? $valML[0]['Destination'] :'',
"amt" => isset($valML[0]['Price']) ? $valML[0]['Price'] :0
];
}
}
if(!empty($SelectedSeat)){
foreach ($SelectedSeat as $STSEC => $valST) {
$seatData[] = ["code" => isset($valST[0]['code']) ? $valST[0]['code'] :'',
"origin" => isset($valST[0]['Origin']) ? $valST[0]['Origin'] :'',
"destination" => isset($valST[0]['Destination']) ? $valST[0]['Destination']:'',
"amt" => isset($valST[0]['Price']) ? $valST[0]['Price'] :0,
"seat" => isset($valST[0]['seatNo']) ? $valST[0]['seatNo'] :''
];
}
}
if($baggData){
$ssr['baggage'] = $baggData;
}
if($mealData){
$ssr['meal'] = $mealData;
}
if($seatData){
$ssr['seat'] = $seatData;
}
if($value['paxType'] == 1){
$paxTitle = ($ARR_SALUTION[$value['salution']]);
$paxTitle = ($paxTitle == 'Ms')?'Miss':$paxTitle;
}elseif($value['paxType'] == 2){
$paxTitle = ($ARR_SALUTION[$value['salution']]);
}else{
$paxTitle = ($ARR_SALUTION[$value['salution']]);
$paxTitle = ($paxTitle == 'Mstr')?'Mr':$paxTitle;
}
if (trim($value['salution']) == '2' || trim($value['salution']) == '3' || trim($value['salution']) == '5') {
$intGender = 'Female';
} else {
$intGender = 'Male';
}
$PaxData[] = [
"title" => $paxTitle,
"firstName" => $value['firstname'],
"lastName" => $value['lastname'],
"passportNumber" => ($IsPassMandatory) ? $value['passportno'] : "",
"passportExpiry" => ($IsPassMandatory) ? date('Y-m-d',(strtotime($value['passportnoexpiry']))) : null,//"2026-12-06",
"passportIssueDate" => ($IsPassMandatory) ? date('Y-m-d',(strtotime($value['passporIssue']))) : null,//"2026-12-06",
"gender" => $intGender,
"isLeadPax" => $isLeadPax,
"paxType" => (int)$value['paxType'],
"addressLineOne" => "",
"addressLineTwo" => "",
"city" => "",
"cellCountryCode" => $value['countryCode'],
"contactNumber" => (string)$value['mobile'],
"countryCode" => $value['countryCodeISO'],
"countryName" => "India",
"dateOfBirth" => isset($value['dateofbirth']) ? $value['dateofbirth'] :'',//"1987-12-06",
"email" => $value['email'],
"frequentFlyerAirlineCode" => null,
"frequentFlyerNumber" => null,
"gstCompanyAddress" => (isset($value['gstaddress']) && !empty($value['gstaddress'])) ? $value['gstaddress']:null,
"gstCompanyContactNumber" => (isset($value['gstphone']) && !empty($value['gstphone'])) ? $value['gstphone']:null,
"gstCompanyEmail" => (isset($value['gstemail']) && !empty($value['gstemail'])) ? $value['gstemail']:null,
"gstCompanyName" => (isset($value['companyname']) && !empty($value['companyname'])) ? $value['companyname']:null,
"gstNumber" => (isset($value['gstnnumber']) && !empty($value['gstnnumber'])) ? $value['gstnnumber']:null,
"ssr" => isset($ssr) && !empty($ssr) ? $ssr :""
];
}
$request['itineraryCode'] = $flightKey;
$request['post'] = array(
"traceId" => $apiTraceId,
"passengers" => $PaxData
);
$data = array('status' => true, 'message' => 'success', 'requestBook' => $request, 'Invoicedata' => '');
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function gstvalidate($clientgst, $agencygst = null)
{
if ($clientgst && $agencygst) {
$tin_client = substr($clientgst, 0, 2);
$tin_agency = substr($agencygst, 0, 2);
$url = $this->baseUrl . "public/data/gst-state-code-list.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
curl_close($ch);
$response = json_decode($output, true);
if ($tin_client && $tin_agency) {
$tin_clientId = array_filter($response, function ($var) use ($tin_client) {
return ($var['tin'] == $tin_client);
});
$tin_agencyId = array_filter($response, function ($var) use ($tin_agency) {
return ($var['tin'] == $tin_agency);
});
$tin_clientId = array_values($tin_clientId);
$tin_agencyId = array_values($tin_agencyId);
$tin_clientId = (isset($tin_clientId[0]['tin']) && !empty($tin_clientId[0]['tin'])) ? $tin_clientId[0]['tin'] : '';
$tin_agencyId = (isset($tin_agencyId[0]['tin']) && !empty($tin_agencyId[0]['tin'])) ? $tin_agencyId[0]['tin'] : '';
if ($tin_clientId == $tin_agencyId) {
$data = array('SGST' => true, 'CGST' => true, 'IGST' => false, 'client' => $tin_clientId, 'agency' => $tin_agencyId);
} else {
$data = array('SGST' => false, 'CGST' => false, 'IGST' => true, 'client' => $tin_clientId, 'agency' => $tin_agencyId);
}
}
return $data;
} else {
$data = array('SGST' => true, 'CGST' => true, 'IGST' => false, 'client' => 0, 'agency' => 0);
return ($data);
}
}
public function apiFlightBookingEtrave($post, $AgencySysId)
{
if ($post) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$APIbookingId = isset($BookingData[0]['APIBookingId']) ? $BookingData[0]['APIBookingId'] : '';
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = isset($BookingData[0]['flightKey']) ? $BookingData[0]['flightKey'] : '';
$searchID = (isset($post['searchID']) && !empty($post['searchID'])) ? $post['searchID'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$arrPassengers = [];
$deliveryInfo = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
$APITotalMealPrice = 0;
$APITotalBagPrice = 0;
$APITotalSeatPrice = 0;
$misxItems_name = [];
$BookingFlightDetails = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
$BaggSSRInfo = [];
$MealsSSRInfo = [];
$SeatsSSRInfo = [];
if ($value['Segments']) {
foreach ($value['Segments'] as $seg) {
}
}
$BookingSSRDetails = array_merge($BaggSSRInfo, $MealsSSRInfo, $SeatsSSRInfo);
$BookingFlightDetails[] = array(
'Search_Key' => $value['Search_Key'],
'Flight_Key' => $value['Flight_Key'],
'BookingSSRDetails' => $BookingSSRDetails,
);
}
foreach ($customer as $key => $val) {
$TotalBagPrice += !empty($val['BagPrice']) ? ($val['BagPrice']) : 0;
$TotalMealPrice += !empty($val['MealPrice']) ? ($val['MealPrice']) : 0;
$TotalSeatPrice += !empty($val['SeatPrice']) ? ($val['SeatPrice']) : 0;
$SelectedBag = !empty($val['SelectedBag']) ? json_decode($val['SelectedBag'], 1) : '';
$SelectedMeal = !empty($val['SelectedMeal']) ? json_decode($val['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($val['SelectedSeat']) ? json_decode($val['SelectedSeat'], 1) : '';
$DOB = date('m/d/Y', strtotime($val['dateofbirth']));
if ($val['paxType'] == '1') {
$PaxType = 0;
$DOBRequired = $isAdobrMandatory;
$paxTitle = ($ARR_SALUTION[$val['salution']]);
//$paxTitle = ($paxTitle == 'Ms') ? 'Miss' : $paxTitle;
}
if ($val['paxType'] == '2') {
$PaxType = 1;
$DOBRequired = $isCdobrMandatory;
$paxTitle = ($ARR_SALUTION_CHILD[$val['salution']]);
$paxTitle = ($paxTitle == 'Miss') ? 'Ms' : $paxTitle;
}
if ($val['paxType'] == '3') {
$PaxType = 2;
$DOBRequired = $isIdobrMandatory;
$paxTitle = ($ARR_SALUTION_CHILD[$val['salution']]);
$paxTitle = ($paxTitle == 'Miss') ? 'Ms' : $paxTitle;
}
if (trim($val['salution']) == '2' || trim($val['salution']) == '3' || trim($val['salution']) == '5') {
$intGender = 1;
} else {
$intGender = 0;
}
$Age = date_diff(date_create($val['dateofbirth']), date_create('today'))->y;
$PaxData[] = array(
"Pax_Id" => ($key + 1),
"Title" => $paxTitle,
"First_Name" => $val['firstname'],
"Last_Name" => $val['lastname'],
"DOB" => ($DOBRequired) ? $DOB : null,
"Age" => ($DOBRequired) ? $Age : null,
"Gender" => $intGender,
"Pax_type" => $PaxType,
"Passport_Issuing_Country" => ($IsPassMandatory) ? $val['PassportNationality'] : "",
"Passport_Number" => ($IsPassMandatory) ? $val['passportno'] : "",
"Passport_Expiry" => ($IsPassMandatory) ? $val['passportnoexpiry'] : "",
"Nationality" => $val['countryCodeISO'],
"FrequentFlyerDetails" => null,
);
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$gstvalidate = [];
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => 0,
'ClientGSTNumber' => '',
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
$gstInfo = array(
'gstNumber' => isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '',
'email' => isset($gstData['GstEmail']) ? $gstData['GstEmail'] : '',
'registeredName' => isset($gstData['GstCompany']) ? $gstData['GstCompany'] : '',
'mobile' => isset($gstData['GstPhone']) ? $gstData['GstPhone'] : '',
'address' => isset($gstData['GstAddress']) ? $gstData['GstAddress'] : '',
);
$requestTicket = array(
'Auth_Header' => array(
"IP_Address" => $_SERVER['REMOTE_ADDR'],
"Request_Id" => $searchID,
"IMEI_Number" => "3434334343111"
),
'Customer_Mobile' => $customer[0]['mobile'],
'Passenger_Mobile' => $customer[0]['mobile'],
'WhatsAPP_Mobile' => $customer[0]['mobile'],
'Passenger_Email' => $customer[0]['email'],
'PAX_Details' => $PaxData,
'GST' => $isgstapply,
'GST_Number' => ($isgstapply) ? $gstInfo['gstNumber'] : '',
'GST_HolderName' => ($isgstapply) ? $gstInfo['registeredName'] : '',
'GST_Address' => ($isgstapply) ? $gstInfo['address'] : '',
'BookingFlightDetails' => $BookingFlightDetails,
'CostCenterId' => 0,
'ProjectId' => 0,
'BookingRemark' => '',
'CorporateStatus' => 0,
'CorporatePaymentMode' => 0,
'MissedSavingReason' => null,
'CorpTripType' => null,
'CorpTripSubType' => null,
'TripRequestId' => null,
'BookingAlertIds' => null,
);
// echo "<pre>";print_r(($requestTicket));
// echo "<pre>";print_r(($Invoicedata));
// die;
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingSFAPI($post, $AgencySysId)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$ICSourceSysId = (isset($post['ICSourceSysId']) && !empty($post['ICSourceSysId'])) ? $post['ICSourceSysId'] : 0;
$APIbookingId = isset($BookingData[0]['APIBookingId']) ? $BookingData[0]['APIBookingId'] : '';
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = isset($BookingData[0]['flightKey']) ? $BookingData[0]['flightKey'] : '';
$bookingId = isset($BookingData[0]['ticket_id']) ? $BookingData[0]['ticket_id'] : '';
$TravelDate = isset($BookingData[0]['FromUTCTime']) ? date('Y-m-d', strtotime($BookingData[0]['FromUTCTime'])) : '';
$booking_token_id = isset($BookingData[0]['booking_token_id']) ? $BookingData[0]['booking_token_id'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$static = isset($BookingData[0]['static']) ? $BookingData[0]['static'] : '';
$adultCount = isset($post['AdultCount']) ? $post['AdultCount'] : 0;
$childCount = isset($post['ChildCount']) ? $post['ChildCount'] : 0;
$infantCount = isset($post['InfantCount']) ? $post['InfantCount'] : 0;
$totalPaxCount = $adultCount + $childCount + $infantCount;
$emails = trim($customer[0]['email']);
$contacts = trim($customer[0]['mobile']);
$contact_name = trim($customer[0]['firstname']) . ' ' . trim($customer[0]['lastname']);
$arrPassengers = [];
$deliveryInfo = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
$APITotalMealPrice = 0;
$APITotalBagPrice = 0;
$APITotalSeatPrice = 0;
foreach ($customer as $key => $value) {
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$SelectedBag = !empty($value['SelectedBag']) ? json_decode($value['SelectedBag'], 1) : '';
$SelectedMeal = !empty($value['SelectedMeal']) ? json_decode($value['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($value['SelectedSeat']) ? json_decode($value['SelectedSeat'], 1) : '';
$strPaxDateOfBirth = $value['dateofbirth'];
if ($value['paxType'] == '1') {
$PaxType = 'ADULT';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
$strPaxDateOfBirth = date('Y-m-d', strtotime('-20 years'));
}
if ($value['paxType'] == '2') {
$PaxType = 'CHILD';
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
$strPaxDateOfBirth = date('Y-m-d', strtotime('-5 years'));
}
if ($value['paxType'] == '3') {
$PaxType = 'INFANT';
$strPaxDateOfBirth = $strPaxDateOfBirth;
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
}
if ($paxTitle == 'Master') {
$gender = 'Mstr';
} elseif ($paxTitle == 'Ms') {
$gender = 'Miss';
} else {
$gender = $paxTitle;
}
$Age = date_diff(date_create($strPaxDateOfBirth), date_create('today'))->y;
$arrPassengers[$key] = array(
"gender" => $gender,
"first_name" => trim($value['firstname']),
"middle_name" => "",
"last_name" => trim($value['lastname']),
"age" => (int)$Age,
"dob" => $strPaxDateOfBirth,
"passport_no" => "",
"passport_expire_date" => "",
);
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$gstvalidate = [];
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => 0,
'ClientGSTNumber' => '',
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
$amount = ($intPublishedFare);
$requestTicket = array(
"adult" => (int)$adultCount,
"children" => (int)$childCount,
"infant" => (int)$infantCount,
"total_book_seats" => (int)$totalPaxCount,
"total_amount" => $amount,
"contact_name" => $contact_name,
"contact_email" => $emails,
"contact_number" => $contacts,
"return_date" => "",
"flight_traveller_details" => $arrPassengers,
"booking_token_id" => $booking_token_id,
"end_user_ip" => ''
);
if($ICSourceSysId == 23){
$requestTicket['id'] = $bookingId;
$requestTicket['onward_date'] = $TravelDate;
$requestTicket['dep_city_code'] = $SourceAirportCode;
$requestTicket['arr_city_code'] = $DestAirportCode;
$requestTicket['static'] = $static;
$requestTicket['travel_z_gear'] = 1;
}else{
$requestTicket['flight_id'] = $bookingId;
$requestTicket['departure_date'] = $TravelDate;
$requestTicket['travel_z_gear'] = 0;
}
// echo "<pre>";print_r(($requestTicket));
// echo "<pre>";print_r(($Invoicedata));
// die;
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingAIRIQFULL($post, $AgencySysId)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$IsInternational = isset($BookingData[0]['IsInternational']) ? $BookingData[0]['IsInternational'] :false;
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$isHoldAllowed = isset($BookingData[0]['isHoldAllowed']) ? $BookingData[0]['isHoldAllowed'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$JourneyType = isset($BookingData[0]['JourneyType']) ? $BookingData[0]['JourneyType'] : 1;
$adultCount = isset($post['AdultCount']) ? $post['AdultCount'] : 0;
$childCount = isset($post['ChildCount']) ? $post['ChildCount'] : 0;
$infantCount = isset($post['InfantCount']) ? $post['InfantCount'] : 0;
$totalPaxCount = $adultCount + $childCount + $infantCount;
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$ticket_id = isset($BookingData[0]['ticket_id']) ? $BookingData[0]['ticket_id'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$emails = trim($customer[0]['email']);
$contacts = trim($customer[0]['mobile']);
$contact_name = trim($customer[0]['firstname']) . ' ' . trim($customer[0]['lastname']);
$PaxData = [];
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $key => $val) {
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
// if (!empty($selectedSeatSession) && isset($selectedSeatSession[$seg['segmentid']]) && !empty($selectedSeatSession[$seg['segmentid']])) {
// $selectedSeat = $selectedSeatSession[$seg['segmentid']];
// foreach ($selectedSeat as $ck=>$val) {
// $SeatPrice_ += $val['amount'];
// $SeatPrice += $val['amount'];
// $SeatsSSRInfo[] = ['SeatID'=>$val['SeatID'],'PaxRefNumber'=>$ck];
// }
// }
// if (!empty($SelectedBaggSessionNew) && isset($SelectedBaggSessionNew[$seg['segmentid']]) && !empty($SelectedBaggSessionNew[$seg['segmentid']])) {
// $selectedBag = $SelectedBaggSessionNew[$seg['segmentid']];
// foreach ($selectedBag as $ck=>$val) {
// $BagPrice_ += $val['Price'];
// $BagPrice += $val['Price'];
// }
// }
// if (!empty($SelectedMealSessionNew) && isset($SelectedMealSessionNew[$seg['segmentid']]) && !empty($SelectedMealSessionNew[$seg['segmentid']])) {
// $selectedMeal = $SelectedMealSessionNew[$seg['segmentid']];
// foreach ($selectedMeal as $ck=>$val) {
// $MealPrice_ += $val['Price'];
// $MealPrice += $val['Price'];
// $MealsSSRInfo[] = ['MealID'=>$val['MealID'],'PaxRefNumber'=>$ck];
// }
// }
// if ($SelectedSeat) {
// foreach ($SelectedSeat as $STSEC => $valST) {
// $seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
// $amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
// $ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
// }
// }
// if ($SelectedBag) {
// foreach ($SelectedBag as $STSEC => $valST) {
// $Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
// $SSR_TypeDesc = isset($valST[$key]['Description']) ? $valST[$key]['Description'] : '';
// $amount = isset($valST[$key]['Price']) ? $valST[$key]['Price'] : '';
// $BaggSSRInfo[] = ['BaggageID'=>$val['BaggageID'],'PaxRefNumber'=>$ck];
// // $ssrBaggageInfos[$STSEC] = ['BaggageID' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
// }
// }
// if ($SelectedMeal) {
// foreach ($SelectedMeal as $STSEC => $valST) {
// $Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
// $SSR_TypeDesc = isset($valST[$key]['Description']) ? $valST[$key]['Description'] : '';
// $amount = isset($valST[$key]['Price']) ? $valST[$key]['Price'] : '';
// $ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
// }
// }
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
$DOB = isset($val['dateofbirth']) ? date('d/m/Y',strtotime($val['dateofbirth'])) :'';
if($val['paxType'] == 1){
$PaxType = 'ADT';
$InfantRef = false;
$paxTitle = $val['title'];
}elseif($val['paxType'] == 2){
$PaxType = 'CHD';
$InfantRef = false;
$paxTitle = $val['title'];
}else{
$PaxType = 'INF';
$InfantRef = 1;
$paxTitle = $val['title'];
}
if (trim($val['salution']) == '2' || trim($val['salution']) == '3' || trim($val['salution']) == '5') {
$intGender = 'Female';
} else {
$intGender = 'Male';
}
$PaxData[$key] = array(
"PaxRefNumber"=>(string)($key+1),
"Title"=>$paxTitle,
"FirstName"=> $val['firstname'],
"LastName"=>$val['lastname'],
"Gender"=>$intGender,
"PaxType"=>$PaxType,
"PassportCountryCode"=>($IsPassMandatory)?$val['PassportNationality']:"",
"PassportNo"=>($IsPassMandatory)?$val['PassportNo']:"",
"PassportExpiry"=>($IsPassMandatory)?date('d/m/Y',strtotime($val['PassportExpiry'])):"",
"PassportIssuedDate"=>($IsPassMandatory)?date('d/m/Y',strtotime($val['passporIssue'])):"",
"InfantRef"=>$InfantRef
);
if ($isAdobrMandatory == 1 && $val['paxType'] == 1) {
$PaxData[$key]['DOB'] = $DOB;
}
if ($isCdobrMandatory == 1 && $val['paxType'] == 2) {
$PaxData[$key]['DOB'] = $DOB;
}
if ($isIdobrMandatory == 1 && $val['paxType'] == 3) {
$PaxData[$key]['DOB'] = $DOB;
}
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
foreach ($BookingData as $k => $value) {
$FlighstInfo = [];
$GrossAmount = 0;
$TotalAmount_ = 0;
$intPublishedFare += $value['FairRules']['intPublishedFare'];
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
$GrossAmount = (isset($value['FairRules']['GrossAmount'])) ? $value['FairRules']['GrossAmount'] : 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
if ($value['Segments']) {
foreach ($value['Segments'] as $seg) {
$FlighstInfo[] = array(
'FlightID'=> $seg['segmentid'],
'FlightNumber'=> str_replace('-',' ',$seg['SegFlightNumber']),
'Origin'=> $seg['originAirportCode'],
'Destination'=> $seg['destinationAirportCode'],
'DepartureDateTime'=> isset($seg['originDepTime']) ? date('d M Y H:i', strtotime($seg['originDepTime'])) :'',
'ArrivalDateTime'=> isset($seg['destinationArrTime']) ? date('d M Y H:i', strtotime($seg['destinationArrTime'])) :'',
);
}
}
$TotalAmount_ = ($GrossAmount + $BagPrice + $MealPrice + $SeatPrice);
$ItineraryFlightsInfo[$k]['Token'] = $value['Token'];
$ItineraryFlightsInfo[$k]['FlighstInfo'] = $FlighstInfo;
$ItineraryFlightsInfo[$k]['PaymentMode'] = 'T';
$ItineraryFlightsInfo[$k]['PaymentInfo'] = [['TotalAmount'=>$TotalAmount_]];
if(!empty($BaggSSRInfo)){
$ItineraryFlightsInfo[$k]['BaggSSRInfo'] = $BaggSSRInfo;
}
if(!empty($MealsSSRInfo)){
$ItineraryFlightsInfo[$k]['MealsSSRInfo'] = $MealsSSRInfo;
}
if(!empty($SeatsSSRInfo)){
$ItineraryFlightsInfo[$k]['SeatsSSRInfo'] = $SeatsSSRInfo;
}
}
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$gstvalidate = [];
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => 0,
'ClientGSTNumber' => '',
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
$requestTicket = array(
'BaseOrigin'=>$SourceAirportCode,
'BaseDestination'=>$DestAirportCode,
'TripType'=>($JourneyType == 2)?'R':'O',
'AdultCount'=>$adultCount,
'ChildCount'=>$childCount,
'InfantCount'=>$infantCount,
'TrackId'=>$ApiResultIndex,
'BlockPNR'=>$isHoldAllowed,
'AgentInfo'=>[],
'ItineraryFlightsInfo'=>$ItineraryFlightsInfo,
'PaxDetailsInfo'=>$PaxData,
'AddressDetails'=>[
'CountryCode' => $customer[0]['countryCode'],
'ContactNumber' =>$customer[0]['mobile'],
'EmailID' =>$customer[0]['email']
],
);
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingAIRIQ($post, $AgencySysId)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$ticket_id = isset($BookingData[0]['ticket_id']) ? $BookingData[0]['ticket_id'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$adultCount = isset($post['AdultCount']) ? $post['AdultCount'] : 0;
$childCount = isset($post['ChildCount']) ? $post['ChildCount'] : 0;
$infantCount = isset($post['InfantCount']) ? $post['InfantCount'] : 0;
$totalPaxCount = $adultCount + $childCount + $infantCount;
$emails = trim($customer[0]['email']);
$contacts = trim($customer[0]['mobile']);
$contact_name = trim($customer[0]['firstname']) . ' ' . trim($customer[0]['lastname']);
$arrPassengers = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
foreach ($customer as $key => $value) {
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$strPaxDateOfBirth = $value['dateofbirth'];
if ($value['paxType'] == '1') {
$PaxType = 'adult_info';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
$strPaxDateOfBirth = date('Y-m-d', strtotime('-20 years'));
}
if ($value['paxType'] == '2') {
$PaxType = 'child_info';
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
$strPaxDateOfBirth = date('Y-m-d', strtotime('-5 years'));
}
if ($value['paxType'] == '3') {
$PaxType = 'infant_info';
$strPaxDateOfBirth = $strPaxDateOfBirth;
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
}
if ($paxTitle == 'Master') {
$gender = 'Mstr.';
} elseif ($paxTitle == 'Mr') {
$gender = 'Mr.';
} elseif ($paxTitle == 'Ms') {
$gender = 'Miss';
} else {
$gender = $paxTitle;
}
$arrPassengers[$value['paxType']][$key] = array(
"title" => $gender,
"first_name" => trim($value['firstname']),
"last_name" => trim($value['lastname']),
"dob" => date('Y/m/d', strtotime($strPaxDateOfBirth)),
);
if ($value['paxType'] == '3') {
$arrPassengers[$value['paxType']][$key]['travel_with'] = 1;
}
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$gstvalidate = [];
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => 0,
'ClientGSTNumber' => '',
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
// I have change this requestTicket data set because show API 3 pax add "The child info fields is required." before this data to send req arrPassengers
$requestTicket['adult_info'] = isset($arrPassengers[1]) ? array_values($arrPassengers[1]) : '';
if ($arrPassengers[2] && !empty($arrPassengers[2])) {
$requestTicket['child_info'] = isset($arrPassengers[2]) ? array_values($arrPassengers[2]) : '';
}
if ($arrPassengers[3] && !empty($arrPassengers[3])) {
$requestTicket['infant_info'] = isset($arrPassengers[3]) ? array_values($arrPassengers[3]) : '';
}
$requestTicket["adult"] = (int)$adultCount;
$requestTicket["child"] = (int)$childCount;
$requestTicket["infant"] = (int)$infantCount;
$requestTicket["total_pax"] = (int)$totalPaxCount;
$requestTicket["email"] = $emails;
$requestTicket["phone"] = $contacts;
$requestTicket["ticket_id"] = $ticket_id;
// echo "requestTicket<pre>";print_r($requestTicket);die;
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingGOFLYSMART($post, $AgencySysId)
{
if ($post && $AgencySysId) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$IsInternational = isset($BookingData[0]['IsInternational']) ? $BookingData[0]['IsInternational'] :false;
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$bookingRefNo = isset($BookingData[0]['response_ref']) ? $BookingData[0]['response_ref'] : '';
$TravelDate = isset($BookingData[0]['FromUTCTime']) ? date('d/m/Y', strtotime($BookingData[0]['FromUTCTime'])) : '';
$requestTicket = [];
$ARR_SALUTION = unserialize(ARR_SALUTIONTRIPJACK);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTIONTRIPJACK);
$ticket_id = isset($BookingData[0]['ticket_id']) ? $BookingData[0]['ticket_id'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$Currency = isset($BookingData[0]['FairRules']['Currency']) ? $BookingData[0]['FairRules']['Currency'] : 'INR';
$adultCount = isset($post['AdultCount']) ? $post['AdultCount'] : 0;
$childCount = isset($post['ChildCount']) ? $post['ChildCount'] : 0;
$infantCount = isset($post['InfantCount']) ? $post['InfantCount'] : 0;
$totalPaxCount = $adultCount + $childCount + $infantCount;
$emails = trim($customer[0]['email']);
$contacts = trim($customer[0]['mobile']);
$contact_name = trim($customer[0]['firstname']) . ' ' . trim($customer[0]['lastname']);
$arrPassengers = [];
$TotalMealPrice = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
foreach ($customer as $key => $value) {
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$dob = (isset($value['dateofbirth']) && !empty($value['dateofbirth'])) ? date('Y-m-d',strtotime($value['dateofbirth'])) :'';
if ($value['paxType'] == '1') {
$PaxType = 'adult';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
} elseif ($value['paxType'] == '2') {
$PaxType = 'child';
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
} else {
$paxTitle = ($ARR_SALUTION_CHILD[$value['salution']]);
$PaxType = 'infant';
}
if ($paxTitle == 'Master') {
$gender = 'Mstr';
} elseif ($paxTitle == 'Ms') {
$gender = 'Miss';
} else {
$gender = $paxTitle;
}
$arrPassengers[$key] = array(
"title" => $gender,
"first_name" => trim($value['firstname']),
"last_name" => trim($value['lastname']),
"type" => $PaxType,
"dob" => "",
"nationality" => $value['countryCodeISO'],
"passport_num" => ($IsInternational == 1) ? $value['passportno'] : "",
);
if ($value['paxType'] == 1) {
if ($isAdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $dob;
}
}
if ($value['paxType'] == 2) {
if ($isCdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $dob;
}
}
if ($value['paxType'] == 3) {
if ($isIdobrMandatory == 1) {
$arrPassengers[$key]['dob'] = $dob;
}
}
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$gstvalidate = [];
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => 0,
'ClientGSTNumber' => '',
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
$requestTicket = array(
"query" => array(
"nAdt" => $adultCount,
"nInf" => $infantCount,
"nChd" => $childCount,
"legs" => [
array(
"dst" => $DestAirportCode,
"src" => $SourceAirportCode,
"dep" => $TravelDate
)
]
),
"flight_keys" => [$ticket_id],
"total_price" => $intPublishedFare,
"currency" => $Currency,
"paxes" => $arrPassengers,
"client_details" => array(
"email" => $emails,
"phone" => $contacts,
),
"agent_reference" => $bookingRefNo
);
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsAIRIQFULL($post, $Ticketing)
{
$ItinearyDetails = (isset($Ticketing['Bookingresponse']['ItinearyDetails']) && !empty($Ticketing['Bookingresponse']['ItinearyDetails'])) ? $Ticketing['Bookingresponse']['ItinearyDetails'] : [];
$travellerInfos = [];
$response = [];
if ($ItinearyDetails) {
foreach ($ItinearyDetails as $k => $Itineary) {
$Item = $Itineary['Item'][0];
$AirPNR = $Item['AirIqPNR'];
$BookingTrackId = $Item['BookingTrackId'];
$ResponseStatus = $Item['Resultcode'];
if ($ResponseStatus == 1) {
$TravellerInfo = $Item['TravellerInfo']['Item'];
$strTicketPNRLCC = [];
if ($TravellerInfo) {
foreach ($TravellerInfo as $pk => $pax) {
$SegmentInformation = $pax['SegmentInformation']['Item'];
$segment = [];
$AirlinePNR = [];
$TicketNo = [];
$pnrDetails = [];
$ssrMealInfos = [];
$ssrSeatInfos = [];
$ssrBaggageInfos = [];
$ticketNumberDetails = [];
$BagPrice_ = 0;
$MealPrice_ = 0;
$SeatPrice_ = 0;
if ($SegmentInformation) {
foreach ($SegmentInformation as $seg) {
$MealPrice_ += isset($seg['MealsAmount']) ? $seg['MealsAmount'] : 0;
$BagPrice_ += isset($seg['BaggageAmount']) ? $seg['BaggageAmount'] : 0;
$SeatPrice_ += isset($seg['SeatAmount']) ? $seg['SeatAmount'] : 0;
$AirlinePNR[] = $seg['AirlinePNR'];
$strTicketPNRLCC[] = $seg['AirlinePNR'];
$TicketNo[] = $seg['TicketNo'];
$originAirportCode = $seg['Origin'];
$destinationAirportCode = $seg['Destination'];
$segment[] = $originAirportCode . '-' . $destinationAirportCode;
$pnrDetails[$originAirportCode . '-' . $destinationAirportCode] = $seg['AirlinePNR'];
$ticketNumberDetails[$originAirportCode . '-' . $destinationAirportCode] = $seg['TicketNo'];
if ($BagPrice_ > 0) {
$ssrBaggageInfos[$originAirportCode . '-' . $destinationAirportCode] = ['code' => $seg['BaggagePreference'], 'amount' => $seg['BaggageAmount'], 'desc' => $seg['BaggagePreference']];
}
if ($MealPrice_ > 0) {
$ssrMealInfos[$originAirportCode . '-' . $destinationAirportCode] = ['code' => $seg['MealsPreference'], 'amount' => $seg['MealsAmount'], 'desc' => $seg['MealsPreference']];
}
if ($SeatPrice_ > 0) {
$ssrSeatInfos[$originAirportCode . '-' . $destinationAirportCode] = ['code' => $seg['SeatPreference'], 'amount' => $seg['SeatAmount']];
}
}
}
$TicketNumber = $pax['TicketNumber'];
$AirlinePNR = array_values(($AirlinePNR));
$TicketNo = array_values(($TicketNo));
$travellerInfos[] = array(
'ticketNumberDetails' => $ticketNumberDetails,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ssrSeatInfos' => $ssrSeatInfos,
'pnrDetails' => $pnrDetails,
'ti' => $pax['Title'],
'fN' => $pax['FirstName'],
'lN' => $pax['LastName'],
'pt' => strtoupper(strtolower($pax['PaxType'])),
);
$customerPnr = array(
'PNR_Number' => implode('-', $AirlinePNR),
'TicketId' => implode('-', $AirlinePNR),
'TicketNumber' => implode('-', $TicketNumber),
'sectors' => implode('@@', $segment),
);
}
}
}
$response = array(
'status' => array('success' => true),
'itemInfos' => array('AIR' => array('travellerInfos' => $travellerInfos)),
'order' => array('bookingId' => $AirPNR, 'BookingTrackId' => $BookingTrackId, 'status' => 'SUCCESS', 'customerpnr' => $customerPnr),
);
return $response;
}
// return $response;
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsTRAVCLAN($post, $results)
{
if ($post) {
$passanger = $pnrDetails = array();
$AirPNRDetails = isset($results['results']['details'][0]['pnr']) ? $results['results']['details'][0]['pnr'] : [];
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$segmentArray = [];
if ($BookingData) {
$bookingId = [];
$status = [];
$success = [];
$PNRDetailsAPI = [];
$sectorarray = [];
$ticketNumberDetails = [];
$pnrDetails = [];
if($results['results']['details']){
foreach ($results['results']['details'] as $keys=>$dataValue) {
$BookStatus = isset($dataValue['bookingStatus']) ? $dataValue['bookingStatus'] : '';
$APIStatus = isset($dataValue['isSuccessful']) ? $dataValue['isSuccessful'] : '';
if ($APIStatus == 1 && $BookStatus == 'CONFIRMED') {
$status[] = 'SUCCESS';
$success[] = true;
} elseif ($APIStatus == 1 && ($BookStatus == 'PENDING')) {
$status[] = 'PENDING';
$success[] = true;
} else{
$status[] = 'FAILED';
$success[] = false;
}
$bookingId[] = isset($dataValue['bmsBookingCode']) ? $dataValue['bmsBookingCode'] : '';
$PNRDetailsAPI = isset($dataValue['pnrDetails']) ? $dataValue['pnrDetails'] :'';
$temppnrDetails = [];
$tempPNRnumber = [];
if($PNRDetailsAPI){
foreach ($PNRDetailsAPI as $key => $Datass) {
$originAirportCode = !empty($Datass['origin']) ? $Datass['origin'] : '';
$destinationAirportCode = !empty($Datass['destination']) ? $Datass['destination'] : '';
$tempPNRnumber[] = !empty($Datass['pnr'])?$Datass['pnr']:$PNR;
if (isset($Datass['pnr']) && !empty($Datass['pnr'])) {
$temppnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $Datass['pnr'];
} else {
$temppnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $PNR;
}
}
}
if(isset($BookingData[$keys])){
foreach ($BookingData[$keys]['Segments'] as $key => $Data) {
$originAirportCode = !empty($Data['originAirportCode']) ? $Data['originAirportCode'] : '';
$destinationAirportCode = !empty($Data['destinationAirportCode']) ? $Data['destinationAirportCode'] : '';
$segmentArray[] = trim($originAirportCode) . '-' . trim($destinationAirportCode);
$secT = trim($originAirportCode) . '-' . trim($destinationAirportCode);
$sectorarray[] = $originAirportCode . '-' . $destinationAirportCode;
if (isset($temppnrDetails[$secT]) && !empty($temppnrDetails[$secT])) {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $temppnrDetails[$secT];
$ticketNumberDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $temppnrDetails[$secT];
} else {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = implode(',',$tempPNRnumber);
$ticketNumberDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = implode(',',$tempPNRnumber);
}
}
}
}
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
$BookableAmount = 0;
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
if ($flexiPayment == 1) {
$BookableAmount += isset($value['FairRules']['BookableAmount']) ? $value['FairRules']['BookableAmount'] : 0;
$ProcessingAmount += isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing += isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
$ProcessingAmount_ = isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing_ = isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
} else {
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
$ProcessingAmount_ = 0;
$GSTOnProcessing_ = 0;
}
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__ + $ProcessingAmount_ + $GSTOnProcessing_);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($ProcessingAmount) && $ProcessingAmount > 0 && $flexiPayment == 1) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Processing Fee',
'Description' => 'Flexi Payment',
'ItemQty' => 1,
'ItemRates' => ($ProcessingAmount),
'Total' => $ProcessingAmount,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $ProcessingAmount,
'ServiceFeeTotal' => $GSTOnProcessing,
'GSTPercentage' => '18',
'TotalGST' => $GSTOnProcessing,
'SGST' => ($gstvalidate['SGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'CGST' => ($gstvalidate['CGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'IGST' => ($gstvalidate['IGST'] == 1) ? round($GSTOnProcessing,2) : 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => $isgstapply,
'ClientGSTNumber' => $GSTINFO,
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$PNRArray = [];
foreach ($customer as $key => $val) {
$ticketNumber = isset($ticketNumberDetails[$key]) ? $ticketNumberDetails[$key] : [];
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
foreach ($SelectedBag as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['Description']) ? $valST[$key]['Description'] : '';
$amount = isset($valST[$key]['Price']) ? $valST[$key]['Price'] : '';
$ssrBaggageInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
if ($SelectedMeal) {
foreach ($SelectedMeal as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['Description']) ? $valST[$key]['Description'] : '';
$amount = isset($valST[$key]['Price']) ? $valST[$key]['Price'] : '';
$ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $ticketNumber,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($ticketNumber);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
return ["response" => $response,'Invoicedata'=>$Invoicedata];
}
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsEtrave($post, $Ticketing, $results)
{
if ($post && $Ticketing) {
$passanger = $pnrDetails = array();
$BookStatus = isset($Ticketing['Response_Header']['Status_Id']) ? $Ticketing['Response_Header']['Status_Id'] : 0;
$bookingId = isset($Ticketing['Booking_RefNo']) ? $Ticketing['Booking_RefNo'] : 0;
$AirPNRDetails = isset($results['AirPNRDetails']) ? $results['AirPNRDetails'] : [];
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$segmentArray = [];
if ($BookingData) {
foreach ($BookingData as $key => $Data) {
$SourceAirportCode = trim($Data['SourceAirportCode']);
$DestAirportCode = trim($Data['DestAirportCode']);
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$originAirportCode = $ssVal['originAirportCode'];
$destinationAirportCode = $ssVal['destinationAirportCode'];
$segmentArray[] = $originAirportCode . '-' . $destinationAirportCode;
if (isset($Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs']) && count($Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs']) == count($Data['Segments'])) {
$AirlinePNRDetails = isset($Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs'][$sskey]) ? $Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs'][$sskey] : '';
$Airline_PNR = (isset($AirlinePNRDetails['Airline_PNR']) && !empty($AirlinePNRDetails['Airline_PNR'])) ? $AirlinePNRDetails['Airline_PNR'] : '';
$CRS_PNR = (isset($AirPNRDetails[$key]['CRS_PNR']) && !empty($AirPNRDetails[$key]['CRS_PNR'])) ? $AirPNRDetails[$key]['CRS_PNR'] : '';
$pnrDetails[trim($ssVal['originAirportCode']) . '-' . trim($ssVal['destinationAirportCode'])] = (!empty($CRS_PNR) && $CRS_PNR != $Airline_PNR) ? $Airline_PNR . '-' . $CRS_PNR : $Airline_PNR;
} else {
$AirlinePNRDetails = isset($Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs'][0]) ? $Ticketing['AirlinePNRDetails'][$key]['AirlinePNRs'][0] : '';
$Airline_PNR = (isset($AirlinePNRDetails['Airline_PNR']) && !empty($AirlinePNRDetails['Airline_PNR'])) ? $AirlinePNRDetails['Airline_PNR'] : '';
$CRS_PNR = (isset($AirPNRDetails[$key]['CRS_PNR']) && !empty($AirPNRDetails[$key]['CRS_PNR'])) ? $AirPNRDetails[$key]['CRS_PNR'] : '';
$pnrDetails[trim($ssVal['originAirportCode']) . '-' . trim($ssVal['destinationAirportCode'])] = (!empty($CRS_PNR) && $CRS_PNR != $Airline_PNR) ? $Airline_PNR . '-' . $CRS_PNR : $Airline_PNR;
}
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => '');
}
}
$ticketNumberDetails = [];
if ($AirPNRDetails) {
foreach ($AirPNRDetails as $k => $val) {
if ($val['PAXTicketDetails']) {
foreach ($val['PAXTicketDetails'] as $k => $value) {
if ($value['TicketDetails']) {
foreach ($value['TicketDetails'] as $val) {
if ($val['SegemtWiseChanges']) {
foreach ($val['SegemtWiseChanges'] as $va) {
$Origin = $va['Origin'];
$Destination = $va['Destination'];
$secKey = $Origin . '-' . $Destination;
$ticketNumberDetails[$k][$secKey] = $val['Ticket_Number'];
}
}
}
}
}
}
}
}
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$PNRArray = [];
foreach ($customer as $key => $val) {
$ticketNumber = isset($ticketNumberDetails[$key]) ? $ticketNumberDetails[$key] : [];
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
foreach ($SelectedBag as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrBaggageInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
if ($SelectedMeal) {
foreach ($SelectedMeal as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $ticketNumber,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($ticketNumber);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
}
if ($BookStatus == 22) {
$status = 'PENDING';
$success = true;
} elseif ($BookStatus == 33) {
$status = 'BLOCK';
$success = true;
} elseif ($BookStatus == 11) {
$status = 'SUCCESS';
$success = true;
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
return $response;
}
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsNextra($post, $Ticketing)
{
$passanger = $bookingId = $pnrDetails = array();
if ($post) {
$FlightBookingData = isset($post['BookingData']) ? $post['BookingData'] : [];
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$bookingId = isset($Ticketing['ApiStatus']['Result']['flightRecord']['txid']) ? $Ticketing['ApiStatus']['Result']['flightRecord']['txid'] : '';
$BookStatus = isset($Ticketing['ApiStatus']['Result']['flightRecord']['booking_status']) ? $Ticketing['ApiStatus']['Result']['flightRecord']['booking_status'] : '';
$Airline_PNR = isset($Ticketing['ApiStatus']['Result']['flightRecord']['airline_pnr']) ? $Ticketing['ApiStatus']['Result']['flightRecord']['airline_pnr'] : '';
$gdsPnr = isset($Ticketing['ApiStatus']['Result']['flightRecord']['gds_pnr']) ? $Ticketing['ApiStatus']['Result']['flightRecord']['gds_pnr'] : '';
$flightTickets = isset($Ticketing['ApiStatus']['Result']['flightTickets']) ? $Ticketing['ApiStatus']['Result']['flightTickets'] : [];
$passengerRecords = isset($Ticketing['ApiStatus']['Result']['passengerRecords']) ? $Ticketing['ApiStatus']['Result']['passengerRecords'] : [];
$APIStatus = (isset($Ticketing['ApiStatus']['Status']) && $Ticketing['ApiStatus']['Status'] == 'OK') ? true : false;
if ($APIStatus == 1 && $BookStatus == 'confirmed') {
$status = 'SUCCESS';
$success = true;
} elseif ($APIStatus == 1 && ($BookStatus == 'pending' || $BookStatus == 'queued')) {
$status = 'PENDING';
$success = true;
} else{
$status = 'FAILED';
$success = false;
}
$ARR_SALUTION = unserialize(ARR_SALUTION);
$sectorarray = [];
$SegmentsArray = [];
foreach ($FlightBookingData as $key => $Data) {
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$SegmentsArray[] = $ssVal;
$originAirportCode = !empty($ssVal['originAirportCode']) ? $ssVal['originAirportCode'] : $ssVal['OriginAirportCode'];
$destinationAirportCode = !empty($ssVal['destinationAirportCode']) ? $ssVal['destinationAirportCode'] : $ssVal['DestAirportCode'];
$sectorarray[] = $originAirportCode . '-' . $destinationAirportCode;
}
}
}
$ticketNumber = [];
$pnrDetails = [];
if ($SegmentsArray) {
foreach ($SegmentsArray as $sskey => $ssVal) {
$originAirportCode = !empty($ssVal['originAirportCode']) ? $ssVal['originAirportCode'] : $ssVal['OriginAirportCode'];
$destinationAirportCode = !empty($ssVal['destinationAirportCode']) ? $ssVal['destinationAirportCode'] : $ssVal['DestAirportCode'];
if (isset($Airline_PNR) && !empty($Airline_PNR)) {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = (!empty($gdsPnr) && $gdsPnr != $Airline_PNR) ? $Airline_PNR . '-' . $gdsPnr : $Airline_PNR; //$segmentBookingDetails[$sskey]['pnr'];
$ticketNumber[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = $Airline_PNR;
} else {
$pnrDetails[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = '';
$ticketNumber[trim($originAirportCode) . '-' . trim($destinationAirportCode)] = '';
}
}
}
$PNRArray = [];
foreach ($customer as $key => $val) {
$APIflightTickets = isset($passengerRecords[$key]) ? $passengerRecords[$key] : [];
$ticketNumberNew = [];
if($ticketNumber){
foreach($ticketNumber as $tkey=>$tkval){
$ticketNumberNew[$tkey] = !empty($APIflightTickets['paxid'])?$APIflightTickets['paxid']:$tkval;
}
}
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
// foreach($SelectedBag as $STSEC=>$valST){
// echo "valST<pre>";print_r($valST);
$Code = isset($SelectedBag[$key]['Code']) ? $SelectedBag[$key]['Code'] : '';
$bagKey = isset($SelectedBag[$key]['key']) ? $SelectedBag[$key]['key'] : '';
$strPlit = explode("_", $bagKey);
$SSR_TypeDesc = isset($SelectedBag[$key]['desc']) ? $SelectedBag[$key]['desc'] : '';
$amount = isset($SelectedBag[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrBaggageInfos[$strPlit[0] . '-' . $strPlit[1]] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
// }
}
if ($SelectedMeal) {
// foreach($SelectedMeal as $STSEC=>$valST){
$Code = isset($SelectedMeal[$key]['Code']) ? $SelectedMeal[$key]['Code'] : '';
$SSR_TypeDesc = isset($SelectedMeal[$key]['desc']) ? $SelectedMeal[$key]['desc'] : '';
$MealKey = isset($SelectedMeal[$key]['key']) ? $SelectedMeal[$key]['key'] : '';
$strPlitMeal = explode("_", $MealKey);
$amount = isset($SelectedMeal[$key]['amount']) ? $SelectedMeal[$key]['amount'] : '';
$ssrMealInfos[$strPlitMeal[0] . '-' . $strPlitMeal[1]] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
// }
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $ticketNumberNew,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($ticketNumberNew);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $sectorarray);
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
// echo "<pre>";
// print_r(($response));
// die;
return $response;
}
}
public function SetGTXUpdateData($response, $post)
{
if ($response) {
$ResponseStatus = isset($response['status']['success']) ? $response['status']['success'] : 0;
$ErrorMessage = isset($response['errors'][0]['message']) ? $response['errors'][0]['message'] : '';
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$ICSourceSysId = (isset($post['ICSourceSysId']) && !empty($post['ICSourceSysId'])) ? $post['ICSourceSysId'] : 0;
$searchID = (isset($post['searchID']) && !empty($post['searchID'])) ? $post['searchID'] : 0;
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$strTicketPNRLCC = isset($response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails']) ? $response['itemInfos']['AIR']['travellerInfos'][0]['pnrDetails'] : '';
$Passenger = isset($response['itemInfos']['AIR']['travellerInfos']) ? $response['itemInfos']['AIR']['travellerInfos'] : '';
$LastTicketDate = !empty($response['itemInfos']['AIR']['timeLimit']) ? $response['itemInfos']['AIR']['timeLimit'] : '';
$strBookingIdLCC = isset($response['order']['bookingId']) ? $response['order']['bookingId'] : '0';
$OrderStatus = isset($response['order']['status']) ? $response['order']['status'] : '';
$strgdsPnrs = isset($response['itemInfos']['AIR']['travellerInfos'][0]['gdsPnrs']) ? $response['itemInfos']['AIR']['travellerInfos'][0]['gdsPnrs'] : '';
$resultsTBO = [];
if ($BookingData) {
foreach ($BookingData as $k => $value) {
$finalpnr = [];
$finalgdspnr = [];
$segmentArray = [];
if ($value['Segments']) {
foreach ($value['Segments'] as $seg) {
$originAirportCode = $seg['originAirportCode'];
$destinationAirportCode = $seg['destinationAirportCode'];
$segmentArray[] = $AirportCode = $originAirportCode . '-' . $destinationAirportCode;
$finalgdspnr[] = isset($strgdsPnrs[$AirportCode]) ? $strgdsPnrs[$AirportCode] : '';
$finalpnr[] = isset($strTicketPNRLCC[$AirportCode]) ? $strTicketPNRLCC[$AirportCode] : '';
}
$customerpnr = [];
if ($Passenger) {
foreach ($Passenger as $pk => $pax) {
$pnrDetails = isset($pax['pnrDetails'])?$pax['pnrDetails']:[];
$ticketNumberDetails = isset($pax['ticketNumberDetails']) ? $pax['ticketNumberDetails'] : [];
$TicketNumber = [];
$TicketId = [];
foreach ($segmentArray as $sgvl) {
$TicketNumber[] = isset($pnrDetails[$sgvl]) ? $pnrDetails[$sgvl] : '';
$TicketId[] = (isset($ticketNumberDetails[$sgvl]) && !empty($ticketNumberDetails[$sgvl])) ? $ticketNumberDetails[$sgvl] : '';
}
$customerpnr[$pk]['PNR_Number'] = implode('-', $pnrDetails);
$customerpnr[$pk]['TicketId'] = implode('-', $TicketNumber);
$customerpnr[$pk]['TicketNumber'] = implode('-', $TicketId);
$customerpnr[$pk]['sectors'] = implode('@@', $segmentArray);
}
}
$PNRNew = array_values(array_unique($finalpnr));
$GDSpnr = array_values(array_unique($finalgdspnr));
$resultsTBO[$k] = array(
'customerpnr' => $customerpnr,
'PNRNumber' => implode('-', $PNRNew),
'GDSPNRNumber' => implode('-', $GDSpnr),
'ErrorCode' => 0,
'ErrorMessage' => $ErrorMessage,
'IsBookingStatus' => $ResponseStatus,
'OnwardAutoTicket' => ($OrderStatus == 'PENDING') ? 0 : $ResponseStatus,
'IsPriceChanged' => false,
'sectorTitle' => $value['SourceAirportCode'] . '-' . $value['DestAirportCode'],
'BookingId' => !empty($value['bookingId']) ? $value['bookingId'] : $searchID,
'APIBookingId' => ($ICSourceSysId == 8) ? $strBookingIdLCC[$k] : $strBookingIdLCC,
'LastTicketDate' => $LastTicketDate,
'FareRules' => [],
);
}
}
}
return $resultsTBO;
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function apiFlightBookingNextra($post, $NEXTRAOFFICEID, $NEXTRAPASSWORD, $NEXTRAUSERNAME, $wsmode, $AgencySysId, $Securitykey)
{
if ($post) {
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$gstData = (isset($post['gstData']) && !empty($post['gstData'])) ? $post['gstData'] : [];
$bookingHold = (isset($post['bookingHold']) && !empty($post['bookingHold'])) ? $post['bookingHold'] : 0;
$flexiPayment = (isset($post['flexiPayment']) && !empty($post['flexiPayment'])) ? $post['flexiPayment'] : 0;
$requestTicket = [];
$ARR_SALUTION = array("1" => "Mr", "2" => "Mrs", "3" => "Ms", "4" => "Master", "5" => "Miss");
$isgstapply = isset($gstData['isgstapply']) ? $gstData['isgstapply'] : false;
$APIbookingId = isset($BookingData[0]['APIBookingId']) ? $BookingData[0]['APIBookingId'] : '';
$interNationalSearch = isset($post['interNationalSearch']) ? $post['interNationalSearch'] : '';
$isAdobrMandatory = isset($BookingData[0]['isDobAdult']) ? $BookingData[0]['isDobAdult'] : false;
$isCdobrMandatory = isset($BookingData[0]['isDobChild']) ? $BookingData[0]['isDobChild'] : false;
$isHoldAllowed = isset($BookingData[0]['isHoldAllowed']) ? $BookingData[0]['isHoldAllowed'] : false;
$isIdobrMandatory = isset($BookingData[0]['isDobInfant']) ? $BookingData[0]['isDobInfant'] : false;
$IsPassMandatory = isset($BookingData[0]['IsPassMandatory']) ? $BookingData[0]['IsPassMandatory'] : false;
$isDocIdAllowedMandatory = isset($BookingData[0]['isDocIdAllowedMandatory']) ? $BookingData[0]['isDocIdAllowedMandatory'] : false;
$ApiResultIndex = isset($BookingData[0]['ApiResultIndex']) ? $BookingData[0]['ApiResultIndex'] : '';
$flightKey = isset($BookingData[0]['flightKey']) ? $BookingData[0]['flightKey'] : '';
$currencySysId = isset($BookingData[0]['FairRules']['currencySysId']) ? $BookingData[0]['FairRules']['currencySysId'] : '';
$MasterAgencyData = $this->getAgencyData($AgencySysId, $Securitykey);
$gstnnumber = isset($MasterAgencyData['GSTINFO']) ? $MasterAgencyData['GSTINFO'] : '';
$GSTINFO = isset($gstData['GstNumber']) ? $gstData['GstNumber'] : '';
$gstvalidate = $this->gstvalidate($gstnnumber, $GSTINFO);
$arrPassengers = [];
$ssrList = [];
$deliveryInfo = [];
$TotalMealPrice = 0;
$adultCount = 0;
$childCount = 0;
$infantCount = 0;
$TotalBagPrice = 0;
$TotalSeatPrice = 0;
$APITotalMealPrice = 0;
$APITotalBagPrice = 0;
$APITotalSeatPrice = 0;
foreach ($customer as $key => $value) {
$TotalBagPrice += !empty($value['BagPrice']) ? ($value['BagPrice']) : 0;
$TotalMealPrice += !empty($value['MealPrice']) ? ($value['MealPrice']) : 0;
$TotalSeatPrice += !empty($value['SeatPrice']) ? ($value['SeatPrice']) : 0;
$SelectedBag = !empty($value['SelectedBag']) ? json_decode($value['SelectedBag'], 1) : '';
$SelectedMeal = !empty($value['SelectedMeal']) ? json_decode($value['SelectedMeal'], 1) : '';
$SelectedSeat = !empty($value['SelectedSeat']) ? json_decode($value['SelectedSeat'], 1) : '';
if($value['dateofbirth']){
$DOB = date('Y-m-d',strtotime($value['dateofbirth']));
$Age = date_diff(date_create($DOB), date_create('today'))->y;
}
if($value['paxType'] == 1){
$adultCount += 1;
$PaxType = 'Adult';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
}elseif($value['paxType'] == 2){
$childCount += 1;
$PaxType = 'Child';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
}else{
$infantCount += 1;
$PaxType = 'Infant';
$paxTitle = ($ARR_SALUTION[$value['salution']]);
}
$arrPassengers[$key] = array(
"title" => $paxTitle,
"first_name" => $value['firstname'],
"last_name" => $value['lastname'],
"dob" => $DOB,
"type" => $PaxType,
"tour_code" => "",
"deal_code" => "",
"frequent_flyer_number" => "",
"visa" => "",
"passport_placeofissue" => "",
"passport" => ($IsPassMandatory) ? $value['passportno'] : "",
"passport_dateofexpiry" => ($IsPassMandatory) ? $value['passportnoexpiry'] : "",
"passport_dateofissue" => ($IsPassMandatory) ? $value['passporIssue'] : "",
"agentid" => $NEXTRAOFFICEID,
"meal_preference" => "",
"seat_preference" => "",
"additional_segmentinfo" => "",
"profileid" => ($key + 1),
"paxssrinfo" => [],
);
$MealArr = [];
if (!empty($SelectedMeal)) {
foreach ($SelectedMeal as $key_ => $val) {
$MealArr[] = [
"carrier" => $val[0]['carrier'],
"destination" => $val[0]['destination'],
"jtype" => "onward",
"origin" => $val[0]['origin'],
"first_name" => $value['firstname'],
"last_name" => $value['lastname'],
"passenger_title" => $paxTitle,
"paxid" => $key + 1,
"paxtype" => $PaxType,
"ssr_chargeableamount" => $val[0]['chargeableamount'],
"ssrcode" => $val[0]['ssrcode'],
"ssrname" => $val[0]['ssrname'],
"ssrtype" => $val[0]['ssrtype']
];
}
}
$BaggArr = [];
if (!empty($SelectedBag)) {
foreach ($SelectedBag as $key_ => $val) {
$BaggArr[] = [
"carrier" => $val[0]['carrier'],
"destination" => $val[0]['destination'],
"jtype" => "onward",
"origin" => $val[0]['origin'],
"passenger_fname" => $value['firstname'],
"passenger_lname" => $value['lastname'],
"passenger_title" => $paxTitle,
"paxid" => $key + 1,
"paxtype" => $PaxType,
"ssr_chargeableamount" => $val[0]['chargeableamount'],
"ssrcode" => $val[0]['ssrcode'],
"ssrname" => $val[0]['ssrname'],
"ssrtype" => $val[0]['ssrtype']
];
}
}
$ssrList[] = array_values(array_merge($BaggArr,$MealArr));
}
$misxItems_name = [];
$TotalPay = 0;
$GSTOnMarkUp_ = 0;
$intPublishedFare = 0;
$BookableAmount = 0;
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
foreach ($BookingData as $k => $value) {
$intPublishedFare += $value['FairRules']['intPublishedFare'];
if ($flexiPayment == 1) {
$BookableAmount += isset($value['FairRules']['BookableAmount']) ? $value['FairRules']['BookableAmount'] : 0;
$ProcessingAmount += isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing += isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
$ProcessingAmount_ = isset($value['FairRules']['ProcessingAmount']) ? $value['FairRules']['ProcessingAmount'] : 0;
$GSTOnProcessing_ = isset($value['FairRules']['GSTOnProcessing']) ? $value['FairRules']['GSTOnProcessing'] : 0;
} else {
$ProcessingAmount = 0;
$GSTOnProcessing = 0;
$ProcessingAmount_ = 0;
$GSTOnProcessing_ = 0;
}
$PublishedFare__ = 0;
$GSTOnMarkUp__ = 0;
$FixedMarkUp__ = 0;
foreach ($value['FairRules']['FareBreakdown'] as $FareBreakdown) {
$BaseFare_ = isset($FareBreakdown['BaseFare']) ? ($FareBreakdown['BaseFare']) : 0;
$TDSEarn = isset($FareBreakdown['TDSEarn']) ? ($FareBreakdown['TDSEarn']) : 0;
$FixedMarkUp = isset($FareBreakdown['FixedMarkUp']) ? ($FareBreakdown['FixedMarkUp']) : 0;
$GSTOnMarkUp = isset($FareBreakdown['GSTOnMarkUp']) ? ($FareBreakdown['GSTOnMarkUp']) : 0;
$CommissionEarned = isset($FareBreakdown['CommissionEarned']) ? ($FareBreakdown['CommissionEarned']) : 0;
$Tax = isset($FareBreakdown['Tax']) ? ($FareBreakdown['Tax']) : 0;
$PublishedFare__ += ($BaseFare_ + $CommissionEarned + $Tax + $TDSEarn);
$FixedMarkUp__ += ($FixedMarkUp);
$GSTOnMarkUp__ += ($GSTOnMarkUp);
}
$TotalFare = ($PublishedFare__);
$TotalAmount = ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__);
$TotalPay += ($PublishedFare__ + $FixedMarkUp__ + $GSTOnMarkUp__ + $ProcessingAmount_ + $GSTOnProcessing_);
$TotalGST = $GSTOnMarkUp__;
$GSTOnMarkUp_ += $GSTOnMarkUp__;
$SubTotal = ($TotalAmount - $GSTOnMarkUp__);
$TotalcouponVal = 0;
$SourceAirportCode = $value['SourceAirportCode'];
$DestAirportCode = $value['DestAirportCode'];
$FlightNumber = $value['FlightNumber'];
$AirlineName = $value['AirlineName'];
$Description = $SourceAirportCode . '-' . $DestAirportCode . '-' . $AirlineName . ' ' . $FlightNumber;
$misxItems_name[] = [
'AgencySysId' => $AgencySysId,
'AgentSysId' => 0,
'MisxItems_name' => 'Flight',
'Description' => $Description,
'ItemQty' => 1,
'ItemRates' => round(($TotalFare), 2),
'Total' => round(($TotalFare), 2),
'DiscountType' => 1,
'Discount' => 1,
'TotalDiscount' => round(($TotalcouponVal), 2),
'TotalAmount' => round(($TotalAmount), 2),
'MarkupType' => '',
'Markup' => round(($FixedMarkUp__), 2),
'TotalMarkup' => round(($FixedMarkUp__), 2),
'SubTotal' => round(($SubTotal), 2),
'ServiceFeeTotal' => $TotalGST,
'GSTPercentage' => '18',
'TotalGST' => round($TotalGST, 2),
'SGST' => round((($TotalGST / 2)), 2),
'CGST' => round((($TotalGST / 2)), 2),
'IGST' => round(($TotalGST), 2),
'ItemsSACCode' => '',
];
}
$BagPrice = 0;
$MealPrice = 0;
$SeatPrice = 0;
foreach ($customer as $kkkk => $ValCustomer) {
$BagPrice += !empty($ValCustomer['BagPrice']) ? $ValCustomer['BagPrice'] : 0;
$MealPrice += !empty($ValCustomer['MealPrice']) ? $ValCustomer['MealPrice'] : 0;
$SeatPrice += !empty($ValCustomer['SeatPrice']) ? $ValCustomer['SeatPrice'] : 0;
}
$itemCount = count($misxItems_name);
if (!empty($BagPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Baggage',
'ItemQty' => 1,
'ItemRates' => ($BagPrice),
'Total' => $BagPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $BagPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($MealPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Meal',
'ItemQty' => 1,
'ItemRates' => ($MealPrice),
'Total' => $MealPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $MealPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($SeatPrice)) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Add ons',
'Description' => 'Seat',
'ItemQty' => 1,
'ItemRates' => ($SeatPrice),
'Total' => $SeatPrice,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $SeatPrice,
'ServiceFeeTotal' => 0,
'GSTPercentage' => 0,
'TotalGST' => 0,
'SGST' => 0,
'CGST' => 0,
'IGST' => 0,
'ItemsSACCode' => '',
);
}
$itemCount = count($misxItems_name);
if (!empty($ProcessingAmount) && $ProcessingAmount > 0 && $flexiPayment == 1) {
$misxItems_name[$itemCount] = array(
'MisxItems_name' => 'Processing Fee',
'Description' => 'Flexi Payment',
'ItemQty' => 1,
'ItemRates' => ($ProcessingAmount),
'Total' => $ProcessingAmount,
'DiscountType' => 0,
'Discount' => 0,
'TotalDiscount' => 0,
'TotalAmount' => 0,
'MarkupType' => '',
'Markup' => 0,
'TotalMarkup' => 0,
'SubTotal' => $ProcessingAmount,
'ServiceFeeTotal' => $GSTOnProcessing,
'GSTPercentage' => '18',
'TotalGST' => $GSTOnProcessing,
'SGST' => ($gstvalidate['SGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'CGST' => ($gstvalidate['CGST'] == 1) ? round(($GSTOnProcessing / 2),2) : 0,
'IGST' => ($gstvalidate['IGST'] == 1) ? round($GSTOnProcessing,2) : 0,
'ItemsSACCode' => '',
);
}
$TotalInvoiceValue = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice - $GSTOnMarkUp_);
$PublishedFare = ($TotalPay + $MealPrice + $BagPrice + $SeatPrice);
$agencyMarkUpGST = ($GSTOnMarkUp_);
$TotalDiscount = 0;
$Invoicedata = [
'AgentSysId' => 0,
'CustomerSysId' => 0,
'TPSysId' => 0,
'MasterTPSysId' => 0,
'ProposalID' => 0 . '/V1',
'InvoiceDate' => date('Y-m-d'),
'isDisplayMarkup' => true,
'PaymentDueDate' => date('Y-m-d'),
'PaymentDate' => date('Y-m-d'),
'ClientGST' => $isgstapply,
'ClientGSTNumber' => $GSTINFO,
'Currency' => $currencySysId,
'TotalInvoiceValue' => round(($TotalInvoiceValue), 2),
'InvoiceStatus' => 1,
'TotalSGST' => ($gstvalidate['SGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalCGST' => ($gstvalidate['CGST'] == 1) ? round((($agencyMarkUpGST / 2)), 2) : 0,
'TotalIGST' => ($gstvalidate['IGST'] == 1) ? round(($agencyMarkUpGST), 2) : 0,
'SumdiscountItem' => 0,
'OtherDiscount' => round(($TotalDiscount), 2),
'otherDiscountVal' => round(($TotalDiscount), 2),
'TotalAdvance' => round(($PublishedFare), 2),
'TotalDueAmount' => round(($PublishedFare), 2),
'InvoiceValue' => round(($PublishedFare), 2),
'notes' => 'Flight Ticket',
'termsandcondition' => '',
'client_state' => '',
'Advance' => 0,
'PaymentType' => 4,
'paymentNote' => 'Online',
'misxItems_name' => $misxItems_name,
];
if($flexiPayment == 1){
$Invoicedata['TotalDueAmount'] = ($PublishedFare - ($BookableAmount + $GSTOnProcessing + $ProcessingAmount));
$Invoicedata['TotalAdvance'] = ($BookableAmount + $ProcessingAmount + $GSTOnProcessing);
$Invoicedata['InvoiceStatus'] = 2;
}
$ssrListData = [];
if($ssrList){
foreach($ssrList as $ssrVal){
if($ssrVal){
foreach($ssrVal as $ssrData){
$ssrListData[] = $ssrData;
}
}
}
}
$requestTicket['bookingrequest'] = array(
"taxInfoStr" => $ApiResultIndex,
"leademail" => ($customer[0]['email']),
"leadmobile" => (string)($customer[0]['mobile']),
"leadcountry" => trim($customer[0]['countryCodeISO']),
"leadcity" => $customer[0]['city'],
"leadstate" => $customer[0]['city'],
"paymentmode" => "cashcard",
"domint" => ($interNationalSearch)?'international':'domestic',
"numadults" => (string)($adultCount),
"numchildren" => (string)($childCount),
"numinfants" => (string)($infantCount),
"passengerList" => $arrPassengers,
"ssrList" => ['SSRRow'=>$ssrListData],
);
$requestTicket['bookingrequest']['credentials']['agentid'] = $NEXTRAOFFICEID;
$requestTicket['bookingrequest']['credentials']['officeid'] = $NEXTRAOFFICEID;
$requestTicket['bookingrequest']['credentials']['password'] = $NEXTRAPASSWORD;
$requestTicket['bookingrequest']['credentials']['username'] = $NEXTRAUSERNAME;
$requestTicket['bookingrequest']['wsmode'] = $wsmode;
$data = array('status' => true, 'message' => 'success', 'requestTicket' => $requestTicket, 'Invoicedata' => $Invoicedata);
return ($data);
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsTravelZGear($post, $Ticketing, $results)
{
if ($post && $Ticketing) {
$passanger = $pnrDetails = array();
$BookStatus = (isset($results['replyCode']) && $results['replyCode'] == 0) ? true : false;
$bookingId = isset($Ticketing['bookingId']) ? $Ticketing['bookingId'] : 0;
$AirPNRDetails = (isset($results['data']['flight_pnrs']) && !empty($results['data']['flight_pnrs'])) ? $results['data']['flight_pnrs'] : '';
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$segmentArray = [];
if ($BookingData) {
foreach ($BookingData as $key => $Data) {
$SourceAirportCode = trim($Data['SourceAirportCode']);
$DestAirportCode = trim($Data['DestAirportCode']);
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$OnwardGroupPNR = trim($AirPNRDetails);
$originAirportCode = $ssVal['originAirportCode'];
$destinationAirportCode = $ssVal['destinationAirportCode'];
$segmentArray[] = $originAirportCode . '-' . $destinationAirportCode;
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $key => $ssVal) {
$pnrDetails[trim($ssVal['originAirportCode']) . '-' . trim($ssVal['destinationAirportCode'])] = $OnwardGroupPNR;
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => $OnwardGroupPNR);
}
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => '');
}
}
$ticketNumberDetails = [];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$PNRArray = [];
foreach ($customer as $key => $val) {
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
foreach ($SelectedBag as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrBaggageInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
if ($SelectedMeal) {
foreach ($SelectedMeal as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $pnrDetails,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($pnrDetails);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
}
if ($BookStatus == 1) {
$status = 'SUCCESS';
$success = true;
} else {
$status = 'PENDING';
$success = true;
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
return $response;
}
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsAIRIQ($post, $Ticketing, $results)
{
if ($post && $Ticketing) {
$passanger = $pnrDetails = array();
// $BookStatus = (isset($Ticketing['results']['status']) && $Ticketing['results']['status'] == 'success') ? true : false;// remove thsi ['status'] I have change this code because this code not availabel in API resposne and table
$BookStatus = (isset($Ticketing['status']) && $Ticketing['status'] == 'success') ? true : false;
$bookingId = isset($Ticketing['BookingId']) ? $Ticketing['BookingId'] : 0;
$AirPNRDetails = (isset($results['data']['pnr']) && !empty($results['data']['pnr'])) ? $results['data']['pnr'] : '';
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$segmentArray = [];
if ($BookingData) {
foreach ($BookingData as $key => $Data) {
$SourceAirportCode = trim($Data['SourceAirportCode']);
$DestAirportCode = trim($Data['DestAirportCode']);
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$OnwardGroupPNR = trim($AirPNRDetails);
$originAirportCode = $ssVal['originAirportCode'];
$destinationAirportCode = $ssVal['destinationAirportCode'];
$segmentArray[] = $originAirportCode . '-' . $destinationAirportCode;
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $key => $ssVal) {
$pnrDetails[trim($ssVal['originAirportCode']) . '-' . trim($ssVal['destinationAirportCode'])] = $OnwardGroupPNR;
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => $OnwardGroupPNR);
}
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => '');
}
}
$ticketNumberDetails = [];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$PNRArray = [];
foreach ($customer as $key => $val) {
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
foreach ($SelectedBag as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrBaggageInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
if ($SelectedMeal) {
foreach ($SelectedMeal as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $pnrDetails,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($pnrDetails);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
}
if ($BookStatus == 1) {
$status = 'SUCCESS';
$success = true;
} else {
$status = 'PENDING';
$success = true;
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
return $response;
}
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
public function SetbookingDetailsGOFLYSMART($post, $Ticketing, $results)
{
if ($post && $Ticketing) {
$passanger = $pnrDetails = array();
$BookStatus = (isset($Ticketing['success'])) ? $Ticketing['success'] : false;
$bookingId = isset($Ticketing['_data']['booking_reference']) ? $Ticketing['_data']['booking_reference'] : 0;
$AirPNRDetails = (isset($results['_data']['booking_items'][0]['confirmations'][0]['pnr']) && !empty($results['_data']['booking_items'][0]['confirmations'][0]['pnr'])) ? $results['_data']['booking_items'][0]['confirmations'][0]['pnr'] : '';
$BookingData = (isset($post['BookingData']) && !empty($post['BookingData'])) ? $post['BookingData'] : [];
$customer = (isset($post['customer']) && !empty($post['customer'])) ? $post['customer'] : [];
$segmentArray = [];
if ($BookingData) {
foreach ($BookingData as $key => $Data) {
$SourceAirportCode = trim($Data['SourceAirportCode']);
$DestAirportCode = trim($Data['DestAirportCode']);
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $sskey => $ssVal) {
$OnwardGroupPNR = trim($AirPNRDetails);
$originAirportCode = $ssVal['originAirportCode'];
$destinationAirportCode = $ssVal['destinationAirportCode'];
$segmentArray[] = $originAirportCode . '-' . $destinationAirportCode;
if (isset($Data['Segments']) && !empty($Data['Segments'])) {
foreach ($Data['Segments'] as $key => $ssVal) {
$pnrDetails[trim($ssVal['originAirportCode']) . '-' . trim($ssVal['destinationAirportCode'])] = $OnwardGroupPNR;
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => $OnwardGroupPNR);
}
}
} else {
$pnrDetails = array($SourceAirportCode . '-' . $DestAirportCode => '');
}
}
$ticketNumberDetails = [];
$ARR_SALUTION = unserialize(ARR_SALUTION);
$ARR_SALUTION_CHILD = unserialize(ARR_SALUTION);
$PNRArray = [];
foreach ($customer as $key => $val) {
$SelectedSeat = isset($val['SelectedSeat']) ? $val['SelectedSeat'] : [];
$SelectedBag = isset($val['SelectedBag']) ? $val['SelectedBag'] : [];
$SelectedMeal = isset($val['SelectedMeal']) ? $val['SelectedMeal'] : [];
$ssrSeatInfos = [];
$ssrMealInfos = [];
$ssrBaggageInfos = [];
if ($SelectedSeat) {
foreach ($SelectedSeat as $STSEC => $valST) {
$seatNo = isset($valST[$key]['seatNo']) ? $valST[$key]['seatNo'] : '';
$amount = isset($valST[$key]['amount']) ? $valST[$key]['amount'] : '';
$ssrSeatInfos[$STSEC] = ['code' => $seatNo, 'amount' => $amount];
}
}
if ($SelectedBag) {
foreach ($SelectedBag as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrBaggageInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
if ($SelectedMeal) {
foreach ($SelectedMeal as $STSEC => $valST) {
$Code = isset($valST[$key]['Code']) ? $valST[$key]['Code'] : '';
$SSR_TypeDesc = isset($valST[$key]['SSR_TypeDesc']) ? $valST[$key]['SSR_TypeDesc'] : '';
$amount = isset($valST[$key]['Total_Amount']) ? $valST[$key]['Total_Amount'] : '';
$ssrMealInfos[$STSEC] = ['code' => $Code, 'desc' => $SSR_TypeDesc, 'amount' => $amount];
}
}
$paxtype = $val['paxType'];
if ($paxtype == 1) {
$paxtypeName = 'ADULT';
$Salutation = $ARR_SALUTION[$val['salution']];
} else if ($paxtype == 2) {
$paxtypeName = 'CHILD';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
} else {
$paxtypeName = 'INFANT';
$Salutation = $ARR_SALUTION_CHILD[$val['salution']];
}
$passanger[] = array(
'pnrDetails' => $pnrDetails,
'ticketNumberDetails' => $pnrDetails,
'ssrSeatInfos' => $ssrSeatInfos,
'ssrBaggageInfos' => $ssrBaggageInfos,
'ssrMealInfos' => $ssrMealInfos,
'ti' => $Salutation,
'pt' => $paxtypeName,
'fN' => $val['firstname'],
'lN' => $val['lastname'],
'id' => $paxtype,
'DOB' => isset($val['dateofbirth']) ? $val['dateofbirth'] : '',
);
$PNR_Number = array_values($pnrDetails);
$TicketNumber_ = array_values($pnrDetails);
$sectors = array_values(array_flip($pnrDetails));
$PNRArray[$key]['PNR_Number'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketId'] = implode('-', $PNR_Number);
$PNRArray[$key]['TicketNumber'] = implode('-', $TicketNumber_);
$PNRArray[$key]['sectors'] = implode('@@', $segmentArray);
}
if ($BookStatus == 1) {
$status = 'SUCCESS';
$success = true;
} else {
$status = 'PENDING';
$success = true;
}
$response = array(
'status' => array('success' => $success),
'itemInfos' => array('AIR' => array('travellerInfos' => $passanger)),
'order' => array('bookingId' => $bookingId, 'status' => $status, 'customerpnr' => $PNRArray),
);
return $response;
}
} else {
$data = array('status' => false, 'message' => 'Invalid request');
return ($data);
}
}
function AgencyWallaetBalance($apiDataIV)
{
if ($apiDataIV) {
$curl_IV = curl_init(API_GET_AGENCY_BALANCE);
curl_setopt($curl_IV, CURLOPT_POST, true);
//curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl_IV, CURLOPT_POSTFIELDS, http_build_query($apiDataIV));
curl_setopt($curl_IV, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_IV, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_IV, CURLOPT_TIMEOUT, 300);
$responseIV = curl_exec($curl_IV);
curl_close($curl_IV);
return Zend_Json::decode($responseIV, true);
} else {
return 'Bad request';
}
}
public function Getdays($start, $end)
{
$date1 = new DateTime($start);
$date2 = new DateTime($end);
$days = $date2->diff($date1)->format('%a');
return $days;
}
function calculateFlexiPayment($data, $action = null, $SSR = false)
{
$PublishFare = isset($data['PublishFare']) ? $data['PublishFare'] : 0;
$DateOfTravel = isset($data['DateOfTravel']) ? $data['DateOfTravel'] : date('Y-m-d');
$WallaetBalance = isset($data['WallaetBalance']) ? $data['WallaetBalance'] : [];
$validateDays = isset($data['validateDays']) ? $data['validateDays'] : 0;
$interNationalSearch = isset($data['interNationalSearch']) ? (int)$data['interNationalSearch'] : 0;
$intFlightRoute = isset($data['intFlightRoute']) ? (int)$data['intFlightRoute'] : 0;
$adultCount = isset($data['adultCount']) ? (int)$data['adultCount'] : 1;
$childCount = isset($data['childCount']) ? (int)$data['childCount'] : 0;
$infantCount = isset($data['infantCount']) ? (int)$data['infantCount'] : 0;
$getMarkupNew = isset($data['getMarkup']['Markup']) ? $data['getMarkup']['Markup'] : [];
$TaxSettingDetail = isset($data['getMarkup']['TaxSetting']) ? $data['getMarkup']['TaxSetting'] : [];
$arrApiServiceTax = (isset($TaxSettingDetail['TaxPercentage']) && !empty($TaxSettingDetail['TaxPercentage'])) ? $TaxSettingDetail['TaxPercentage'] : 0;
$IsFlexiPayment = (!empty($getMarkupNew['IsFlexiPayment']) && $getMarkupNew['IsFlexiPayment'] == 1) ? (bool)$getMarkupNew['IsFlexiPayment'] : false;
$MinDepositAmount = !empty($getMarkupNew['MinDepositAmount']) ? (float)$getMarkupNew['MinDepositAmount'] : 0;
if($SSR){
$MinDepositAmount = 0;
}
$ProcessingFee = !empty($getMarkupNew['ProcessingFee']) ? (float)$getMarkupNew['ProcessingFee'] : 0;
$FlexiBookingPayCancelBefore = !empty($getMarkupNew['FlexiBookingPayCancelBefore']) ? (int)$getMarkupNew['FlexiBookingPayCancelBefore'] : 0;
$FlexiBookingActiveBefore = !empty($getMarkupNew['FlexiBookingActiveBefore']) ? (int)$getMarkupNew['FlexiBookingActiveBefore'] : 0;
$FlexiBookingActiveTo = !empty($getMarkupNew['FlexiBookingActiveTo']) ? (float)$getMarkupNew['FlexiBookingActiveTo'] : 0;
$DayMinus = '-' . $FlexiBookingPayCancelBefore . ' day';
$currentDate = date('Y-m-d');
$DeadLineDate = date('Y-m-d', strtotime($DateOfTravel . $DayMinus));
$DayPlus = '+' . $FlexiBookingActiveBefore . ' day';
$betweenDate = date('Y-m-d', strtotime($currentDate . $DayPlus));
$validateDaysActiveTo = $this->Getdays($betweenDate, $DateOfTravel);
if ($interNationalSearch == 1) {
$AdultFlexiCost = !empty($getMarkupNew['AdultFlexiCostFI']) ? ((float)$getMarkupNew['AdultFlexiCostFI'] * $adultCount) : 0;
$ChildFlexiCost = !empty($getMarkupNew['ChildFlexiCostFI']) ? ((float)$getMarkupNew['ChildFlexiCostFI'] * $childCount) : 0;
$InfantFlexiCost = !empty($getMarkupNew['InfantFlexiCostFI']) ? ((float)$getMarkupNew['InfantFlexiCostFI'] * $infantCount) : 0;
} else {
$AdultFlexiCost = !empty($getMarkupNew['AdultFlexiCostFD']) ? ((float)$getMarkupNew['AdultFlexiCostFD'] * $adultCount) : 0;
$ChildFlexiCost = !empty($getMarkupNew['ChildFlexiCostFD']) ? ((float)$getMarkupNew['ChildFlexiCostFD'] * $childCount) : 0;
$InfantFlexiCost = !empty($getMarkupNew['InfantFlexiCostFD']) ? ((float)$getMarkupNew['InfantFlexiCostFD'] * $infantCount) : 0;
}
$BookableAmount = ($AdultFlexiCost + $ChildFlexiCost + $InfantFlexiCost);
// echo '<pre>';print_r($validateDays.' >= '. $FlexiBookingActiveBefore .' && '. $validateDaysActiveTo.' <= '. $FlexiBookingActiveTo);
// echo '<pre>';print_r($IsFlexiPayment);
// die;
if ($IsFlexiPayment == 1 && $validateDays >= $FlexiBookingActiveBefore && $validateDaysActiveTo <= $FlexiBookingActiveTo) {
$currentcreditBalance = isset($WallaetBalance['creditBalance']) ? $WallaetBalance['creditBalance'] : 0;
if ($currentcreditBalance >= $MinDepositAmount) {
$ProcessingFeeAmount = $this->calculateServiceTax($PublishFare, $ProcessingFee);
$ProcessingAmount = isset($ProcessingFeeAmount['serviceTaxAmount']) ? $ProcessingFeeAmount['serviceTaxAmount'] : 0;
$arrGSTOn = $this->calculateServiceTax($ProcessingAmount, $arrApiServiceTax);
$intGSTOnProcessing = isset($arrGSTOn['serviceTaxAmount']) ? $arrGSTOn['serviceTaxAmount'] : 0;
if ($interNationalSearch == 1 && $action != 'Review' && $intFlightRoute == 2) {
$BookableAmount = ($BookableAmount * $intFlightRoute);
// $ProcessingAmount = ($ProcessingAmount * $intFlightRoute);
// $intGSTOnProcessing = ($intGSTOnProcessing * $intFlightRoute);
// $TotalBookableAmount = ($TotalBookableAmount * $intFlightRoute);
}
$TotalBookableAmount = ($BookableAmount + $ProcessingAmount + $intGSTOnProcessing);
if ($interNationalSearch == 1 && $action == 'Review' && $intFlightRoute == 2) {
$TotalBookableAmount = 0;
}
if($SSR){
$DataSet = [
'status' => true,
'message' => 'success',
'IsFlexiPayment' => $IsFlexiPayment,
'FlexiBookingActiveBefore' => $FlexiBookingActiveBefore,
'PublishFare' => $PublishFare,
'ProcessingFee' => $ProcessingFee,
'ProcessingAmount' => $ProcessingAmount,
'GSTOnProcessing' => $intGSTOnProcessing,
'DeadLineDate' => $DeadLineDate,
'BookableAmount' => ($BookableAmount),
];
return $DataSet;
}
if ($PublishFare > $TotalBookableAmount) {
$DataSet = [
'status' => true,
'message' => 'success',
'IsFlexiPayment' => $IsFlexiPayment,
'FlexiBookingActiveBefore' => $FlexiBookingActiveBefore,
'PublishFare' => $PublishFare,
'ProcessingFee' => $ProcessingFee,
'ProcessingAmount' => $ProcessingAmount,
'GSTOnProcessing' => $intGSTOnProcessing,
'DeadLineDate' => $DeadLineDate,
'BookableAmount' => ($BookableAmount),
];
} else {
$DataSet = [
'status' => false,
'message' => 'Not applicable.',
'IsFlexiPayment' => false,
'FlexiBookingActiveBefore' => '',
'PublishFare' => $PublishFare,
'ProcessingFee' => 0,
'ProcessingAmount' => 0,
'DeadLineDate' => 0,
'BookableAmount' => 0,
];
}
} else {
$DataSet = [
'status' => false,
'message' => 'minimum deposite required.',
'IsFlexiPayment' => false,
'FlexiBookingActiveBefore' => '',
'PublishFare' => '',
'ProcessingFee' => '',
'ProcessingAmount' => '',
'DeadLineDate' => '',
'BookableAmount' => 0,
];
}
} else {
$DataSet = [
'status' => false,
'message' => 'Not eligible for flexi payment',
'IsFlexiPayment' => false,
'FlexiBookingActiveBefore' => '',
'PublishFare' => '',
'ProcessingFee' => '',
'ProcessingAmount' => '',
'DeadLineDate' => '',
'BookableAmount' => 0,
];
}
return $DataSet;
}
function calculateServiceTax($intAmount, $percentAgencySTax)
{
$percentAgencySTax = !empty($percentAgencySTax) ? $percentAgencySTax : 0;
$intAmount = (float) $intAmount;
$intNetSTax = (($intAmount * $percentAgencySTax) / 100);
$BasePriceWithSTax = $intNetSTax + $intAmount;
$arrSerciceTax = array(
"BasePrice" => $intAmount,
"serviceTaxAmount" => $intNetSTax,
"BasePriceWithSTax" => $BasePriceWithSTax,
"ServiceTaxPercentage" => $percentAgencySTax,
);
return $arrSerciceTax;
}
}