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/trainsystem/models/BIZ_train_model.php

697 lines
25 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
class BIZ_train_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('TOURMANAGER_LOCAL', TRUE);
$this->INFO = $this->load->database('INFORMATION_LOCAL', TRUE);
}
//传入一组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
,bbp.BPE_SEX
,CONVERT(VARCHAR(10),BPE_BirthDate,120) as BPE_BirthDate
,(case ISDATE(BPE_PassExpdate)
when 1 then CONVERT(VARCHAR(10),CONVERT(datetime,BPE_PassExpdate,120),120)
else null end) as BPE_PassExpdate
,(select top 1 COI_Code from COuntryInfo where COI_SN=bbp.BPE_Nationality) as BPE_Nationality
FROM BIZ_BookPeople bbp
WHERE BPE_SN in(".$bpe_sn.")
";
$query = $this->HT->query($sql);
return $query->result();
}
//传入主订单翰特订单号COLI_ID161014006M获取子订单中火车订单的COLD_SN
function get_biz_cold($cols_id) {
$sql = "SELECT COLD_SN
FROM BIZ_ConfirmLineDetail bcld
WHERE bcld.COLD_COLI_SN=(
SELECT COLI_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID=?)
AND bcld.DeleteFlag=0 AND bcld.COLD_ServiceType='2'";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
//传入子订单COLD_SN获取子订单对应的乘客信息
function biz_people($cold_sn) {
$sql = "
SELECT bbp.BPE_SN
,bbp.BPE_FirstName
,bbp.BPE_MiddleName
,bbp.BPE_LastName
,bbp.BPE_GuestType
,bbp.BPE_Passport
,bbp.BPE_PassportType
,CONVERT(VARCHAR(10),BPE_BirthDate,120) as BPE_BirthDate
,(case ISDATE(BPE_PassExpdate)
when 1 then CONVERT(VARCHAR(10),CONVERT(datetime,BPE_PassExpdate,120),120)
else null end) as BPE_PassExpdate
,(select top 1 COI_Code from COuntryInfo where COI_SN=bbp.BPE_Nationality) as BPE_Nationality
,(select top 1 COI_ID from COuntryInfo where COI_SN=bbp.BPE_Nationality) as Nationality
FROM BIZ_BookPeople bbp
WHERE EXISTS(
SELECT TOP 1 1
FROM BIZ_BookPeopleList bbpl
WHERE bbpl.BPL_BPE_SN = bbp.BPE_SN
AND bbpl.BPL_COLD_SN = ?
)
";
$query = $this->HT->query($sql, $cold_sn);
return $query->result();
}
//获取订单信息
function biz_order_detail($cold_sn) {
$sql = "
SELECT TOP 1 bfoi.FOI_SN
,bfoi.DepartureCity
,bfoi.ArrivalCity
,bfoi.FOI_COLD_SN
,bfoi.DepartAirport
,bfoi.ArrivalAirport
,bfoi.FlightsNo
,bfoi.Aircraft
,bfoi.Cabin
,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,
bfoi.adultprice,
bfoi.childprice,
bfoi.ArrivalTime,
bfoi.DepartureTime,
bfoi.FOI_SaleDate
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;
}
}
//传入COLD_SN获取BIZ_JuheOrderList是否存在此子订单用来判断是否提交过给聚合
function get_biz_jol($cold_sn) {
$sql = "SELECT top 1 JOL_SN FROM BIZ_JuheOrderList WHERE JOL_COLD_SN= ?";
$query = $this->HT->query($sql, $cold_sn);
if($query->num_rows() == 0){
return true;
}else{
return false;
}
}
//传入COLI_ID获取外联名
function get_operatorInfo($cols_id) {
$sql = "
SELECT
Name,
OPI_Name,
case when OPI_SN=375 then OPI_EmailBak else OPI_Email end as OPI_Email,
tel,
Mobile,
Email
FROM OperatorInfo
left join agenter_user
on AU_OPI_SN = OPI_SN
WHERE OPI_SN = (
SELECT COLI_OPI_ID
FROM BIZ_ConfirmLineInfo bcli
WHERE bcli.COLI_ID = ?
and COLi_ServiceType = '2'
)
and agenter in ('cht', 'train_vac', 'jp', 'train_it', 'vc', 'ru')
";
$query = $this->HT->query($sql, $cols_id);
return $query->result();
}
//新增支付记录
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,
// 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
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 = '$data->FOI_TrainNetOrderNo'))
UPDATE BIZ_FlightsOrderInfo
SET
FOI_TrainNetOrderNo='$data->FOI_TrainNetOrderNo'
WHERE
FOI_COLD_SN='$data->TOC_COLD_SN'
ELSE
IF NOT EXISTS(select * from BIZ_FlightsOrderInfo where FOI_COLD_SN = '$data->TOC_COLD_SN' and FOI_TrainNetOrderNo LIKE '%$data->FOI_TrainNetOrderNo%')
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,
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));
}
//新增退款记录 refund
public function returnticket_train($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="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);
}
//自动获取符合自动出票要求的订单的coli_sn
function auto_check_ticket(){
$sql = "SELECT distinct top 50 COLD_SN ,coli_id,COLD_SPFS,COLI_State,(SELECT TOP 1 GAI_Type FROM BIZ_GroupAccountInfo WHERE GAI_COLI_SN=bcli.COLI_SN AND ISNULL(DeleteFlag,0)=0) as GAI_Type
FROM BIZ_ConfirmLineInfo bcli
inner join BIZ_ConfirmLineDetail bcld on COLD_COLI_SN=COLI_SN
WHERE bcli.COLI_ServiceType = '2'
AND bcli.COLI_State in ('11','13','8','63')
AND bcli.COLI_WebCode in ('cht', 'JP', 'train_it', 'VC', 'train_ru','GM-Train','SHT','CT','WebMob-biz','WeChat-biz','CHTAPP-biz')
AND EXISTS(SELECT GAI_SN FROM BIZ_GroupAccountInfo WHERE GAI_COLI_SN=bcli.COLI_SN AND (bcli.COLI_Price - GAI_SQJE) <= 20 AND (GAI_SQJE - bcli.COLI_Price) >= -20 AND DeleteFlag = 0)
--AND COLI_IsSuccess = 1
AND bcli.DeleteFlag = 0
AND bcld.DeleteFlag = 0
AND COLD_SPFS < 2
AND NOT EXISTS (
SELECT TOP 1 1
FROM InfoManager.dbo.trainsystem
WHERE ts_cold_sn = COLD_SN
)
and (((COLI_State<>8 and COLI_State<>63) and COLD_StartDate < CONVERT(varchar(100),GETDATE()+29,23)) or ((COLI_State=8 or COLI_State=63) and COLD_StartDate between CONVERT(varchar(100),GETDATE()+29,23) and CONVERT(varchar(100),GETDATE()+29,23)+' 23:59'))
";
$query = $this->HT->query($sql);
return $query->result();
}
//获取能够自动出票的订单列表2.0版本 20240130 zp (coli_state 11 我的订单 8 已收款 63 出票中 13 新订单(已支付))
function auto_check_ticket_2(){
$sql = "SELECT top 10 COLD_SN ,coli_id,COLD_SPFS,COLI_State,(SELECT TOP 1 GAI_Type FROM BIZ_GroupAccountInfo WHERE GAI_COLI_SN=bcli.COLI_SN AND ISNULL(DeleteFlag,0)=0) as GAI_Type
,cold_startdate
,isnull((select top 1 ts_autotimes from InfoManager.dbo.trainsystem where ts_cold_sn= bcld.cold_sn order by ts_id desc),0) as ts_autotimes
,(select top 1 ts_autolasttime from InfoManager.dbo.trainsystem where ts_cold_sn= bcld.cold_sn order by ts_id desc) as ts_autolasttime
FROM BIZ_ConfirmLineInfo bcli
inner join BIZ_ConfirmLineDetail bcld on COLD_COLI_SN=COLI_SN
INNER JOIN dbo.OperatorInfo ON OPI_SN=COLI_OPI_ID and OPI_DEI_SN=10 AND ISNULL(dbo.OperatorInfo.DeleteFlag,0)=0
WHERE bcli.COLI_ServiceType = '2'
AND bcli.COLI_State in ('13','63')
AND EXISTS(SELECT sum(GAI_SQJE) FROM BIZ_GroupAccountInfo WHERE GAI_COLI_SN=bcli.COLI_SN AND isnull(DeleteFlag,0) = 0 having (bcli.COLI_Price - Sum(GAI_SQJE)) <= 20 AND (Sum(GAI_SQJE) - bcli.COLI_Price) >= -20 )
AND isnull(bcli.DeleteFlag,0) = 0
AND isnull(bcld.DeleteFlag,0) = 0
AND COLD_SPFS < 2
AND ( NOT EXISTS (
SELECT TOP 1 1
FROM InfoManager.dbo.trainsystem
WHERE ts_cold_sn = COLD_SN
) or EXISTS(select Top 1 1 from InfoManager.dbo.trainsystem WHERE ts_cold_sn = COLD_SN
and (ts_status = '5' or ts_status='11')
and ts_cold_sn not in (select ts_cold_sn from InfoManager.dbo.trainsystem
where (ts_status='4' or ts_status='3' or ts_status='2' or ts_status='10') and ts_cold_sn = COLD_SN) ))
AND COLD_SN NOT IN ( select FOI_COLD_SN from BIZ_FlightsOrderInfo where FOI_COLD_SN=COLD_SN and FOI_TrainNetOrderNo>'')
and (COLD_StartDate between GETDATE() and CONVERT(varchar(100),GETDATE()+14,23)+' 23:59')
and isnull((select top 1 ts_autotimes from InfoManager.dbo.trainsystem where ts_cold_sn= bcld.cold_sn order by ts_id desc),0)<4
order by CONVERT(date,cold_startdate),ISNULL(CAST((select TOP 1 TST_saletime from TrainSaleTime where TST_station_cn = (
SELECT TOP 1 TRS_StationCN
FROM TrainStation
WHERE TRS_Code = (select top 1 DepartAirport from BIZ_FlightsOrderInfo where FOI_COLD_SN = cold_sn)
and ISNULL(TRS_StationCN,'')<>''
)) as Time),'18:00')
";
$query = $this->HT->query($sql);
return $query->result();
}
public function get_saletime($station){
$sql = 'select TST_saletime from TrainSaleTime where TST_station_cn = ?';
$query = $this->HT->query($sql,$station);
return $query->row();
}
//预售时间列表
public function get_presale_list($pagesize=10,$page=0,$where="1=1"){
$data=new StdClass();
//获取总条数
$sql="SELECT COUNT(*) AS count FROM TrainSaleTime
WHERE
{$where}
";
$query = $this->HT->query($sql);
$count=$query->result();
$data->count=$count[0]->count;
$sql="SELECT TOP {$pagesize} TST_id,TST_station_cn,TST_station_code,TST_saletime,TST_updatetime from TrainSaleTime
WHERE
TST_id not in ( select top {$page} TST_id from TrainSaleTime where {$where} Order by isnull(TST_updatetime,0) desc,TST_id desc)
AND
{$where}
ORDER BY isnull(TST_updatetime,0) desc,TST_id desc ";
$query = $this->HT->query($sql);
$data->list=$query->result();
return $data;
}
//预售时间详细
public function get_saletime_detail($tstid){
$sql = 'select * from TrainSaleTime where TST_id = ?';
$query = $this->HT->query($sql,$tstid);
return $query->row();
}
//更新预售时间
public function update_saletime($data){
$sql = "update TrainSaleTime
set
TST_station_cn = '{$data->TST_station_cn}',
TST_saletime = '{$data->TST_saletime}',
TST_station_code = '{$data->TST_station_code}',
TST_updatetime = getdate()
where TST_id = '{$data->TST_id}' ";
$query = $this->HT->query($sql);
}
//添加预售时间
public function add_saletime($data){
$sql = " insert into TrainSaleTime (TST_station_cn,TST_saletime,TST_station_code,TST_updatetime)
values (?,?,?,getdate()) ";
$query = $this->HT->query($sql ,array($data->TST_station_cn,$data->TST_saletime,$data->TST_station_code));
}
//筛选符合发送邮件的订单
public function auto_sendmail(){
$time = date('Y-m-d',time());
$sql = "SELECT
ts_cold_sn,
ts_ordernumber,
ts_status,
ts_isauto
FROM
trainsystem
left join
Tourmanager.dbo.BIZ_ConfirmLineDetail bcld
on
bcld.COLD_SN = ts_cold_sn
left join
Tourmanager.dbo.BIZ_ConfirmLineInfo bcli
on
bcld.COLD_COLI_SN = bcli.COLI_SN
WHERE
ts_sendmail is null
AND
ts_isauto = 1
AND
ts_status != '0'
AND
ts_status != 'e'
AND
ts_status != '2'
AND
ts_subtime > '{$time}'
AND
bcli.COLI_WebCode in ('cht','WebMob-biz','WeChat-biz')
";
$query = $this->INFO->query($sql);
return $query->result();
}
// 传入 cold_sn 获取订单号
public function cold_sn_get_coli_id($cold_sn){
$sql="SELECT COLI_ID FROM BIZ_ConfirmLineInfo
WHERE COLI_SN = (
SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail WHERE COLD_SN = ?
)
";
$query = $this->HT->query($sql,array($cold_sn));
return $query->result();
}
//邮件使用
function get_user_info($jh_order){
$sql = "select
*
from
Tourmanager.dbo.BIZ_ConfirmLineDetail
where
COLD_SN = (
select
top 1 ts_cold_sn
from
trainsystem
where
ts_ordernumber = ?
)";
$query = $query = $this->INFO->query($sql, $jh_order);
if ($query->num_rows() > 0) {
return $query->row();
} else {
return false;
}
}
//用于自动出票,传入主订单翰特订单号 COLI_ID ,获取客人的姓名和邮箱
public function get_guest_info($COLI_ID){
$sql = "SELECT GUT_FirstName,GUT_LastName,GUT_Email FROM BIZ_GUEST bg WHERE bg.GUT_SN =
( SELECT COLI_GUT_SN FROM BIZ_ConfirmLineInfo bcli WHERE bcli.COLI_ID = ? and COLI_servicetype = '2')
";
$query = $this->HT->query($sql,$COLI_ID);
return $query->result();
}
//获取paypal付款记录
function get_paypal($coli_id){
$sql = " select GAI_SQJE,GAI_SQJECurrency,COLI_Price from BIZ_ConfirmLineInfo left join BIZ_GroupAccountInfo on COLI_ID = GAI_COLI_ID where COLI_ID = ?";
$query = $query = $this->HT->query($sql, $coli_id);
if ($query->num_rows() > 0) {
return $query->row();
} else {
return false;
}
}
//通过 JOL_JuheOrder 获取 BIZ_JuheOrderList 获取聚合订单详情
public function get_biz_jol_info($cold_sn,$jol_jo){
$sql = "SELECT top 1
*
FROM trainsystem
WHERE ts_cold_sn = ? AND ts_ordernumber = ?
";
$query = $this->INFO->query($sql,array($cold_sn,$jol_jo));
return $query->row();
}
//获取跟踪号
public function getTrackingCode(){
include('c:/database_conn.php');
$connection = array(
'UID' => $db['HT']['username'],
'PWD' => $db['HT']['password'],
'Database' => 'tourmanager',
'ConnectionPooling' => 1,
'CharacterSet' => 'utf-8',
'ReturnDatesAsStrings' => 1
);
$conn = sqlsrv_connect($db['HT']['hostname'], $connection);
$stmt = sqlsrv_query($conn, "exec dbo.SP_getTrackingCode;");
if ($stmt === false) {
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}else{
//存储过程中每一个select都会产生一个结果集取某个结果集就需要从第一个移动到需要的那个结果集
//如果结果集为空就移到下一个
while (sqlsrv_has_rows($stmt) !== TRUE) {
sqlsrv_next_result($stmt);
}
$result_object = array();
while ($row = sqlsrv_fetch_object($stmt)) {
$result_object[] = $row;
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
return($result_object[0]->TrackingCode);
}
}
//接收聚合订单号获取翰特订单号即BIZ_ConfirmLineInfo的COLI_ID
function jh_order_get_coli_id($ordernumber){
$sql="SELECT
COLI_ID,COLI_SN,COLI_OPI_ID
FROM
BIZ_ConfirmLineInfo bcli
WHERE
bcli.COLI_SN=
(SELECT COLD_COLI_SN FROM BIZ_ConfirmLineDetail bcld WHERE bcld.COLD_SN=
(SELECT ts_cold_sn FROM InfoManager.dbo.trainsystem WHERE ts_ordernumber = ? and ts_channel = 'juhe'))
";
$query = $this->HT->query($sql, $ordernumber);
return $query->result();
}
function getErrorOrdersList(){
$sql = "select
cold_sn
from
BIZ_ConfirmLineDetail left join BIZ_ConfirmLineInfo on COLD_COLI_SN = COLI_SN
where
COLD_State = '41'
and
COLI_State = '63'
and
COLI_WebCode in ('cht','WebMob-biz','WeChat-biz')";
$query = $this->HT->query($sql);
return $query->result();
}
//跟踪号与订单关联
public function linkTrackingCode($coli_sn,$TrackCode){
include('c:/database_conn.php');
$connection = array(
'UID' => $db['HT']['username'],
'PWD' => $db['HT']['password'],
'Database' => 'tourmanager',
'ConnectionPooling' => 1,
'CharacterSet' => 'utf-8',
'ReturnDatesAsStrings' => 1
);
$conn = sqlsrv_connect($db['HT']['hostname'], $connection);
$stmt = sqlsrv_query($conn, "exec dbo.SP_recordTrackingCode '$coli_sn', '$TrackCode'");
if ($stmt === false) {
echo "Error in executing statement 3.\n";
die(print_r(sqlsrv_errors(), true));
}else{
//存储过程中每一个select都会产生一个结果集取某个结果集就需要从第一个移动到需要的那个结果集
//如果结果集为空就移到下一个
/*
while (sqlsrv_has_rows($stmt) !== TRUE) {
sqlsrv_next_result($stmt);
}
$result_object = array();
while ($row = sqlsrv_fetch_object($stmt)) {
$result_object[] = $row;
}
*/
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
}
}
//根据订单号获取所有子订单号
public function getAllColdSn($coliId){
$sql = "select cold_sn,COLI_ApplyDate from BIZ_ConfirmLineInfo left join BIZ_ConfirmLineDetail on coli_sn = cold_coli_sn where coli_id = ? and COLI_servicetype = '2'";
$query = $this->HT->query($sql, array($coliId));
return $query->result();
}
//通过COLI_ID获取团名 即 GroupInfo的GRI_No
function get_gri_no($coli_id){
$sql="SELECT GRI_No FROM GroupInfo
WHERE GRI_SN=(
SELECT COLI_GRI_SN FROM BIZ_ConfirmLineInfo WHERE COLI_ID=? and COLI_servicetype = '2'
)
";
$query = $this->HT->query($sql, $coli_id);
return $query->result();
}
//获取子订单状态
function getColdState($coldSn){
$sql = "select COLD_State from BIZ_ConfirmLineDetail where cold_sn = ?";
$query = $this->HT->query($sql, array($coldSn));
return $query->row();
}
//更新子订单状态
function updateColdState($coldSn){
$sql = "update BIZ_ConfirmLineDetail set COLD_State = 42 where COLD_SN = ? ";
$query = $this->HT->query($sql, array($coldSn));
}
//修改
function update_biz_jol($where,$data){
return $this->INFO->where($where)->update("trainsystem", $data);
}
function delete_other(){
$sql = "delete from trainsystem where ts_id = '860'";
$query = $this->INFO->query($sql);
}
//添加澜海账单到汉特
function add_lanhai_bill($data){
//2.添加
$sql2 = "insert into BIZ_Platform_BookingInfo_XC (
XC_BillSN,XC_BillDate,XC_OrderID,XC_VEIName,XC_From,XC_BillType,XC_Cost,XC_Memo,XC_Creator,XC_CreateDate
) values (
'{$data->BillSn}',
'{$data->BillDate}',
'{$data->OrderId}',
'{$data->VEIName}',
'{$data->From}',
'{$data->BillType}',
'{$data->Cost}',
'{$data->Memo}',
'29',
getdate()
)";
$query = $this->HT->query($sql2);
}
//删除重复数据
function del_lanhai_bill($BillSn){
//1.删除数据 ,防止重复,根据 XC_BillSn
$sql = "delete from BIZ_Platform_BookingInfo_XC where XC_BillSn = '{$BillSn}' and XC_VEIName='9082253783' ";
$query=$this->HT->query($sql);
}
}