|
|
|
|
<?php
|
|
|
|
|
class ctrip_train_model extends CI_Model {
|
|
|
|
|
|
|
|
|
|
function __construct() {
|
|
|
|
|
parent::__construct();
|
|
|
|
|
$this->HT = $this->load->database('HT', TRUE);
|
|
|
|
|
$this->INFO = $this->load->database('INFO', TRUE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//获取订单详情
|
|
|
|
|
function biz_order_detail($cold_sn) {
|
|
|
|
|
$sql = "
|
|
|
|
|
SELECT TOP 1 bfoi.FOI_SN
|
|
|
|
|
,bfoi.FOI_COLD_SN
|
|
|
|
|
,bfoi.DepartAirport
|
|
|
|
|
,bfoi.ArrivalAirport
|
|
|
|
|
,bfoi.FlightsNo
|
|
|
|
|
,bfoi.Aircraft
|
|
|
|
|
,bfoi.DepartureDate
|
|
|
|
|
,bfoi.FOI_SelectedSeat
|
|
|
|
|
,(
|
|
|
|
|
SELECT TOP 1 TRS_StationCN
|
|
|
|
|
FROM TrainStation
|
|
|
|
|
WHERE TRS_Code = DepartAirport
|
|
|
|
|
and ISNULL(TRS_StationCN,'')<>''
|
|
|
|
|
) AS DepartAirport_cn
|
|
|
|
|
,(
|
|
|
|
|
SELECT TOP 1 TRS_StationCN
|
|
|
|
|
FROM TrainStation
|
|
|
|
|
WHERE TRS_Code = ArrivalAirport
|
|
|
|
|
and ISNULL(TRS_StationCN,'')<>''
|
|
|
|
|
) AS ArrivalAirport_cn,
|
|
|
|
|
FOI_TrainNetOrderNo,
|
|
|
|
|
bfoi.adultcost,
|
|
|
|
|
bfoi.childcost,
|
|
|
|
|
ArrivalTime,
|
|
|
|
|
DepartureTime,
|
|
|
|
|
DepartureDate
|
|
|
|
|
FROM BIZ_FlightsOrderInfo bfoi
|
|
|
|
|
WHERE bfoi.FOI_COLD_SN = ?
|
|
|
|
|
";
|
|
|
|
|
$query = $this->HT->query($sql, $cold_sn);
|
|
|
|
|
if ($query->num_rows() > 0) {
|
|
|
|
|
return $query->row();
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//传入一组BPE_SN获取乘客信息
|
|
|
|
|
function in_bpesn_people_info($bpe_sn){
|
|
|
|
|
$sql = "
|
|
|
|
|
SELECT bbp.BPE_SN
|
|
|
|
|
,bbp.BPE_FirstName
|
|
|
|
|
,bbp.BPE_MiddleName
|
|
|
|
|
,bbp.BPE_LastName
|
|
|
|
|
,bbp.BPE_GuestType
|
|
|
|
|
,bbp.BPE_Passport
|
|
|
|
|
,bbp.BPE_PassportType
|
|
|
|
|
FROM BIZ_BookPeople bbp
|
|
|
|
|
WHERE BPE_SN in(".$bpe_sn.")
|
|
|
|
|
order by BPE_GuestType asc
|
|
|
|
|
";
|
|
|
|
|
$query = $this->HT->query($sql);
|
|
|
|
|
return $query->result();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function add_passagers($data){
|
|
|
|
|
$sql = "IF EXISTS (select * from trainsystem_tickets where tst_ordernumber = '{$data->ordernumber}' and tst_numberid = '{$data->numberid}')
|
|
|
|
|
update
|
|
|
|
|
trainsystem_tickets
|
|
|
|
|
set
|
|
|
|
|
tst_identitytype = '{$data->identitytype}',
|
|
|
|
|
tst_numberid = '{$data->numberid}',
|
|
|
|
|
tst_ticketype = '{$data->ticketype}',
|
|
|
|
|
tst_ticketprice = '{$data->ticketprice}',
|
|
|
|
|
tst_seatstype = '{$data->seatype}',
|
|
|
|
|
tst_seatdetail = '{$data->seatdetail}'
|
|
|
|
|
where
|
|
|
|
|
tst_ordernumber = '{$data->ordernumber}'
|
|
|
|
|
and
|
|
|
|
|
tst_numberid = '{$data->numberid}'
|
|
|
|
|
else
|
|
|
|
|
INSERT INTO trainsystem_tickets (
|
|
|
|
|
tst_ordernumber,
|
|
|
|
|
tst_realname,
|
|
|
|
|
tst_identitytype,
|
|
|
|
|
tst_numberid,
|
|
|
|
|
tst_ticketype,
|
|
|
|
|
tst_ticketprice,
|
|
|
|
|
tst_seatstype,
|
|
|
|
|
tst_seatdetail
|
|
|
|
|
)VALUES(
|
|
|
|
|
'{$data->ordernumber}',
|
|
|
|
|
'{$data->realname}',
|
|
|
|
|
'{$data->identitytype}',
|
|
|
|
|
'{$data->numberid}',
|
|
|
|
|
'{$data->ticketype}',
|
|
|
|
|
'{$data->ticketprice}',
|
|
|
|
|
'{$data->seatype}',
|
|
|
|
|
'{$data->seatdetail}'
|
|
|
|
|
)
|
|
|
|
|
";
|
|
|
|
|
$query =$this->INFO->query($sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function add_orders($data){
|
|
|
|
|
$sql="
|
|
|
|
|
INSERT INTO trainsystem(
|
|
|
|
|
ts_cold_sn,
|
|
|
|
|
ts_ordernumber,
|
|
|
|
|
ts_subtime,
|
|
|
|
|
ts_returncode,
|
|
|
|
|
ts_status,
|
|
|
|
|
ts_errormsg,
|
|
|
|
|
ts_fromstationame,
|
|
|
|
|
ts_fromstationcode,
|
|
|
|
|
ts_tostationame,
|
|
|
|
|
ts_tostationcode,
|
|
|
|
|
ts_startdate,
|
|
|
|
|
ts_startime,
|
|
|
|
|
ts_endtime,
|
|
|
|
|
ts_runtime,
|
|
|
|
|
ts_checi,
|
|
|
|
|
ts_channel,
|
|
|
|
|
ts_isauto
|
|
|
|
|
)
|
|
|
|
|
VALUES(
|
|
|
|
|
'{$data->cold_sn}',
|
|
|
|
|
'{$data->ordernumber}',
|
|
|
|
|
getdate(),
|
|
|
|
|
'{$data->returncode}',
|
|
|
|
|
'{$data->status}',
|
|
|
|
|
'{$data->errormsg}',
|
|
|
|
|
'{$data->fromstationame}',
|
|
|
|
|
'{$data->fromstationcode}',
|
|
|
|
|
'{$data->tostationame}',
|
|
|
|
|
'{$data->tostationcode}',
|
|
|
|
|
'{$data->startdate}',
|
|
|
|
|
'{$data->startime}',
|
|
|
|
|
'{$data->endtime}',
|
|
|
|
|
'{$data->runtime}',
|
|
|
|
|
'{$data->checi}',
|
|
|
|
|
'{$data->channel}',
|
|
|
|
|
'{$data->isauto}'
|
|
|
|
|
)
|
|
|
|
|
";
|
|
|
|
|
//echo $sql;
|
|
|
|
|
$query = $this->INFO->query($sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function update_orders($data){
|
|
|
|
|
$where = '';
|
|
|
|
|
if(!empty($data->bookcallback)){
|
|
|
|
|
$where .= "
|
|
|
|
|
ts_seatsinfo = '{$data->seatsinfo}',
|
|
|
|
|
ts_checkdoor = '{$data->TicketCheck}',
|
|
|
|
|
ts_elecnumber = '{$data->ElectronicOrderNumber}',
|
|
|
|
|
ts_orderamount = '{$data->OrderTotleFee}',
|
|
|
|
|
ts_bookcallback = '{$data->bookcallback}',";
|
|
|
|
|
}else if(!empty($data->confirmcallback)){
|
|
|
|
|
$where .= "ts_confirmcallback = '{$data->confirmcallback}',";
|
|
|
|
|
}else if(!empty($data->returncallback)){
|
|
|
|
|
$where .= "ts_returncallback = '{$data->returncallback}',";
|
|
|
|
|
}else if(!empty($data->reschedulecallback)){
|
|
|
|
|
$where .= "ts_reschedulecallback = '{$data->reschedulecallback}',";
|
|
|
|
|
}
|
|
|
|
|
$sql ="
|
|
|
|
|
update trainsystem
|
|
|
|
|
set
|
|
|
|
|
ts_status = '{$data->OrderStatus}',
|
|
|
|
|
ts_errormsg = '{$data->ErrorMsg}',
|
|
|
|
|
".substr($where,0,strlen($where)-1)."
|
|
|
|
|
where
|
|
|
|
|
ts_ordernumber = '{$data->ordernumber}'
|
|
|
|
|
";
|
|
|
|
|
//echo $sql;die();
|
|
|
|
|
$query = $this->INFO->query($sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_order_info($ordernumber){
|
|
|
|
|
$sql = "select * from trainsystem where ts_ordernumber = '$ordernumber'";
|
|
|
|
|
$query = $this->INFO->query($sql);
|
|
|
|
|
return $query->row();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function get_passager_info($ctriporder,$PassagerId=null){
|
|
|
|
|
if(empty($PassagerId)){
|
|
|
|
|
$where = "";
|
|
|
|
|
}else{
|
|
|
|
|
$where = "and tst_id = $PassagerId";
|
|
|
|
|
}
|
|
|
|
|
$sql = "select * from trainsystem_tickets left join trainsystem on tst_ordernumber = ts_ordernumber where tst_ordernumber = '{$ctriporder}' $where";
|
|
|
|
|
$query = $this->INFO->query($sql);
|
|
|
|
|
return $query->result();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//更新供应商
|
|
|
|
|
public function update_cold_planvei_sn($cold_sn){
|
|
|
|
|
$sql = "update BIZ_ConfirmLineDetail set COLD_PlanVEI_SN=30427 where COLD_SN = ?";
|
|
|
|
|
$query = $this->HT->query($sql,$cold_sn);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//新增支付记录
|
|
|
|
|
public function add_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);
|
|
|
|
|
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
|
|
|
|
|
)
|
|
|
|
|
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));
|
|
|
|
|
}else{
|
|
|
|
|
//出票
|
|
|
|
|
//BIZ_FlightsOrderInfo.FOI_TrainNetOrderNo,更新取票号
|
|
|
|
|
/*
|
|
|
|
|
UPDATE BIZ_FlightsOrderInfo
|
|
|
|
|
SET
|
|
|
|
|
FOI_TrainNetOrderNo=?
|
|
|
|
|
WHERE
|
|
|
|
|
FOI_COLD_SN=?
|
|
|
|
|
*/
|
|
|
|
|
$sql="IF EXISTS(
|
|
|
|
|
select * from BIZ_FlightsOrderInfo where FOI_COLD_SN = '$data->TOC_COLD_SN' and (FOI_TrainNetOrderNo is null or FOI_TrainNetOrderNo = '' or FOI_TrainNetOrderNo like '%$data->FOI_TrainNetOrderNo%'))
|
|
|
|
|
UPDATE BIZ_FlightsOrderInfo
|
|
|
|
|
SET
|
|
|
|
|
FOI_TrainNetOrderNo='$data->FOI_TrainNetOrderNo'
|
|
|
|
|
WHERE
|
|
|
|
|
FOI_COLD_SN='$data->TOC_COLD_SN'
|
|
|
|
|
ELSE
|
|
|
|
|
UPDATE BIZ_FlightsOrderInfo
|
|
|
|
|
SET
|
|
|
|
|
FOI_TrainNetOrderNo=(select FOI_TrainNetOrderNo from BIZ_FlightsOrderInfo where FOI_COLD_SN = '$data->TOC_COLD_SN') + '&' + '$data->FOI_TrainNetOrderNo'
|
|
|
|
|
WHERE
|
|
|
|
|
FOI_COLD_SN='$data->TOC_COLD_SN'";
|
|
|
|
|
|
|
|
|
|
$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_OtherCost
|
|
|
|
|
)
|
|
|
|
|
VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null),(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID 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_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage));
|
|
|
|
|
}
|
|
|
|
|
return $query;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//更新乘客表信息
|
|
|
|
|
public function update_passpager_info($data){
|
|
|
|
|
$sql = "update
|
|
|
|
|
trainsystem_tickets
|
|
|
|
|
set
|
|
|
|
|
tst_status = '{$data->status}',
|
|
|
|
|
tst_returncallback = '{$data->returncallback}',
|
|
|
|
|
tst_lasteditdate = getdate()
|
|
|
|
|
where
|
|
|
|
|
tst_ordernumber = '{$data->ordernumber}'
|
|
|
|
|
and
|
|
|
|
|
tst_realname = '{$data->realname}'
|
|
|
|
|
and
|
|
|
|
|
tst_numberid = '{$data->numberid}'
|
|
|
|
|
";
|
|
|
|
|
$query = $this->INFO->query($sql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
?>
|