Merge branch 'master' of github.com:hainatravel/information-system

hotfix/paypal-note
LMR 2 years ago
commit 4f5309b504

@ -653,6 +653,18 @@ class Information extends CI_Controller
}
}
$feedback_newest = $this->Feedback_model->get_feedback_newest();
$feedback_newest_content = $this->load->view(
$template_path . '-feedback-newest',
array('feedback_list' => $feedback_newest),
true
);
$information->ic_content = str_replace(
'<!--@NEWEST_FEEDBACK@-->',
$feedback_newest_content,
$information->ic_content
);
// 天气预报模板
$weather_forecast_content = $this->load->view(
$template_path . '-weather-forecast',
@ -968,6 +980,18 @@ class Information extends CI_Controller
file_put_contents($html_path, $template, LOCK_EX);
}
public function test_feedback()
{
$feedback_newest = $this->Feedback_model->get_feedback_newest();
var_dump($feedback_newest);
$feedback_newest_content = $this->load->view(
'ch-feedback-newest',
array('feedback_list' => $feedback_newest),
true);
var_dump($feedback_newest_content);
}
public function make_www_cache_gh($device, $information, $recommand_information)
{
$data = array();
@ -1129,6 +1153,18 @@ class Information extends CI_Controller
$information->ic_content = str_replace('<!--@TOUR-FORM-TAG@-->', $tour_form_content, $information->ic_content);
}
$feedback_newest = $this->Feedback_model->get_feedback_newest();
$feedback_newest_content = $this->load->view(
$template_path . '-feedback-newest',
array('feedback_list' => $feedback_newest),
true
);
$information->ic_content = str_replace(
'<!--@NEWEST_FEEDBACK@-->',
$feedback_newest_content,
$information->ic_content
);
if (is_file('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
$main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.globalhighlights.com/css/gh-global.css'));
} else {
@ -1396,6 +1432,18 @@ class Information extends CI_Controller
}
}
$feedback_newest = $this->Feedback_model->get_feedback_newest();
$feedback_newest_content = $this->load->view(
$template_path . '-feedback-newest',
array('feedback_list' => $feedback_newest),
true
);
$information->ic_content = str_replace(
'<!--@NEWEST_FEEDBACK@-->',
$feedback_newest_content,
$information->ic_content
);
//主样式表,内联模式
if (is_file('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css')) { //主样式表,内联模式,优先读取本地,没有在从网络读取,为了加速
$main_css_string = compress_css(file_get_contents('D:/wwwroot/origin-www.asiahighlights.com/css/mobile-first.css'));

@ -7,6 +7,40 @@ class Feedback_model extends CI_Model {
$this->HT = $this->load->database('HT', TRUE);
}
/**
* 返回最新八条反馈信息
*/
function get_feedback_newest() {
$feedback_query =
$this->HT->query("
select top 8
tad_content, tai_customerid, tai_title, tai_getdate, tai_url
from Eva_TAInfo
left join Eva_TADetail on TAD_TAI_SN=TAI_SN
where TAD_Content is not null
order by tai_getdate desc");
$feedback_result = $feedback_query->result();
$feedback_list = [];
foreach ($feedback_result as $feedback_row) {
$createdOn = new DateTime($feedback_row->tai_getdate);
$createdOnString = $createdOn->format('M Y');
$feedback = [
'title' => $feedback_row->tai_title,
'customer' => $feedback_row->tai_customerid,
'content' => $feedback_row->tad_content,
'url' => $feedback_row->tai_url,
'createdOn' => $createdOnString
];
$feedback_list[] = $feedback;
}
return $feedback_list;
}
/**
* 根据城市英文名查找最新八条反馈信息
*/

@ -73,7 +73,9 @@ $config["train_order_status_msg"]=array(
"7"=>"(改签)退票成功",
"8"=>"乘客退票失败",
"e"=>"数据错误,提交失败",
"9"=>"改签成功"
"9"=>"改签成功",
"c"=>"订单取消",
"r"=>"订单退款"
);
//座次配对
@ -89,7 +91,8 @@ $config["train_zw"]=array(
"1"=>"硬座",
"F"=>"动卧",
"YDW"=>"一等卧",
"EDW"=>"二等卧"
"EDW"=>"二等卧",
"WZ" =>"无座"
);
//数据库座次配对,包厢硬卧(5),无座(WZ),聚合没有
$config["db_train_zw"]=array(
@ -107,6 +110,7 @@ $config["db_train_zw"]=array(
"3"=>"3",
"2"=>"2",
"1"=>"1",
"13"=>"WZ",
"YDW"=>"YDW",
"EDW"=>"EDW"
);
@ -137,6 +141,20 @@ $config["train_certificateType"]=array(
"32"=>"港澳台居民居住证"
);
/*退款类型
1差额退款原票出票及改签出票产生的儿童、卧铺差额、抢票差额退款。
推送时间接近与其对应的出票通知、改签通知同步推送
2核销退款退票退款改签后的原票退款 推送时间见下面说明
3异常退款人工操作的异常订单退款 ,人工审核后推送
5无票退款出票失败、改签失败产生的退款和购票失败通知几乎同步推送
*/
$config["train_refundType"]=array(
"1"=>"差额退款",
"2"=>"核销退款",
"3"=>"异常退款",
"5"=>"无票退款"
);
//黑名单用户
$config['black_list'] = array('209582910','539152642','506157109','E66735489','E66735492','E80377215','G23001338','E95287649','345276546','PA4286015','G09382769','G26113116','G25996274','572309763','506620366','505897939','E71156367','E21961674','v716898','561669436','EL657289','533300106','482225223','514815909','592108236','370682199509218814','130924199003161572','410728199011287038','372324199503253215','ED6234008','E69411908','EF1981503');

@ -585,12 +585,8 @@ class addorders extends CI_Controller{
//生成接口请求头参数
$TimeStamp = date("Y-m-d H:i:s");
$serviceName = "train.addTrainOrder"; //每个接口都有自己名称
// $companyId = "4003171843";
// $key = "hajkrtbc";
/** 测试服务器 */
$companyId = "1503141150";
$key = "hajkrtba";
$companyId = COMPANYID;
$key = CTRIPKEY;
$strSign = $TimeStamp.$serviceName.$companyId.$key; //加密前的令牌
$Sign = md5($strSign);
@ -679,9 +675,9 @@ class addorders extends CI_Controller{
$passagersdata[$i]->certificateType = $PassportTypeseId;
$passagersdata[$i]->certificateNo = des_encrypt($PassagerInfo->BPE_Passport,$key);;
$passagersdata[$i]->certificateName = chk_sp_name($PassagerInfo->BPE_FirstName.$PassagerInfo->BPE_MiddleName.$PassagerInfo->BPE_LastName);
$passagersdata[$i]->birthday =$PassagerInfo->BPE_BirthDate;
$passagersdata[$i]->birthday =date('Y-m-d',strtotime($PassagerInfo->BPE_BirthDate));
$passagersdata[$i]->realName = chk_sp_name($PassagerInfo->BPE_FirstName.$PassagerInfo->BPE_MiddleName.$PassagerInfo->BPE_LastName);
$passagersdata[$i]->identityLimitDate = $PassagerInfo->BPE_PassExpdate;;
$passagersdata[$i]->identityLimitDate = date('Y-m-d',strtotime($PassagerInfo->BPE_PassExpdate));
$passagersdata[$i]->countryCode = "";
$passagersdata[$i]->contactMobile = "";
$passagersdata[$i]->contactEmail = "";
@ -731,7 +727,8 @@ class addorders extends CI_Controller{
$ResponseJson = GetPost_http($url,json_encode($PostData,JSON_UNESCAPED_UNICODE),'json');
$ResponseData = json_decode($ResponseJson);
// print_r(json_encode($PostData));
// die();
//预定请求成功后执行支付
if($ResponseData->returnCode == 1){

@ -8,6 +8,8 @@ class callback extends CI_Controller{
$this->load->helper('train');
$this->load->model("train_system_model");
$this->load->model("BIZ_train_model");
$this->train_certificateType = $this->config->item('train_certificateType');
$this->train_refundType = $this->config->item('train_refundType');
}
public function juhecallback(){
@ -178,7 +180,7 @@ class callback extends CI_Controller{
if(!empty($ctrip_backdata)){
//判断回调信息是否正确,主要判断是否是本企业的回调信息
$TimeStamp = $ctrip_backdata->timeStamp;
$TimeStamp = $ctrip_backdata->authentication->timeStamp;
$serviceName = $ctrip_backdata->authentication->serviceName; //每个接口都有自己名称
$companyId = COMPANYID;
$key = CTRIPKEY;
@ -247,15 +249,17 @@ class callback extends CI_Controller{
}
$update_data->orderType = $ctrip_backdata->ticketResult->orderMasterInfo->orderType; //订单类型 0电子票 1配送票 2人工客票 3抢票订单
$update_data->contactName = $ctrip_backdata->ticketResult->orderMasterInfo->contactName; //联系人
$update_data->mobileNo = $ctrip_backdata->ticketResult->orderMasterInfo->mobileNo; //联系电话 (DES加密
$update_data->mobileNo = des_decrypt($ctrip_backdata->ticketResult->orderMasterInfo->mobileNo,$key); //联系电话 (DES加密
//人员及车票
$data_passager = new stdClass();
foreach ( $ctrip_backdata->ticketResult->passengerInfoList as $pItems) {
$data_passager->ordernumber = $ctrip_backdata->ticketResult->companyOrderId;
//人员列表
$data_passager->status = '4';
$data_passager->identitytype = $pItems->certificateType;
$certificateType = $this->train_certificateType[ $pItems->certificateType]; //证件类型身份证传1、护照2、回乡证7、台胞证8、外国人永久居留身份证28、港澳台居民居住证32
$data_passager->identitytype = $certificateType;
$data_passager->realname = $pItems->certificateName;
$data_passager->numberid = des_decrypt($pItems->certificateNo,$key) ; //证件号码 (DES加密
$data_passager->birthday = $pItems->birthday;
@ -290,7 +294,7 @@ class callback extends CI_Controller{
$data_passager->ticketprice = $tItems->realTicketPrice;
$SeatNo = "";
if (isset($tItems->carriageNo)){
$SeatNo.=$tItems->carriageNo;
$SeatNo.=$tItems->carriageNo."车厢";
}
if (isset($tItems->seatNo)){
$SeatNo.=$tItems->seatNo;
@ -313,6 +317,7 @@ class callback extends CI_Controller{
//添加支付记录
$add_train_payment_data = new stdClass();
$add_train_payment_data->TOC_Memo = $update_data->ordernumber.'出票费';
$add_train_payment_data->TOC_VEI_SN = "28209";
//根据订单号获取cold_sn
$order_info = $this->train_system_model->get_order_info($update_data->ordernumber);
@ -321,18 +326,47 @@ class callback extends CI_Controller{
$add_train_payment_data->TOC_TrainNumber = $update_data->trainNo;
$add_train_payment_data->TOC_DepartureDate = date('Y-m-d',strtotime($update_data->departTime ));
$add_train_payment_data->TOC_TicketCost = $update_data->OrderTotleFee;
$add_train_payment_data->poundage = "";
$add_train_payment_data->FOI_TrainNetOrderNo = $update_data->ElectronicOrderNumber;
$add_train_payment_data->poundage = "0";
$add_train_payment_data->FOI_TrainNetOrderNo = $update_data->ElectronicOrderNumber; //电子票号
//print_r($add_train_order_data);die();
$this->BIZ_train_model->add_train_payment($add_train_payment_data);
//记录供应商(瀚特)
$this->BIZ_train_model->update_cold_planvei_sn($cold_sn,'28209');
}else if($update_data->ServiceName == 'notice.ordercancel'){ //订单取消
$update_data->ordernumber = $ctrip_backdata->cancelResult->companyOrderId;
$update_data->OrderStatus = '1';
$update_data->ErrorMsg = $ctrip_backdata->cancelResult->cancelTime;
$update_data->OrderStatus = 'c';
$update_data->ErrorMsg = '订单取消'.$ctrip_backdata->cancelResult->cancelTime;
$update_data->confirmcallback = $back_json;
}else if($update_data->ServiceName == 'notice.refundresult'){ //退票
}else if($update_data->ServiceName == 'notice.refundresult'){ //退款通知
$update_data->ordernumber = $ctrip_backdata->refundResult->companyOrderId;
$update_data->OrderStatus = 'r';
$update_data->ErrorMsg = '退款:'.$ctrip_backdata->refundResult->refundTime;
$update_data->confirmcallback = $back_json;
//翰特添加退款记录
$refund_train_payment = new stdClass();
$return_order = $ctrip_backdata->refundResult->companyOrderId;
$return_money = $ctrip_backdata->refundResult->refundAmount; //退款金额
$refund_train_payment->TOC_VEI_SN = "28209";
//根据订单号获取cold_sn
$order_info = $this->train_system_model->get_order_info($return_order);
$cold_sn = $order_info->ts_cold_sn;
//print_r($order_info);
$refundType = $ctrip_backdata->refundResult->refundType; //退款类型int
$reason = $ctrip_backdata->refundResult->reason; //退款原因
$refundTime = $ctrip_backdata->refundResult->refundTime; //退款时间
$memo = $return_order.'_'.$this->train_refundType[$refundType].'_原因:'. $reason . '_' . $refundTime; //退款集合信息
$refund_train_payment->TOC_Memo = $memo;
$refund_train_payment->TOC_COLD_SN = $cold_sn;
$refund_train_payment->TOC_TrainNumber = $order_info->ts_checi;
$refund_train_payment->TOC_DepartureDate = $order_info->ts_startdate;
$refund_train_payment->TOC_TicketCost = -$return_money;
//print_r($add_train_payment_data);die();
$this->BIZ_train_model->refund_train_payment($refund_train_payment);
}else if($update_data->ServiceName == 'notice.returnresult'){ //退票
$update_data->ordernumber = $ctrip_backdata->refundResult->companyOrderId;
$update_data->OrderStatus = '7';
$update_data->ErrorMsg = $ctrip_backdata->refundResult->reason;

@ -331,7 +331,7 @@ class innerTrainSearch extends CI_Controller{
$rwNum = $Seats->ticketLeft;
}
if($Seats->seatName == '一等双软上'){
if($Seats->seatName == '一等双软上' || $Seats->seatName=='一等卧'){
$SeaType .= '"YDW":"¥'.$Seats->maxPrice.'",';
$ydwNum = $Seats->ticketLeft;
}
@ -380,7 +380,7 @@ class innerTrainSearch extends CI_Controller{
$ywNum = $Seats->ticketLeft;
}
if($Seats->seatName == '二等双软上'){
if($Seats->seatName == '二等双软上' || $Seats->seatName == '二等卧'){
$SeaType .= '"EDW":"¥'.$Seats->maxPrice.'",';
$erwNum = $Seats->ticketLeft;
}
@ -572,12 +572,12 @@ class innerTrainSearch extends CI_Controller{
$TimeStamp = date("Y-m-d H:i:s");
//$TimeStamp = time();
$serviceName = "train.getAllStations";
// $companyId = "4003171843";
// $key = "hajkrtbc";
$companyId = COMPANYID;
$key = CTRIPKEY;
/** 测试服务器 */
$companyId = "1503141150";
$key = "hajkrtbcc";
// /** 测试服务器 */
// $companyId = "1503141150";
// $key = "hajkrtbcc";
$strSign = $TimeStamp.$serviceName.$companyId.$key;

@ -15,9 +15,9 @@ class pages extends CI_Controller{
//首页
public function index($coli_id = null){
// if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){
// redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/');
// }
if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){
redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/');
}
if($coli_id == null){
$cols_id = $this->input->post("ht_order");
@ -35,7 +35,7 @@ class pages extends CI_Controller{
$list->info[$i] = new StdClass;
$list->info[$i]->people = $this->BIZ_train_model->biz_people($v->COLD_SN);
$list->info[$i]->train = $this->BIZ_train_model->biz_order_detail($v->COLD_SN);
$list->info[$i]->status = $this->BIZ_train_model->get_biz_jol($v->COLD_SN);
$list->info[$i]->status = $this->train_system_model->get_submitStatus($v->COLD_SN); //判断是否提交过
$i++;
}
$list->cols_id=$cols_id;
@ -57,9 +57,9 @@ class pages extends CI_Controller{
//系统列表页面
public function order_list(){
// if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){
// redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/');
// }
if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){
redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/');
}
$page_size = 10;
$page = $this->input->get("page");

@ -158,27 +158,31 @@ class BIZ_train_model extends CI_Model {
//删除多余支付记录
$sql = "delete from BIZ_TrainOrderCost where TOC_COLI_SN = '{$CCSN}' and TOC_TicketCost is null";
$query=$this->HT->query($sql);
if(empty($data->FOI_TrainNetOrderNo)){
//退票
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_DepartureDate,
TOC_TicketCost,
TOC_WL,
TOC_VEI_SN
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),?)";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%","退票费 ".$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_VEI_SN));
}else{
//出票
// if(empty($data->FOI_TrainNetOrderNo)){ //由于取票号不再是必传回来的参数,所以退票单独做一个函数
// //退票
// $sql="IF NOT EXISTS(
// SELECT TOP 1 1 FROM BIZ_TrainOrderCost
// WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
// )
// INSERT INTO BIZ_TrainOrderCost(
// TOC_Memo,
// TOC_CreateDate,
// TOC_COLI_SN,
// TOC_COLD_SN,
// TOC_TrainNumber,
// TOC_DepartureDate,
// TOC_TicketCost,
// TOC_WL,
// TOC_VEI_SN
// )
// VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),?)";
// $query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%","退票费 ".$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_VEI_SN));
// }else{
// }
//---------出票----
//BIZ_FlightsOrderInfo.FOI_TrainNetOrderNo,更新取票号
/*
UPDATE BIZ_FlightsOrderInfo
@ -220,12 +224,47 @@ class BIZ_train_model extends CI_Model {
TOC_OtherCost,
TOC_VEI_SN
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null,?),(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1,?)";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%",$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_VEI_SN,$data->TOC_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage,$data->TOC_VEI_SN));
}
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null,?)";
//,(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1,?)
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%",$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_VEI_SN)); //,$data->TOC_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage,$data->TOC_VEI_SN
return $query;
}
//新增退款记录 refund
public function refund_train_payment($data){
//主表ID下面两个地方用到所以先筛选出来不知道能不能通过合并提高效率
$sql="SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN=?";
$query=$this->HT->query($sql,$data->TOC_COLD_SN);
$query=$query->result();
$CCSN=$query[0]->COLD_COLI_SN;
//删除多余支付记录
$sql = "delete from BIZ_TrainOrderCost where TOC_COLI_SN = '{$CCSN}' and TOC_TicketCost is null";
$query=$this->HT->query($sql);
//退款记录
$sql="IF NOT EXISTS(
SELECT TOP 1 1 FROM BIZ_TrainOrderCost
WHERE TOC_COLD_SN = ? AND TOC_Memo like ?
)
INSERT INTO BIZ_TrainOrderCost(
TOC_Memo,
TOC_CreateDate,
TOC_COLI_SN,
TOC_COLD_SN,
TOC_TrainNumber,
TOC_DepartureDate,
TOC_TicketCost,
TOC_WL,
TOC_VEI_SN
)
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),?)";
$query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%","退款: ".$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_VEI_SN));
}
public function update_cold_planvei_sn($cold_sn,$planveiSn){
$sql = "update BIZ_ConfirmLineDetail set COLD_PlanVEI_SN = '{$planveiSn}' where COLD_SN = ?";
$query = $this->HT->query($sql,$cold_sn);

@ -190,9 +190,11 @@ class train_system_model extends CI_Model {
ts_checkdoor = '{$data->TicketCheck}',
ts_elecnumber = '{$data->ElectronicOrderNumber}',
ts_orderamount = '{$data->OrderTotleFee}',
ts_operateTradeNo = '{$data->operateTradeNo}',
ts_bookcallback = '{$data->bookcallback}',";
ts_operateTradeNo = '{$data->operateTradeNo}',";
//ts_bookcallback = '{$data->bookcallback}',
//ts_startime = '{$data->OrderTicketTime}',
}else if(!empty($data->bookcallback)){
$where .= "ts_bookcallback = '{$data->ts_bookcallback}',";
}else if(!empty($data->confirmcallback)){
$where .= "ts_confirmcallback = '{$data->confirmcallback}',";
}else if(!empty($data->returncallback)){
@ -283,4 +285,15 @@ class train_system_model extends CI_Model {
$query = $this->INFO->query($sql,array($ordernumber));
return $query->result();
}
//传入COLD_SN获取trainsystem是否存在此订单用来判断是否提交过
function get_submitStatus($cold_sn) {
$sql = "SELECT top 1 ts_cold_sn FROM trainsystem WHERE ts_cold_sn= ?";
$query = $this->INFO->query($sql, $cold_sn);
if($query->num_rows() == 0){
return true;
}else{
return false;
}
}
}

@ -53,6 +53,7 @@
<th style="text-align:center;">渠道</th>
<th style="text-align:center;">出票方式</th>
<th style="text-align:center;">是否发送邮件</th>
<th style="text-align:center;">反馈</th>
<th style="text-align:center;">操作</th>
</tr>
</thead>
@ -92,6 +93,7 @@
echo '<td></td>';
}
?>
<td><?php echo $v->ts_errormsg;?></td>
<td><a target="_blank" href="order?order=<?php echo $v->ts_ordernumber;?>">详情</a></td>
</tr>
<?php endforeach;?>

@ -0,0 +1,61 @@
<div style="text-align:center;font-weight: 600; font-size:18px; margin-top: 50px; font-style: italic;" class="visible-xs">
<img src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="
margin: 0 auto 10px auto;
display: block;
width: 200px;
">
Rated 4.9 out of 5 |
Excellent
<br>
Based on 10,000+ reviews
</div>
<p class="visible-xs" style="margin-bottom: 0; ">
<img alt="Tour Review" class="img-responsive" src="https://data.asiahighlights.com/image/about/logo-black.png"
style="width: 180px; margin: 0 auto 10px auto">
</p>
<div class="table-responsive">
<table>
<tbody>
<tr>
<td class="hidden-xs">
<div class="feedback_logo">
<img src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="
margin: 0 auto 10px auto;
display: block;
width: 200px;
">
<div style="text-align:center; font-weight: 600;font-size:18px; font-style: italic;">Rated 4.9 out of 5 |
Excellent<br>Based on 10,000+ reviews</div>
<img alt="Tour Review" class="img-responsive"
src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px;
display: block;
margin: 20px auto 0 auto;">
</div>
</td>
<?php foreach ($feedback_list as $index => $feedback) {?>
<td>
<div class="tour_feedback">
<div class="feedback_content">
<strong>
<?php echo $feedback['title'] ?>
</strong>
<p>
<?php echo $feedback['content'] ?>
</p>
<a href="<?php echo $feedback['url'] ?>" target="_blank">More</a>
</div>
<div class="customer_name">
<?php echo $feedback['customer'] ?>,
<?php echo $feedback['createdOn'] ?>
</div>
</div>
</td>
<?php }?>
</tr>
</tbody>
</table>
</div>

@ -5,8 +5,8 @@
<textarea id="form_additionalrequirements" name="additional_requirements" placeholder="Tell us your travel requirements here: anniversary, honeymoon, family trip, birthday travel, beach, food... (optional)"></textarea>
<div class="selectionBlock">
<h4>
Numbers in your group
<h4 style="margin-bottom: 0;">
How would you travel?
</h4>
<div id="group_error_msg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please select number in your group.</div>
@ -134,13 +134,41 @@
</div>
</div>
<div class="selectionBlock">
<h4>
When would you travel?
</h4>
<div id="date_error_msg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Select your travel data.</div>
</div>
<div class="travel_group date_select">
<input type="radio" value="exact travel dates" id="exact" name="trip_date">
<label for="exact" class="family">
I have exact travel dates.
</label>
</div>
<div class="travel_group date_select">
<input type="radio" value="approximate travel dates" id="approximate" name="trip_date">
<label for="approximate" class="couple">
I have approximate travel dates.
</label>
</div>
<div class="travel_group date_select">
<input type="radio" value="haven't decided travel dates" id="yet" name="trip_date">
<label for="yet" class="solo">
I haven't decided my travel dates.
</label>
</div>
<div class="trip_date_length" id="tripDateBlock" style="display: none">
<p style="clear: both;margin-bottom: 10px;" id="trip_date_tip">Select your travel date.</p>
<div id="dateSelectionBlock">
<div id='flatpickrBlock'>
<input class="InquiryCalendar datepicker" id="starting_date" name="date_start" placeholder="Starting date *" readonly="readonly" type="text" value="" />
<div id="starting_date_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your starting date.</div> </div>
</div>
<input type="month" id="expectedMonth" name="expected_month" placeholder="Select your expected travel date.">
</div>
</div>
</div>
<input class="FullName" id="realname" name="name" placeholder="Your name *" required="" type="text" value="" />
<div id="realname_errmsg" style="display: none">
<div class="requiredArea" style="margin-top:-10px;">Please enter your name.</div>
@ -530,6 +558,8 @@ margin-bottom: 10px;
<script src="https://data.asiahighlights.com/min/?f=/js/jquery-1.8.2.min.js,/js/flatpickr-4.6.1.min.js"></script>
<script>
var selectedExpectedDate = '';
document.addEventListener('DOMContentLoaded', () => {
flatpickr("#starting_date", {
dateFormat: "Y-m-d",
@ -538,13 +568,6 @@ document.addEventListener('DOMContentLoaded', () => {
disableMobile: true,
minDate: "today"
});
flatpickr("#ending_date", {
dateFormat: "Y-m-d",
altInput: true,
altFormat: "F j, Y",
disableMobile: true,
minDate: "today"
});
var quick_inquiry_button = document.getElementById("quick_inquiry_button");
var quick_inquiry_form = document.getElementById("quick_inquiry_form");
@ -575,13 +598,14 @@ function validateQuickInquiryForm() {
var result = true;
var realnameVal = document.getElementById("realname").value;
var emailVal = document.getElementById("email").value;
var startingDateVal = document.getElementById("starting_date").value;
var expectedDateVal = document.getElementById("starting_date").value;
var expectedMonthVal = document.getElementById("expectedMonth").value;
var contactVal = document.getElementById("PhoneNo").value;
var realnameErrEl = document.getElementById("realname_errmsg");
var emailErrEl = document.getElementById("email_errmsg");
var emailVerifyErrEl = document.getElementById("email_verify_errmsg");
var startingDateErrEl = document.getElementById("starting_date_errmsg");
var startingDateErrEl = document.getElementById("date_error_msg");
var contactErrEl = document.getElementById("contact_errmsg");
var groupErrEl = document.getElementById("group_error_msg");
@ -604,6 +628,21 @@ function validateQuickInquiryForm() {
result = false;
}
var tripDate_is_checked = false;
if (selectedExpectedDate === 'exact') {
tripDate_is_checked = expectedDateVal !== '';
} else if (selectedExpectedDate === 'approximate') {
tripDate_is_checked = expectedMonthVal !== '';
} else if (selectedExpectedDate === 'yet') {
tripDate_is_checked = true;
}
//时间选择
if (!tripDate_is_checked) {
startingDateErrEl.style.display = '';
result = false;
}
if (realnameVal === '') {
realnameErrEl.style.display = '';
result = false;
@ -618,10 +657,6 @@ function validateQuickInquiryForm() {
result = false;
}
}
if (startingDateVal === '') {
startingDateErrEl.style.display = '';
result = false;
}
if (contactVal === '') {
contactErrEl.style.display = '';
result = false;
@ -665,6 +700,35 @@ function validateQuickInquiryForm() {
})
});
var $tripDateBlock = $('#tripDateBlock');
var $expectedDate = $('#flatpickrBlock');
var $expectedMonth = $('#expectedMonth');
var $dateSelectionBlock = $('#dateSelectionBlock');
var $tripDateTip = $('#trip_date_tip');
$('input[name="trip_date"]').each((i, tripDateEle) => {
$(tripDateEle).click(function (e) {
$expectedDate.val('');
$expectedMonth.val('');
$tripDateBlock.show();
var selectedTripDate = e.currentTarget;
selectedExpectedDate = selectedTripDate.id;
if (selectedTripDate.id === 'exact') {
$dateSelectionBlock.show();
$expectedMonth.hide();
$expectedDate.show();
$tripDateTip.show();
} else if (selectedTripDate.id === 'approximate') {
$dateSelectionBlock.show();
$expectedDate.hide();
$expectedMonth.show();
$tripDateTip.show();
} else if (selectedTripDate.id === 'yet') {
$dateSelectionBlock.hide();
$tripDateTip.hide();
}
})
});
//成人
$('#plusAdult').click(function () {
@ -712,3 +776,11 @@ function validateQuickInquiryForm() {
});
})
</script>
<style>
.date_select {width: 27.5% !important;}
@media (max-width: 750px){
.date_select {
width: 93% !important;
}
}
</style>

@ -114,7 +114,7 @@
<ul class="inspiration" style="width:280px;">
<li><a href="/tours">Top Asia Tours</a></li>
<li><a href="/southeast-asia/tours">Southeast Asia</a></li>
<li><a href="/southeast-asia">Southeast Asia</a></li>
<li><a href="/indian-continent/tours/india-nepal-sri-lanka-bhutan">India, Nepal,
Sri Lanka, Bhutan</a></li>
<li><a href="/caucasus-central-asia/tours">Caucasus and Central Asia</a></li>

@ -123,7 +123,7 @@
<!-- destinations -->
<ul data-menu="submenu-1" id="submenu-1" class="menu__level" tabindex="-1" role="menu" aria-label="destinations">
<li class="menu__item" role="menuitem"><a class="menu__link" href="/tours">Top Asia Tours</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia/tours">Southeast Asia</a>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/southeast-asia">Southeast Asia</a>
</li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/indian-continent/tours/india-nepal-sri-lanka-bhutan">India, Nepal, Sri Lanka, Bhutan</a></li>
<li class="menu__item" role="menuitem"><a class="menu__link" href="/caucasus-central-asia/tours">Caucasus and

@ -1,26 +1,14 @@
<p class="visible-xs" style="font-size: 18px; font-weight: 600; text-align: center; font-style: italic; padding-bottom: 5px;">
<img src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"
class="img-responsive" style="margin: 0 auto;">
<img alt="Tour Review" class="img-responsive"
src="https://data.chinahighlights.com/image/travelguide/best-china/trip-advisor-logp-bg-global-highlights.png"
style="width: 180px;
display: block;
margin: 10px auto;">
Based on 10,000+ reviews
</p>
<div class="visible-xs" style="font-size: 18px;font-weight: 600;text-align: center;font-style: italic;margin-top: 50px;"><img alt="" class="img-responsive" height="69" src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png" style="margin: 0px auto; width: 160px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="175" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"> <img alt="" src="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" style="display: block; margin: 10px auto 5px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" width="104" height="20"><img alt="" height="40" src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="margin: 15px auto 5px; display: block; width: 150px; height: auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="211" loader="lazy" originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png">
<div style="text-align:center; font-weight: 600;font-size:18px; font-style: italic;"><img alt="Tour Review" class="img-responsive" height="278" src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px; display: block; margin: 0px auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="1133" loader="lazy" originalsrc="https://data.asiahighlights.com/image/about/logo-black.png">
Based on 10,000+ reviews </div>
</div>
<div class="table-responsive">
<table>
<tbody>
<tr>
<td class="hidden-xs">
<div class="feedback_logo" style="font-size: 18px; font-weight: 600; text-align: center; font-style: italic;">
<img src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"
class="img-responsive" style="margin: 0 auto;">
<img alt="Tour Review" class="img-responsive"
src="https://data.chinahighlights.com/image/travelguide/best-china/trip-advisor-logp-bg-global-highlights.png" style="width: 180px;
display: block;
margin: 10px auto;">
Based on 10,000+ reviews
<div class="feedback_logo" style="font-size: 18px; font-weight: 600; text-align: center; font-style: italic;"><img alt="" class="img-responsive" height="69" src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png" style="margin: 0px auto; width: 160px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="175" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"> <img alt="" src="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" style="display: block; margin: 5px auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" width="104" height="20"><img alt="Tour Review" class="img-responsive" height="278" src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px; display: block; margin: 10px auto 0px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="1133" loader="lazy" originalsrc="https://data.asiahighlights.com/image/about/logo-black.png"> <img alt="" height="40" src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="margin: 10px auto; display: block; width: 150px; height: auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="211" loader="lazy" originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png">
<div style="text-align:center;font-weight: 600;font-size:18px;font-style: italic;line-height: 18px;margin-top: 25px;">Based on 10,000+ reviews</div>
</div>
</td>
<?php foreach ($feedback_list as $index => $feedback) {?>

@ -0,0 +1,39 @@
<div class="visible-xs" style="font-size: 18px;font-weight: 600;text-align: center;font-style: italic;margin-top: 50px;"><img alt="" class="img-responsive" height="69" src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png" style="margin: 0px auto; width: 160px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="175" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"> <img alt="" src="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" style="display: block; margin: 10px auto 5px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" width="104" height="20"><img alt="" height="40" src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="margin: 15px auto 5px; display: block; width: 150px; height: auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="211" loader="lazy" originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png">
<div style="text-align:center; font-weight: 600;font-size:18px; font-style: italic;"><img alt="Tour Review" class="img-responsive" height="278" src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px; display: block; margin: 0px auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="1133" loader="lazy" originalsrc="https://data.asiahighlights.com/image/about/logo-black.png">
Based on 10,000+ reviews </div>
</div>
<div class="table-responsive">
<table>
<tbody>
<tr>
<td class="hidden-xs">
<div class="feedback_logo" style="font-size: 18px; font-weight: 600; text-align: center; font-style: italic;"><img alt="" class="img-responsive" height="69" src="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png" style="margin: 0px auto; width: 160px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="175" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/awards/china-highlights-ta-2022-certificate.png"> <img alt="" src="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" style="display: block; margin: 5px auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" loader="lazy" originalsrc="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png" width="104" height="20"><img alt="Tour Review" class="img-responsive" height="278" src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px; display: block; margin: 10px auto 0px; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="1133" loader="lazy" originalsrc="https://data.asiahighlights.com/image/about/logo-black.png"> <img alt="" height="40" src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="margin: 10px auto; display: block; width: 150px; height: auto; opacity: 1; transition: opacity 0.5s ease-in-out 0s;" width="211" loader="lazy" originalsrc="https://data.asiahighlights.com/pic/trustpilot-new-icon.png">
<div style="text-align:center;font-weight: 600;font-size:18px;font-style: italic;line-height: 18px;margin-top: 25px;">Based on 10,000+ reviews</div>
</div>
</td>
<?php foreach ($feedback_list as $index => $feedback) {?>
<td>
<div class="tour_feedback">
<div class="feedback_content">
<strong>
<?php echo $feedback['title'] ?>
</strong>
<p>
<?php echo $feedback['content'] ?>
</p>
<a href="<?php echo $feedback['url'] ?>" target="_blank">more</a>
</div>
<div class="customer_name">
<?php echo $feedback['createdOn'] ?>,
<?php echo $feedback['customer'] ?>
</div>
<img alt="" class="img-responsive" height="40" width="211"
src="https://data.chinahighlights.com/image/aboutus/feedback/five-star.png">
</div>
</td>
<?php }?>
</tr>
</tbody>
</table>
</div>

@ -15,7 +15,7 @@
<input default="" id="Code_Txt_DZ_1" name="Code_Txt_DZ_1" type="hidden" value="" />
</div>
<div class="flex-col-4">
<input class="form-control cityname departtime hasDatepicker" id="stationDate_1" name="stationDate_1" placeholder="Time:" type="text" />
<input class="form-control cityname departtime hasDatepicker" id="stationDate_1" name="stationDate_1" placeholder="Departure date" type="text" />
</div>
<div class="flex-col-4">
<input class="searchButtonLong" type="submit" value="Search Now" />
@ -34,7 +34,7 @@
</select>
</div>
<div class="flex-col-4">
<input class="form-control cityname departtime hasDatepicker" id="stationDate_IT_1" name="stationDate_IT_1" placeholder="Time:" type="text" />
<input class="form-control cityname departtime hasDatepicker" id="stationDate_IT_1" name="stationDate_IT_1" placeholder="Departure date" type="text" />
</div>
<div class="flex-col-4">
<input class="searchButtonLong" type="submit" value="Search Now" />

@ -1169,6 +1169,14 @@ ready(el => {
if (validateSuccess) {
tip_box.show();
reason_box.hide();
if (visa72hours) {
qualify_72hours.show();
}
if (visa144hours) {
qualify_144hours.show();
}
} else {
tip_box.hide();
qualify_no.show();

@ -0,0 +1,61 @@
<div style="text-align:center;font-weight: 600; font-size:18px; margin-top: 50px; font-style: italic;" class="visible-xs">
<img src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="
margin: 0 auto 10px auto;
display: block;
width: 200px;
">
Rated 4.9 out of 5 |
Excellent
<br>
Based on 10,000+ reviews
</div>
<p class="visible-xs" style="margin-bottom: 0; ">
<img alt="Tour Review" class="img-responsive" src="https://data.asiahighlights.com/image/about/logo-black.png"
style="width: 180px; margin: 0 auto 10px auto">
</p>
<div class="table-responsive">
<table>
<tbody>
<tr>
<td class="hidden-xs">
<div class="feedback_logo">
<img src="https://data.asiahighlights.com/pic/trustpilot-new-icon.png" style="
margin: 0 auto 10px auto;
display: block;
width: 200px;
">
<div style="text-align:center; font-weight: 600;font-size:18px; font-style: italic;">Rated 4.9 out of 5 |
Excellent<br>Based on 10,000+ reviews</div>
<img alt="Tour Review" class="img-responsive"
src="https://data.asiahighlights.com/image/about/logo-black.png" style="width: 150px;
display: block;
margin: 20px auto 0 auto;">
</div>
</td>
<?php foreach ($feedback_list as $index => $feedback) {?>
<td>
<div class="tour_feedback">
<div class="feedback_content">
<strong>
<?php echo $feedback['title'] ?>
</strong>
<p>
<?php echo $feedback['content'] ?>
</p>
<a href="<?php echo $feedback['url'] ?>" target="_blank">More</a>
</div>
<div class="customer_name">
<?php echo $feedback['customer'] ?>,
<?php echo $feedback['createdOn'] ?>
</div>
</div>
</td>
<?php }?>
</tr>
</tbody>
</table>
</div>
Loading…
Cancel
Save