You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/third_party/train/models/ctrip_train_model.php

301 lines
9.4 KiB
PHTML

<?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);
}
}
?>