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/webht/third_party/trippestOrderSync/models/orders_model.php

1842 lines
66 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 Orders_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
//读取默认配置
$this->COLI_WebCode = $this->config->item('Site_Code');
$this->COLI_Area = $this->config->item('Site_Area');
$this->COLI_CustomerType = $this->config->item('Site_DepartmentID');
$this->COLI_department = $this->config->item('Site_Department');
$this->COLI_Currency = $this->config->item('Site_Currency');
$this->COLI_InterestRate = $this->config->item('Site_InterestRate');
$this->COLI_TrueCardRate = $this->config->item('Site_TrueCardRate');
$this->COLI_TouristLGC = $this->config->item('Site_ServiceLGC');
$this->COLI_OrderStartDate = null;
$this->COLI_Keywords = NULL;
switch ($this->check_device()) {
case 'mobile':
$this->COLI_OrderSource = '62003';
break;
case 'tablet':
$this->COLI_OrderSource = '62002';
break;
default:
$this->COLI_OrderSource = '62001';
}
}
public function get_orderinfo_detail($COLI_ID)
{
$sql = "SELECT top 1 coli.COLI_ID,
coli.COLI_Department,
cold.COLD_ServiceSN,
cold.COLD_ServiceSN2,
cold.COLD_ServiceCity,
gut.GUT_NationalityID,
*
FROM BIZ_ConfirmLineInfo coli
INNER JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN
LEFT JOIN BIZ_GUEST gut ON gut.GUT_SN=coli.COLI_GUT_SN
WHERE coli.COLI_ID='$COLI_ID'
ORDER BY COLI_ApplyDate DESC";
$query = $this->HT->query($sql);
return $query->result();
}
public function get_guestlist($COLD_SN_str)
{
$sql = "SELECT *
FROM BIZ_BookPeopleList BPL
INNER JOIN BIZ_BookPeople BPE ON BPL_BPE_SN=BPE_SN
WHERE BPL_COLD_SN IN ($COLD_SN_str)";
$query = $this->HT->query($sql);
return $query->result();
}
/*!
* 获取行程详情
*/
/** 根据订号 */
public function get_scheduleDetails($COLD_SN_str)
{
$sql = "SELECT *
FROM BIZ_PackageInfo2 pag2
INNER JOIN BIZ_PackageInfo pag ON pag.PAG_SN=pag2.PAG2_PAG_SN
INNER JOIN CItyInfo2 cii2 on CII2_CII_SN=PAG_CII_SN and CII2_LGC=2
INNER JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_ServiceSN=pag2.PAG2_PAG_SN AND (PAG2_LGC = 2)
left join BIZ_PackageInfoSub pis on pis.PAGS_PAG_SN=pag.PAG_SN and PAGS_LGC=1 and cold.COLD_ServiceSN2=PAGS_SN
WHERE COLD_SN IN ($COLD_SN_str)";
$query = $this->HT->query($sql);
return $query->result();
}
/** 根据线路代号 */
public function get_packageDetails($pag_code_str)
{
$sql = "SELECT *
FROM BIZ_PackageInfo2 pag2
INNER JOIN BIZ_PackageInfo pag ON pag.PAG_SN=pag2.PAG2_PAG_SN and pag2.PAG2_LGC=2 and pag.PAG_DEI_SN=30
INNER JOIN CItyInfo2 cii2 on CII2_CII_SN=PAG_CII_SN and CII2_LGC=2
WHERE pag.PAG_Code IN ($pag_code_str)
order by pag.PAG_Code ";
$query = $this->HT->query($sql);
return $query->result();
}
public function get_paymentDetails($COLI_ID)
{
$sql = "SELECT *
FROM BIZ_GroupAccountInfo bgai
INNER JOIN BIZ_ConfirmLineInfo coli ON bgai.GAI_COLI_SN=coli.COLI_SN
WHERE coli_ID = '$COLI_ID'";
$query = $this->HT->query($sql);
return $query->result();
}
public function get_groupCodeList($GroupCodeList_str)
{
$sql = "SELECT GRI_No
FROM GRoupInfo gri
INNER JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gri.GRI_SN
WHERE gri.GRI_No IN ($GroupCodeList_str)";
$query = $this->HT->query($sql);
return $query->result();
}
public function get_packageSN($pag_code)
{
$sql = "SELECT top 1 PAG2_SN,PAG_CII_SN,PAG2_PAG_SN
FROM BIZ_PackageInfo2 pag2
INNER JOIN BIZ_PackageInfo pag ON pag.PAG_SN=pag2.PAG2_PAG_SN
WHERE pag.PAG_Code = '$pag_code' and pag2.PAG2_LGC=2 and pag.PAG_DEI_SN=30
";
$query = $this->HT->query($sql);
if ($query->row()) {
return $query->row();
}
return NULL;
}
/*!
* 需要更新调度信息的订单 -- 商务表
* @param integer $coli_sn [description]
* @param [type] $startDate [description]
* @param [type] $endDate [description]
*/
public function get_groupCombineInfo($coli_sn=0, $get_vendorID=null, $startDate=null, $endDate=NULL)
{
$sql = "SELECT top 1000 coli.COLI_ID, coli.COLI_SN, coli.COLI_GRI_SN, cold.COLD_SN, coli.COLI_OrderDetailText, coli.COLI_Memo,coli.COLI_State,coli.COLI_OPI_ID,
cold.COLD_PlanVEI_SN, gci.*
FROM GroupCombineInfo gci
LEFT JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN and coli.COLI_State NOT IN ('30','40','50')
LEFT JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN
WHERE 1=1 ";
if ($coli_sn !== 0) {
$sql .= " and coli.COLI_SN='$coli_sn' ";
}
if ($get_vendorID !== null) {
$sql .= " and GCI_VendorOrderId='$get_vendorID' ";
}
if ($startDate !== NULL) {
$sql .= " and gci.GCI_travelDate between '$startDate' and '$endDate' "; // test
}
// $sql .= "UNION SELECT top 50
// coli.COLI_ID, coli.COLI_SN, coli.COLI_GRI_SN, cold.COLD_SN, coli.COLI_OrderDetailText, coli.COLI_Memo,coli.COLI_State,coli.COLI_OPI_ID,
// cold.COLD_PlanVEI_SN, gci.*
// FROM GroupCombineInfo gci
// left JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN and coli.COLI_State NOT IN ('30','40','50')
// left JOIN BIZ_ConfirmLineDetail cold ON cold.COLD_COLI_SN=coli.COLI_SN
// WHERE 1=1
// and not exists (
// select * from BIZ_GroupAccountInfo where GAI_COLI_SN=COLI_SN
// )
// and COLI_OPI_ID=435
// order by GCI_travelDate";
$query = $this->HT->query($sql);
return $query->result();
}
/*!
* 获取团计划信息的记录 - 根据地接社订单id
* 计划变更和订单状态确认时使用
* @param integer $vendorOrderId 图兰朵地接社系统的订单id
*/
public function get_vendorarrangestate_byVendor($vendorOrderId, $vei_sn)
{
$sql = "SELECT coli.COLI_ID, coli.COLI_SN,opi.OPI_Email,opi.OPI_Name,
vas.VAS_ChangeText, vas.VAS_ConfirmInfo, vas.VAS_SN
FROM GroupCombineInfo gci
INNER JOIN BIZ_ConfirmLineInfo coli ON gci.GCI_GRI_SN=coli.COLI_GRI_SN
INNER JOIN VendorArrangeState vas ON vas.VAS_GRI_SN=coli.COLI_GRI_SN
LEFT JOIN OperatorInfo opi ON opi.OPI_SN=coli.COLI_OPI_ID
WHERE gci.GCI_VendorOrderId=? and vas.VAS_VEI_SN=? and gci.GCI_VEI_SN=? ";
$query = $this->HT->query($sql, array($vendorOrderId, $vei_sn, $vei_sn));
return $query->result();
}
/*!
* 获取团计划信息的记录 - 根据组团社团号 - 商务订单
* 计划变更和订单状态确认时使用
* @param string $groupCode 团号
* @param integer $vei_sn HT系统中供应商key
*/
public function get_vendorarrangestate_byGroup($groupCode, $vei_sn)
{
$sql = "SELECT coli.COLI_ID, coli.COLI_SN,opi.OPI_Email,opi.OPI_Name,
vas.VAS_ChangeText, vas.VAS_ConfirmInfo, vas.VAS_SN
FROM GRoupInfo gri
INNER JOIN BIZ_ConfirmLineInfo coli ON gri.GRI_SN=coli.COLI_GRI_SN
INNER JOIN VendorArrangeState vas ON vas.VAS_GRI_SN=coli.COLI_GRI_SN
LEFT JOIN OperatorInfo opi ON opi.OPI_SN=coli.COLI_OPI_ID
WHERE vas.VAS_VEI_SN=? and gri.GRI_No LIKE '%$groupCode%'";
$query = $this->HT->query($sql, array($vei_sn));
return $query->result();
}
/*!
* 获取团计划信息的记录 - 根据组团社团号 - 传统订单
* 计划变更和订单状态确认时使用
* @param string $groupCode 团号
* @param integer $vei_sn HT系统中供应商key
*/
public function get_vendorarrangestate_byGroup_T($groupCode, $vei_sn)
{
$sql = "SELECT coli.COLI_ID, coli.COLI_SN,opi.OPI_Email,opi.OPI_Name,
vas.VAS_ChangeText, vas.VAS_ConfirmInfo, vas.VAS_SN
FROM GRoupInfo gri
INNER JOIN ConfirmLineInfo coli ON gri.GRI_SN=coli.COLI_GRI_SN
INNER JOIN VendorArrangeState vas ON vas.VAS_GRI_SN=coli.COLI_GRI_SN
LEFT JOIN OperatorInfo opi ON opi.OPI_SN=coli.COLI_OPI_ID
WHERE vas.VAS_VEI_SN=? and gri.GRI_No LIKE '%$groupCode%'";
$query = $this->HT->query($sql, array($vei_sn));
return $query->result();
}
/*!
* 生成预定传真
*/
public function sp_biz_arrange()
{
$sql = "SP_BIZ_Arrange ?";
$query = $this->HT->query($sql, array($this->GRI_SN));
return $query->result();
}
public $GRI_SN=0; // 团号
public $GRI_No; // 团号
public $GRI_OrderType; // 订单类型
public $GRI_Name; // 团名
public $GRI_PersonNum; // 人数
public $GRI_Days; // 行程天数
public $GRI_IsCancel=0;
public $GRI_DeleteFlag=0;
public $GRI_OPI_ID=0;
public $GRI_operator=0;
public $GRI_Creator=0;
public $GRI_CreateDate=0;
/** 团信息 */
public function groupinfo_save()
{
$sql = "INSERT INTO GRoupInfo
(GRI_No
,GRI_Name
,GRI_PersonNum
,GRI_Days
,GRI_IsCancel
,DeleteFlag
,GRI_OPI_ID
,GRI_operator
,GRI_Creator
,GRI_CreateDate
,GRI_OrderType)
VALUES (N?,N?,?,?,?,?,?,?,?,GETDATE(),?)";
$query = $this->HT->query($sql, array(
$this->GRI_No,
$this->GRI_Name,
$this->GRI_PersonNum,
$this->GRI_Days,
$this->GRI_IsCancel,
$this->GRI_DeleteFlag,
$this->GRI_OPI_ID,
$this->GRI_operator,
$this->GRI_Creator,
$this->GRI_OrderType
));
$this->GRI_SN = $this->HT->query("select MAX(GRI_SN) as insert_id FROM GRoupInfo WHERE GRI_No='" . $this->GRI_No . "'")->row('insert_id');
return $this->GRI_SN;
}
public $GCI_SN;
public $GCI_VEI_SN;
public $GCI_combineNo=''; // 拼团团号
public $GCI_GRI_SN; // 团key
public $GCI_VendorOrderId; // 地接社系统订单id
public $GCI_FromAgc; // 组团社来源
public $GCI_groupType; // 组团社来源
public $GCI_travelDate;
public $GCI_leaveDate;
public $GCI_createTime;
/** 目的地订单 拼团信息 */
public function biz_groupcombineinfo_save()
{
$sql = "IF NOT EXISTS(
SELECT TOP 1 1
FROM GroupCombineInfo
WHERE GCI_VendorOrderId = ? and GCI_GRI_SN=? and GCI_VEI_SN=?
)
INSERT INTO GroupCombineInfo
(GCI_combineNo
,GCI_GRI_SN
,GCI_VEI_SN
,GCI_VendorOrderId
,GCI_FromAgc
,GCI_groupType
,GCI_travelDate
,GCI_leaveDate
,GCI_createTime)
VALUES
(N?
,?
,?
,?
,N?
,?
,?
,?
,?)
";
$query = $this->HT->query($sql, array(
$this->GCI_VendorOrderId
,$this->GCI_GRI_SN
,$this->GCI_VEI_SN
,$this->GCI_combineNo
,$this->GCI_GRI_SN
,$this->GCI_VEI_SN
,$this->GCI_VendorOrderId
,$this->GCI_FromAgc
,$this->GCI_groupType
,$this->GCI_travelDate
,$this->GCI_leaveDate
,$this->GCI_createTime
));
$this->GCI_SN = $this->HT->query("select MAX(GCI_SN) as insert_id FROM GroupCombineInfo WHERE GCI_combineNo='" . $this->GCI_combineNo . "'")->row('insert_id');
return $this->GCI_SN;
}
public function biz_groupcombineoperationdetail_cut($combineNo)
{
$sql = "DELETE
FROM GroupCombineOperationDetail
WHERE GCOD_GCI_combineNo = N?";
$query = $this->HT->query($sql, array($combineNo));
return $query;
}
/*!
* 暂时没用
*/
public function combineoperation_exist($combineNo='', $operation="")
{
if( ! $combineNo) { return array(); }
$sql = "SELECT TOP 1 GCOD_GCI_combineNo
FROM GroupCombineOperationDetail
WHERE GCOD_GCI_combineNo = N? and GCOD_operationType=?";
$query = $this->HT->query($sql, array(
$combineNo,$operation
));
return $query->result();
}
public $GCOD_SN;
public $GCOD_VEI_SN;
public $GCOD_GCI_combineNo = '';
public $GCOD_operationType = '';
public $GCOD_subType = '';
public $GCOD_title = '';
public $GCOD_dutyName = '';
public $GCOD_dutyTel;
public $GCOD_dutyPhoto;
public $GCOD_startDate;
public $GCOD_endDate;
public $GCOD_useNum=1;
public $GCOD_sumMoney;
public $GCOD_standard = '';
public $GCOD_carLicense = '';
public $GCOD_remark = '';
public $GCOD_creatTime;
public function biz_groupcombineoperationdetail_save()
{
// IF NOT EXISTS(
// SELECT TOP 1 1
// FROM GroupCombineOperationDetail
// WHERE GCOD_GCI_combineNo = N? and GCOD_operationType=N?
// )
$sql = "INSERT INTO GroupCombineOperationDetail
(GCOD_GCI_combineNo
,GCOD_VEI_SN
,GCOD_operationType
,GCOD_subType
,GCOD_title
,GCOD_dutyName
,GCOD_dutyTel
,GCOD_dutyPhoto
,GCOD_startDate
,GCOD_endDate
,GCOD_useNum
,GCOD_sumMoney
,GCOD_standard
,GCOD_carLicense
,GCOD_remark
,GCOD_creatTime)
VALUES
(N?
,?
,N?
,N?
,N?
,N?
,?
,?
,?
,?
,?
,?
,N?
,N?
,N?
,GETDATE())
";
$query = $this->HT->query($sql, array(
$this->GCOD_GCI_combineNo
,$this->GCOD_VEI_SN
,$this->GCOD_operationType
// ,$this->GCOD_GCI_combineNo
// ,$this->GCOD_operationType
,$this->GCOD_subType
,$this->GCOD_title
,$this->GCOD_dutyName
,$this->GCOD_dutyTel
,$this->GCOD_dutyPhoto
,$this->GCOD_startDate
,$this->GCOD_endDate
,$this->GCOD_useNum
,$this->GCOD_sumMoney
,$this->GCOD_standard
,$this->GCOD_carLicense
,$this->GCOD_remark
));
return $query;
}
var $GUT_SN;
var $GUT_FirstName; //联系人
var $GUT_LastName = ""; //联系人
var $GUT_Title; //称谓
var $GUT_Email; //主email
var $GUT_Email2; //备用email
var $GUT_NationalityID; //国家
var $GUT_Passport; //护照
var $GUT_TEL; //座机
var $GUT_MoveTel; //手机
/**
* 商务联系人表入库
*
* @return int GUT_SN 插入id
*/
function biz_guest_save() {
//生成一个号码用于MAX函数来查询插入ID时避免获得其它线程插入的值
$AddCode = $this->MakeOrderNumber();
$sql = "INSERT INTO BIZ_Guest \n"
. " ( \n"
. " GUT_FirstName, \n"
. " GUT_LastName, \n"
. " GUT_Title, \n"
. " GUT_Email, \n"
. " GUT_Email2, \n"
. " GUT_NationalityID, \n"
. " GUT_Passport, \n"
. " GUT_TEL, \n"
. " GUT_MoveTel, \n"
. " GUT_AddCode, \n"
. " GUT_CreateDate \n"
. " ) \n"
. "VALUES \n"
. " ( \n"
. " N?, \n"
. " N?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " GETDATE() \n"
. " )";
$query = $this->HT->query($sql, array(
mb_convert_encoding($this->GUT_FirstName, 'UTF-8'),
mb_convert_encoding($this->GUT_LastName, 'UTF-8'),
$this->GUT_Title,
$this->GUT_Email,
$this->GUT_Email2,
$this->GUT_NationalityID,
mb_convert_encoding($this->GUT_Passport, 'UTF-8'),
$this->GUT_TEL,
$this->GUT_MoveTel, $AddCode
));
$this->GUT_SN = $this->HT->query('select MAX(GUT_SN) as insert_id FROM BIZ_Guest WHERE GUT_AddCode=' . $AddCode)->row('insert_id');
return $this->GUT_SN;
}
public function get_SN_by_vendorOrderId($vendorOrderId, $vendorID)
{
$sql = "SELECT TOP 1 coli.COLI_GRI_SN,coli.COLI_SN,gci.GCI_SN
FROM GroupCombineInfo gci
INNER JOIN BIZ_ConfirmLineInfo coli ON coli.COLI_GRI_SN=gci.GCI_GRI_SN
WHERE gci.GCI_VendorOrderId='$vendorOrderId' and GCI_VEI_SN='$vendorID'";
$query = $this->HT->query($sql);
if ($query->row()) {
$this->BIZ_COLI_SN = $query->row()->COLI_SN;
$this->GRI_SN = $query->row()->COLI_GRI_SN;
$this->GCI_SN = $query->row()->GCI_SN;
return $query->row();
}
return NULL;
}
public function get_SN_by_groupCode($code, $vendorOrderId=NULL)
{
$vendorOrderId_sql = $vendorOrderId===null ? "" : " case when GCI_VendorOrderId=$vendorOrderId then 0 else 1 end asc, ";
$gri_sql = "SELECT top 1 GRI_SN,GRI_OPI_ID,GRI_operator,GRI_No,GRI_Name
from GRoupInfo
left join GroupCombineInfo on GCI_GRI_SN=GRI_SN
where GRI_Name like '%$code%'
order by
$vendorOrderId_sql
GCI_GRI_SN desc,GCI_SN asc";
$gri_query = $this->HT->query($gri_sql);
if ($gri_query->num_rows() > 0) {
$this->GRI_SN = $gri_query->row()->GRI_SN;
$this->GRI_No = $gri_query->row()->GRI_No;
$this->GRI_operator = $gri_query->row()->GRI_operator;
$coli_sql = "SELECT top 1 COLI_SN,gri.GRI_SN,cold.COLD_PlanVEI_SN,cold.COLD_SN,coli.COLI_ID,coli.COLI_Memo, coli.COLI_OrderDetailText,coli.COLI_State,coli.COLI_OPI_ID,coli.COLI_Price,coli.COLI_CUrrency
FROM BIZ_ConfirmLineInfo coli
inner join BIZ_ConfirmLineDetail cold on cold.COLD_COLI_SN=COLI_SN
LEFT JOIN GRoupInfo gri ON coli.COLI_GRI_SN=gri.GRI_SN
where COLI_GRI_SN=" . $this->GRI_SN;
// where COLI_GroupCode like '%$code%' ";
$coli_query = $this->HT->query($coli_sql);
if ($coli_query->num_rows() > 0) {
$this->BIZ_COLI_SN = $coli_query->row()->COLI_SN;
$this->COLD_PlanVEI_SN = $coli_query->row()->COLD_PlanVEI_SN;
}
return json_decode(json_encode(array_merge(json_decode(json_encode($gri_query->row()), true), json_decode(json_encode($coli_query->row()), true))));
}
return NULL;
}
/** 获取海纳团的发团人 */
public function get_gri_opi_id($code)
{
$gri_sql = "SELECT top 1 GRI_SN,GRI_OPI_ID,isnull(GRI_operator,0) GRI_operator,GRI_No,GRI_Name
from GRoupInfo
where GRI_Name like '%$code%' ";
$gri_query = $this->HT->query($gri_sql);
if ($gri_query->num_rows() > 0) {
return $gri_query->row()->GRI_operator;
}
return 0;
}
/*!
* 获取地接社接受计划的人员信息
* @param $vendorID 地接社ID
*/
public function get_vendorContact($vendorID)
{
$sql = "SELECT top 1 lmi2.LMI2_Name,
lmi.LMI_SN,
lmi.LMI_AutoFax,
lmi.LMI_Telephone,
lmi.LMI_Mobile,
lmi.LMI_ListMail
,vei2.VEI2_CompanyBN
FROM LinkmanInfo lmi
INNER JOIN LinkManInfo2 lmi2 ON lmi2.LMI2_LMI_SN=lmi.LMI_SN AND lmi2.LMI2_LGC=2
INNER JOIN VEndorInfo2 vei2 ON vei2.VEI2_VEI_SN=LMI_VEI_SN AND VEI2_LGC=2
WHERE LMI_Receiver='Yes' AND LMI_VEI_SN=$vendorID";
$query = $this->HT->query($sql);
return $query->row();
}
var $BIZ_COLI_SN;
var $BIZ_COLI_ID;
var $BIZ_COLI_GUT_SN; //联系人id
var $BIZ_COLI_Area; //市场
var $BIZ_COLI_ApplyDate = ''; //提交日期
var $BIZ_COLI_Price; //订单总价
var $BIZ_COLI_Cost; //总成本
var $BIZ_COLI_Currency; //币种
var $BIZ_COLI_TrueCardRate; //信用卡手续费
var $BIZ_COLI_SenderIP = ''; //客人ip
var $BIZ_COLI_WebCode = ''; //站点code
var $BIZ_COLI_servicetype; //订单来源类型
var $BIZ_COLI_sourcetype; //预定类型
var $BIZ_COLI_AgencyID;
var $BIZ_COLI_ConfirmType; //提交方式
var $BIZ_COLI_OrderDetailText;
var $BIZ_COLI_OriginalText='';
var $BIZ_COLI_Memo;
var $BIZ_COLI_GRI_SN;
var $BIZ_COLI_GroupCode='';
var $BIZ_COLI_PayManner;
var $BIZ_COLI_State;
var $BIZ_COLI_OPI_ID;
/**
* 商务订单主表入库
* @return int BIZ_COLI_ID 插入id
*/
function biz_confirm_save() {
// if (empty($this->BIZ_COLI_WebCode)) {
$this->BIZ_COLI_WebCode = '';// 来源图兰朵
// }
//生成一个号码用于MAX函数来查询插入ID时避免获得其它线程插入的值
$AddCode = $this->MakeOrderNumber();
$sql = "INSERT INTO BIZ_ConfirmLineInfo \n"
. "( \n"
. " COLI_ID, \n"
. " COLI_GUT_SN, \n"
. " COLI_Area, \n"
. " COLI_ApplyDate, \n"
. " COLI_Price, \n"
. " COLI_Cost, \n"
. " COLI_Currency, \n"
. " COLI_TrueCardRate, \n"
. " COLI_AgencyID, \n"
. " COLI_OrderDetailText, \n"
. " COLI_SenderIP, \n"
. " COLI_WebCode, \n"
. " COLI_servicetype, \n"
. " COLI_sourcetype, \n"
. " COLI_ConfirmType, \n"
. " COLI_State, \n"
. " COLI_Department, \n"
. " COLI_AddCode, \n"
. " COLI_OrderSource, \n"
. " COLI_Memo, \n"
. " COLI_GRI_SN, \n"
. " COLI_OPI_ID, \n"
. " COLI_GroupCode, \n"
. " COLI_PayManner, \n"
. " COLI_OriginalText \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " N?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " N?, \n"
. " ?, \n"
. " N? \n"
. ")";
$query = $this->HT->query($sql, array(
$this->BIZ_COLI_ID,
$this->BIZ_COLI_GUT_SN,
2,
// $this->config->item('Site_Area'),
//date("Y-m-d H:i:s"),
$this->BIZ_COLI_ApplyDate,
$this->BIZ_COLI_Price,
$this->BIZ_COLI_Cost,
$this->config->item('Site_Currency'),
$this->BIZ_COLI_TrueCardRate,
$this->BIZ_COLI_AgencyID,
$this->BIZ_COLI_OrderDetailText,
$this->BIZ_COLI_SenderIP,
$this->BIZ_COLI_WebCode,
$this->BIZ_COLI_servicetype,
$this->BIZ_COLI_sourcetype,
$this->BIZ_COLI_ConfirmType,
$this->BIZ_COLI_State,
30,// $this->config->item('Site_Department'),
$AddCode,
$this->COLI_OrderSource,
$this->BIZ_COLI_Memo,
$this->BIZ_COLI_GRI_SN,
$this->BIZ_COLI_OPI_ID,
$this->BIZ_COLI_GroupCode,
$this->BIZ_COLI_PayManner,
$this->BIZ_COLI_OriginalText
));
$this->BIZ_COLI_SN = $this->HT->query('select MAX(COLI_SN) as insert_id FROM BIZ_ConfirmLineInfo WHERE COLI_AddCode=' . $AddCode)->row('insert_id');
return $this->BIZ_COLI_SN;
}
public function update_confirmLineInfo()
{
$sql = "UPDATE BIZ_ConfirmLineInfo SET
COLI_GRI_SN=?,
COLI_GroupCode=?
WHERE COLI_SN=?
";
$query = $this->HT->query($sql, array(
$this->BIZ_COLI_GRI_SN
,$this->BIZ_COLI_GroupCode
,$this->BIZ_COLI_SN
));
return $this->query;
}
var $COLD_SN;
var $COLD_COLI_SN; // 订单主表sn
var $COLD_ServiceType; // 服务类型
var $COLD_StartDate; // 产品的服务的开始日期
var $COLD_EndDate; // 产品的服务的结束日期
var $COLD_TotalCost; // 总成本
var $COLD_TotalPrice; // 总报价
var $COLD_Count; // 产品数量
var $COLD_PersonNum; // 成人数
var $COLD_ChildNum; // 小孩数
var $COLD_BabyNum; // 婴儿数
var $cold_state; // 状态
var $DeleteFlag; // 删除标志
var $COLD_DeliveryCharge = 0; //服务费 + 快递费用 CNY
var $COLD_PlanVEI_SN = NULL; // 默认供应商 628-火车桂林国旅
var $COLD_SPFS = NULL; // 快递方式1自取 2酒店 3指定地址
var $COLD_ServiceSN = NULL; // 产品ID 除机票外 其它自基础产品库各产品ID
var $COLD_ServiceSN2 = NULL;
var $COLD_ServiceCity = NULL;
var $COLD_Memo = NULL;
var $COLD_MemoText = NULL;
/**
* 商务订单子(详细)表入库
*
* @return int 插入id
*/
function biz_confirm_detail_save() {
//生成一个号码用于MAX函数来查询插入ID时避免获得其它线程插入的值
$AddCode = $this->MakeOrderNumber();
$sql = "INSERT INTO BIZ_ConfirmLineDetail \n"
. "( \n"
. " COLD_COLI_SN, \n"
. " COLD_ServiceType, \n"
. " COLD_StartDate, \n"
. " COLD_EndDate, \n"
. " COLD_TotalCost, \n"
. " COLD_TotalPrice, \n"
. " COLD_Count, \n"
. " COLD_PersonNum, \n"
. " COLD_ChildNum, \n"
. " COLD_BabyNum, \n"
. " cold_state, \n"
. " DeleteFlag, \n"
. " COLD_DeliveryCharge, \n"
. " COLD_AddCode, \n"
. " COLD_PlanVEI_SN, \n"
. " COLD_SPFS, \n"
. " COLD_Memo, \n"
. " COLD_MemoText, \n"
. " COLD_ServiceSN, \n"
. " COLD_ServiceSN2, \n"
. " COLD_ServiceCity \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. ")";
$HT1 = $this->load->database('HT', true);
$query = $HT1->query($sql, array(
$this->COLD_COLI_SN,
$this->COLD_ServiceType,
$this->COLD_StartDate,
$this->COLD_EndDate,
$this->COLD_TotalCost,
$this->COLD_TotalPrice,
$this->COLD_Count,
$this->COLD_PersonNum,
$this->COLD_ChildNum,
$this->COLD_BabyNum,
$this->cold_state,
$this->DeleteFlag,
$this->COLD_DeliveryCharge,
$AddCode,
$this->COLD_PlanVEI_SN,
$this->COLD_SPFS,
$this->COLD_Memo,
$this->COLD_MemoText,
$this->COLD_ServiceSN,
$this->COLD_ServiceSN2,
$this->COLD_ServiceCity)
);
//查出最近插入的id
$HT2 = $this->load->database('HT', true);
$this->COLD_SN = $HT2->query('select MAX(COLD_SN) as insert_id FROM BIZ_ConfirmLineDetail WHERE COLD_AddCode=' . $AddCode)->row('insert_id');
return $this->COLD_SN;
}
var $BIZ_COLL_COLI_SN;
var $BIZ_COLL_type;
var $BIZ_COLL_COLI_Field;
var $BIZ_COLL_COLI_value;
var $BIZ_COLL_OPI_SN;
function biz_confirm_line_log_save()
{
$sql = "INSERT INTO BIZ_ConfirmLineLog (
COLL_COLI_SN,
COLL_LogTime,
COLL_type,
COLL_COLI_Field,
COLL_COLI_value,
COLL_OPI_SN
) VALUES (?,GETDATE(),?,?,?,?) ";
$HT1 = $this->load->database('HT', true);
$query = $HT1->query($sql, array($this->BIZ_COLL_COLI_SN,
$this->BIZ_COLL_type,
$this->BIZ_COLL_COLI_Field,
$this->BIZ_COLL_COLI_value,
$this->BIZ_COLL_OPI_SN)
);
return $query;
}
var $POI_SN;
var $POI_COLD_SN;
var $POI_FlightsNo = '';
var $POI_AirPort = '';
var $POI_Time;
var $POI_Hotel = '';
var $POI_HotelAddress = '';
var $POI_HotelPhone = '';
var $POI_HotelCheckInName = '';
var $POI_HotelCheckIn = '';
var $POI_HotelCheckOut = '';
var $POI_EndTime = '';
var $POI_QuotationType; // 1 报价 2 网络支付价 3 促销价
/** 包价线路订单入库 */
public function biz_packageorder_save()
{
$sql = "IF NOT EXISTS(
SELECT TOP 1 1
FROM BIZ_PackageOrderInfo
WHERE POI_COLD_SN = ?
)
INSERT INTO BIZ_PackageOrderInfo
(POI_COLD_SN
,POI_FlightsNo
,POI_AirPort
,POI_Time
,POI_Hotel
,POI_QuotationType
,POI_HotelAddress
,POI_HotelPhone
,POI_HotelCheckInName
,POI_HotelCheckIn
,POI_HotelCheckOut
,POI_EndTime)
VALUES
(?
,?
,N?
,?
,N?
,?
,N?
,N?
,N?
,N?
,N?
,N?)
";
$query = $this->HT->query($sql, array(
$this->POI_COLD_SN
,$this->POI_COLD_SN
,$this->POI_FlightsNo
,$this->POI_AirPort
,$this->POI_Time
,$this->POI_Hotel
,$this->POI_QuotationType
,$this->POI_HotelAddress
,$this->POI_HotelPhone
,$this->POI_HotelCheckInName
,$this->POI_HotelCheckIn
,$this->POI_HotelCheckOut
,$this->POI_EndTime
));
$this->POI_SN = $this->HT->query('select MAX(POI_SN) as insert_id FROM BIZ_PackageOrderInfo WHERE POI_COLD_SN=' . $this->POI_COLD_SN)->row('insert_id');
return $this->POI_SN;
}
var $FOI_SN;
var $FOI_COLD_SN; // 订单子表sn
var $Aircompany; // 航空公司编码
var $FlightsNo; // 航班号
var $Cabin; // 舱位
var $DepartAirport; // 出发机场
var $ArrivalAirport; // 抵达机场
var $DepartureCity; // 出发城市
var $DepartureTime; // 出发日期
var $ArrivalCity; // 抵达城市
var $Arrivaltime; // 抵达时间
var $DepartureDate; // 出发时间
var $adultCost; // 成人成本
var $childCost; // 小孩成倍
var $babyCost; // 婴儿成本
var $adultPrice; // 成人报价
var $childPrice; // 小孩报价
var $babyPrice; // 婴儿报价
var $Stopover; //
var $PriceY; // Y仓价格
var $price_low; // 最低价格
var $FOI_Mile; // 里程
var $TicketAddress; // 寄送地址
var $FOI_CostTime = ''; // 运行时间
var $Aircraft = ''; // 12306座位编号
var $FOI_ServiceFee_adult = NULL; // 成人服务费
var $FOI_ServiceFee_child = NULL; // 儿童服务费
var $FOI_DeliveryFee = NULL; // 寄票费
var $FOI_SelectedSeat = ""; // 选座
/**
*
* 商务机票订单入库
*
*/
function biz_flight_order_save() {
//生成一个号码用于MAX函数来查询插入ID时避免获得其它线程插入的值
$AddCode = $this->MakeOrderNumber();
$sql = "INSERT INTO BIZ_FlightsOrderInfo \n"
. "( \n"
. " FOI_COLD_SN, \n"
. " Aircompany, \n"
. " FlightsNo, \n"
. " Cabin, \n"
. " DepartAirport, \n"
. " ArrivalAirport, \n"
. " DepartureCity, \n"
. " DepartureTime, \n"
. " ArrivalCity, \n"
. " Arrivaltime, \n"
. " DepartureDate, \n"
. " adultCost, \n"
. " childCost, \n"
. " babyCost, \n"
. " adultPrice, \n"
. " childPrice, \n"
. " babyPrice, \n"
. " Stopover, \n"
. " PriceY, \n"
. " price_low, \n"
. " FOI_Mile, \n"
. " TicketAddress, \n"
. " FOI_CostTime, \n"
. " FOI_AddCode, \n"
. " Aircraft, \n"
. " FOI_ServiceFee_adult, \n"
. " FOI_ServiceFee_child, \n"
. " FOI_SelectedSeat, \n"
. " FOI_DeliveryFee \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. ")";
$HT1 = $this->load->database('HT', true);
$query = $HT1->query($sql, array($this->FOI_COLD_SN,
$this->Aircompany,
$this->FlightsNo,
$this->Cabin,
$this->DepartAirport,
$this->ArrivalAirport,
$this->DepartureCity,
$this->DepartureTime,
$this->ArrivalCity,
$this->Arrivaltime,
$this->DepartureDate,
$this->adultCost,
$this->childCost,
$this->babyCost,
$this->adultPrice,
$this->childPrice,
$this->babyPrice,
$this->Stopover,
$this->PriceY,
$this->price_low,
$this->FOI_Mile,
$this->TicketAddress,
$this->FOI_CostTime,
$AddCode,
$this->Aircraft,
$this->FOI_ServiceFee_adult,
$this->FOI_ServiceFee_child,
$this->FOI_SelectedSeat,
$this->FOI_DeliveryFee
));
$this->FOI_SN = $HT1->query('select MAX(FOI_SN) as insert_id FROM BIZ_FlightsOrderInfo WHERE FOI_AddCode=' . $AddCode)->row('insert_id');
return $this->FOI_SN;
}
/*!
* 查询是否已经写入过客人列表
* @date 2018-04-28
* @param [type] $cold_sn 订单字表key
*/
public function bookpeople_exist($cold_sn)
{
if( ! $cold_sn) { return array(); }
$sql = "SELECT top 1 *
FROM BIZ_BookPeopleList BPL
WHERE BPL_COLD_SN=? ";
$query = $this->HT->query($sql, array($cold_sn));
return $query->result();
}
var $BPE_SN;
var $BPE_FirstName; //客人
var $BPE_MiddleName; //客人
var $BPE_LastName; //客人
var $BPE_GuestType; //客人类型
var $BPE_Passport; //护照
var $BPE_imageSrc = NULL; //护照图片
var $BPE_Nationality; //国籍
var $BPE_SEX; //性别
var $BPE_BirthDate; //生日
var $BPE_PassportType = "Passport No."; //护照类型
/**
*
* 商务订单参团客人入库
*
*/
function biz_book_people_save() {
//生成一个号码用于MAX函数来查询插入ID时避免获得其它线程插入的值
$AddCode = $this->MakeOrderNumber();
$sql = "INSERT INTO BIZ_BookPeople \n"
. "( \n"
. " BPE_FirstName, \n"
. " BPE_MiddleName, \n"
. " BPE_LastName, \n"
. " BPE_GuestType, \n"
. " BPE_Passport, \n"
. " BPE_imageSrc, \n"
. " BPE_Nationality, \n"
. " BPE_SEX, \n"
. " BPE_BirthDate, \n"
. " BPE_PassportType, \n"
. " BPE_AddCode \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " N?, \n"
. " N?, \n"
. " N?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. ")";
$query = $this->HT->query($sql, array(
mb_convert_encoding($this->BPE_FirstName, 'UTF-8'),
mb_convert_encoding($this->BPE_MiddleName, 'UTF-8'),
mb_convert_encoding($this->BPE_LastName, 'UTF-8'), $this->BPE_GuestType,
mb_convert_encoding($this->BPE_Passport, 'UTF-8'), $this->BPE_imageSrc,
$this->BPE_Nationality,
$this->BPE_SEX, $this->BPE_BirthDate, $this->BPE_PassportType, $AddCode));
$this->BPE_SN = $this->HT->query('select MAX(BPE_SN) as insert_id FROM BIZ_BookPeople WHERE BPE_AddCode=' . $AddCode)->row('insert_id');
return $this->BPE_SN;
}
/**
* 参团人关联
*
* @param int 商务子表sn
* @param int 参团客人sn
*/
function biz_bookpeople_List_save($COLD_SN, $BPE_SN) {
$sql = "INSERT INTO BIZ_BookPeopleList \n"
. "( \n"
. " BPL_COLD_SN, \n"
. " BPL_BPE_SN \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ? \n"
. ")";
$query = $this->HT->query($sql, array($COLD_SN, $BPE_SN));
}
/*
* 生成订单号
* 根据系统时间生成精确到0.0001微秒
*/
function MakeOrderNumber() {
return str_replace('.', '', sprintf('%11.4f', gettimeofday(TRUE)));
}
/**
* 生成商务订单号
*/
function biz_make_order_number() {
/*
$date = date('ymd',time());
$sql = "SELECT MAX( \n"
. " CONVERT( \n"
. " INT, \n"
. " CASE \n"
. " WHEN ISNUMERIC(RIGHT(COLI_ID, 3)) = 0 THEN LEFT(RIGHT(COLI_ID, 4), 3) \n"
. " ELSE RIGHT(COLI_ID, 3) \n"
. " END \n"
. " ) \n"
. " ) AS SN \n"
. "FROM dbo.BIZ_ConfirmLineInfo \n"
. "WHERE (LEFT(COLI_ID, 6) = ?)";
$query = $this->HT->query($sql,array($date));
$id = $query->row()->SN;
if (is_null($id)||empty($id))
{
$id = 0;
}
$ids = $date.(sprintf('%03d',(int)$id+1));
return $ids;
*/
//call $conn
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, "declare @ccid varchar(20);exec dbo.SP_GetBIZOrderNo @ccid out;select @ccid as ccid;");
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]->ccid);
}
}
/*!
* 删除收款记录以更新
* @date 2018-04-28
* @param [type] $coli_sn 订单key
* @param [type] $paytype 付款方式
*/
public function biz_groupaccountinfo_cut($coli_sn, $paytype)
{
$sql = "DELETE from BIZ_GroupAccountInfo
WHERE GAI_COLI_SN=? AND GAI_Type=? AND GAI_Operator = 435";
$query = $this->HT->query($sql, array($coli_sn, $paytype));
return $query;
}
/**
*
* 插入收款记录
*
*/
public $GAI_COLI_SN;
public $GAI_GRI_SN;
public $GAI_COLI_ID;
public $GAI_Type;
public $GAI_SQJE;
public $GAI_SQDate;
public $GAI_SQJECurrency;
public $GAI_SSJE;
public $GAI_SSDate;
public $GAI_Operator;
public $GAI_Memo="";
public function biz_groupaccountinfo_save()
{
$sql = "INSERT INTO BIZ_GroupAccountInfo \n"
. " ( \n"
. " GAI_COLI_SN, \n"
. " GAI_GRI_SN, \n"
. " GAI_COLI_ID, \n"
. " GAI_Type, \n"
. " GAI_SQJE, \n"
. " GAI_SQDate, \n"
. " GAI_SQJECurrency, \n"
. " GAI_SSJE, \n"
. " GAI_SSDate, \n"
. " GAI_Operator, \n"
. " GAI_Memo \n"
. " ) \n"
. "VALUES \n"
. " ( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. " )";
$query = $this->HT->query($sql, array(
$this->GAI_COLI_SN
,$this->GAI_GRI_SN
,$this->GAI_COLI_ID
,$this->GAI_Type
,$this->GAI_SQJE
,$this->GAI_SQDate
,$this->GAI_SQJECurrency
,$this->GAI_SSJE
,$this->GAI_SSDate
,$this->GAI_Operator
,$this->GAI_Memo
));
return $query;
}
function get_package_order($COLI_ID)
{
$order_info_sql = "SELECT
GCI_SN,GCI_VendorOrderId,GCI_combineNo
,COLI_SN,COLI_ID,COLD_SN,COLI_GroupCode,COLI_OPI_ID,COLI_OrderDetailText
,COLD_ServiceSN,COLD_PersonNum,COLD_ChildNum,COLD_StartDate,COLD_EndDate,cold.COLD_MemoText
,pag2.PAG2_Name
,poi.POI_Hotel,poi.POI_HotelAddress,poi.POI_HotelPhone
,poi.POI_AirPort,poi.POI_FlightsNo
,GUT_FirstName,GUT_LastName
FROM BIZ_ConfirmLineInfo coli
inner join GroupCombineInfo on COLI_GRI_SN=GCI_GRI_SN --and GCI_combineNo<>'cancel'
inner join BIZ_ConfirmLineDetail cold on COLD_COLI_SN=COLI_SN
inner join BIZ_PackageOrderInfo poi on poi.POI_COLD_SN=COLD_SN
inner join BIZ_GUEST g on g.GUT_SN=COLI_GUT_SN
inner join BIZ_PackageInfo2 pag2 on pag2.PAG2_PAG_SN=COLD_ServiceSN and pag2.PAG2_LGC=1
where COLI_GroupCode like '%" . $this->HT->escape_like_str($COLI_ID) . "%'
OR COLI_ID like '%" . $this->HT->escape_like_str($COLI_ID) . "%'";
// OR COLI_ID like '%" . $this->HT->escape_like_str($COLI_ID) . "%'
$order_info_query = $this->HT->query($order_info_sql);
$ret = $order_info_query->result();
if ($order_info_query->num_rows() > 0) {
// $operation_sql = "SELECT gcod.*
// from GroupCombineOperationDetail gcod
// where GCOD_GCI_combineNo=?
// and gcod.GCOD_operationType in ('touristCarOperations','guiderOperations')";
// $operation_info = $this->HT->query($operation_sql, array($ret['order_info'][0]->GCI_combineNo));
// $ret['operation_info'] = $operation_info->result();
}
return $ret;
}
function get_operator($OPI_SN=0)
{
$operator_sql = "SELECT opi.OPI_SN,opi.OPI_Name,opi.OPI_FirstName,OPI_MoveTelephone,OPI_Email,opi2.OPI2_Name
from OperatorInfo opi
left join OperatorInfo2 opi2 on opi2.OPI2_OPI_SN=OPI_SN and opi2.OPI2_LGC=1
where OPI_SN=" . $OPI_SN . " AND OPI_SN<>435";
return $this->HT->query($operator_sql)->row();
}
function get_operation($combineNo)
{
$combineNos = my_implode("'",",",$combineNo);
$operation_sql = "SELECT gcod.*
from GroupCombineOperationDetail gcod
where GCOD_GCI_combineNo in ($combineNos)
and gcod.GCOD_operationType in ('touristCarOperations','guiderOperations')
order by GCOD_startDate";
$operation_info = $this->HT->query($operation_sql, array($combineNo));
return $operation_info->result();
}
function GetNationalityID($nationalityName) {
if (!$nationalityName) {
return 0;
}
if (is_numeric($nationalityName)) {
return $nationalityName;
} else {
$sql = "SELECT TOP 1 ci2.COI2_COI_SN \n"
. "FROM COuntryInfo2 ci2 \n"
. "WHERE ci2.COI2_Country = ? ";
$query = $this->HT->query($sql, array($nationalityName));
if ($query->result()) {
$row = $query->row();
return $row->COI2_COI_SN;
} else {
return 0;
}
}
}
function GetNationalityName($nationalityID) {
if (!is_numeric($nationalityID)) {
return $nationalityID;
} else {
$sql = "SELECT TOP 1 ci2.COI2_Country \n"
. "FROM COuntryInfo2 ci2 \n"
. "WHERE ci2.COI2_LGC = 2 \n"
. " AND ci2.COI2_COI_SN = ? ";
$query = $this->HT->query($sql, array($nationalityID));
if ($query->result()) {
$row = $query->row();
return $row->COI2_Country;
} else {
return $nationalityID;
}
}
}
/**
*
* 获取商务订单信息
* @param string $order_id 订单id
* @return mixed 订单信息
*
*/
public function get_flight_order_by_id($order_id) {
$sql = "SELECT DISTINCT cli.COLI_ID, \n"
. " cli.COLI_Price, \n"
. " bg.GUT_FirstName, \n"
. " bg.GUT_LastName, \n"
. " bg.GUT_Email, \n"
. " bg.GUT_Email2, \n"
. " bpe.BPE_SN, \n"
. " bpe.BPE_GuestType, \n"
. " bpe.BPE_FirstName, \n"
. " bpe.BPE_MiddleName, \n"
. " bpe.BPE_LastName, \n"
. " bpe.BPE_GuestType, \n"
. " bpe.BPE_Passport, \n"
. " cld.COLD_Count, \n"
. " foi.FlightsNo, \n"
. " foi.DepartureDate, \n"
. " foi.DepartureTime, \n"
. " foi.ArrivalTime, \n"
. " cli.COLI_PayManner, \n"
. " cli.COLI_State, \n"
. " cli.COLI_sourcetype, \n"
. " foi.Cabin, \n"
. " foi.DepartAirport, \n"
. " foi.ArrivalAirport, \n"
. " cld.COLD_SN, \n"
. " foi.DepartureCity, \n"
. " foi.ArrivalCity, \n"
. " bg.GUT_TEL, \n"
. " bg.GUT_NationalityID, \n"
. " cli.COLI_OrderDetailText, \n"
. " bpe.BPE_imageSrc, \n"
. " cli.COLI_Cost, \n"
. " cld.COLD_TotalPrice, \n"
. " cld.COLD_TotalCost \n"
. "FROM BIZ_ConfirmLineInfo cli \n"
. " INNER JOIN BIZ_ConfirmLineDetail cld \n"
. " ON cli.COLI_SN = cld.COLD_COLI_SN \n"
. " INNER JOIN BIZ_GUEST bg \n"
. " ON bg.GUT_SN = cli.COLI_GUT_SN \n"
. " INNER JOIN BIZ_BookPeopleList bpl \n"
. " ON bpl.BPL_COLD_SN = cld.COLD_SN \n"
. " INNER JOIN BIZ_BookPeople bpe \n"
. " ON bpl.BPL_BPE_SN = bpe.BPE_SN \n"
. " INNER JOIN BIZ_FlightsOrderInfo foi \n"
. " ON foi.FOI_COLD_SN = cld.COLD_SN \n"
. "WHERE cli.COLI_ID = ? AND isnull(cld.deleteflag,0) = 0 ";
$query = $this->HT->query($sql, array($order_id));
return $query->result();
}
/**
*
* 获取机票订单乘员列表
* @param string $order_id 订单id
* @return mixed 订单信息
*
*/
public function get_bpe_list_by_id($order_id) {
$sql = "SELECT DISTINCT bpe.BPE_SN, \n"
. " bpe.BPE_FirstName, \n"
. " bpe.BPE_MiddleName, \n"
. " bpe.BPE_LastName, \n"
. " bpe.BPE_Passport \n"
. "FROM BIZ_BookPeople bpe \n"
. " INNER JOIN BIZ_BookPeopleList bpl \n"
. " ON bpe.BPE_SN = bpl.BPL_BPE_SN \n"
. " INNER JOIN BIZ_ConfirmLineDetail cold \n"
. " ON bpl.BPL_COLD_SN = cold.COLD_SN \n"
. " INNER JOIN BIZ_ConfirmLineInfo coli \n"
. " ON coli.COLI_SN = cold.COLD_COLI_SN \n"
. "WHERE coli.COLI_ID = ?";
$query = $this->HT->query($sql, array($order_id));
//echo('<!--'.$this->HT->compile_binds($sql,array($order_id)).'-->');
return $query->result();
}
/**
*
* 获取机票电子票号
* @param array bpe_sn 乘客sn数组
* @return mixed 机票票号
*
*/
public function get_ticket_no($bpe_sn) {
if (is_array($bpe_sn)) {
$instr = join(',', $bpe_sn);
} elseif (is_string($bpe_sn)) {
$instr = $bpe_sn;
} else {
$instr = 0;
}
$sql = "SELECT DISTINCT ftn.FTN_FilghtsNo, \n"
. " ftn.FTN_TicketNo, \n"
. " ftn.FTN_GuestNo \n"
. "FROM BIZ_FlightsTicketNo ftn \n"
. "WHERE ftn.FTN_GuestNo IN (" . $instr . ")";
$query = $this->HT->query($sql);
return $query->result();
}
/*
* 发送邮件
*/
public function save_automail($M_SenderName, $M_SenderEmail, $fromName, $fromEmail, $toName, $toEmail, $subject, $body, $frominfo = 'vendorConfirm msg', $M_RelatedInfo = '', $M_State = 0, $M_AddTime = '', $M_Web = 'vendorConfirm msg') {
$sql = "INSERT INTO
Email_AutomaticSend (
M_SenderName,
M_SenderEmail,
M_ReplyToName,
M_ReplyToEmail,
M_ToName,
M_ToEmail,
M_Title,
M_Body,
M_Web,
M_FromName,
M_ServiceSN,
M_State,
M_AddTime
) VALUES (N?, N?, N?, N?, N?, N?, N?, N?, ?, N?, ?,?,getdate()) ";
$query = $this->HT->query($sql, array($M_SenderName, $M_SenderEmail, $fromName, $fromEmail, $toName, $toEmail, $subject, $body, $M_Web, $frominfo, $M_RelatedInfo, $M_State));
return $query;
}
/**
* wifi预订入库(目前仅CHT使用)
*
* @return int 插入id
*/
var $WOI_COLD_SN;
var $WOI_Device; //设备智能手机、pad
var $WOI_DeviceCount; //设备数量
var $WOI_UsersCount; //使用人数
var $WOI_Package; //Wi-Fi套餐
var $WOI_PackageCount; //套餐数量
var $WOI_DeliverDate; //起租日期
var $WOI_DeliverCity; //起租城市
var $WOI_DeliverAddr; //起租地址
var $WOI_ReturnDate; //归还日期
var $WOI_ReturnCity; //归还城市
var $WOI_ReturnAddr; //归还地址
var $WOI_OtherService; //其他服务
var $WOI_GroupNo; //团号
var $WOI_ExpressNo; //快递单号
public function biz_wifi_info_save() {
$sql = "INSERT INTO BIZ_WifiOrderInfo \n"
. "( \n"
. " WOI_COLD_SN, \n"
. " WOI_Device, \n"
. " WOI_DeviceCount, \n"
. " WOI_UsersCount, \n"
. " WOI_Package, \n"
. " WOI_PackageCount, \n"
. " WOI_DeliverDate, \n"
. " WOI_DeliverCity, \n"
. " WOI_DeliverAddr, \n"
. " WOI_ReturnDate, \n"
. " WOI_ReturnCity, \n"
. " WOI_ReturnAddr, \n"
. " WOI_OtherService, \n"
. " WOI_GroupNo, \n"
. " WOI_ExpressNo \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. ")";
$HT1 = $this->load->database('HT', true);
$query = $HT1->query($sql, array($this->WOI_COLD_SN,
$this->WOI_Device,
$this->WOI_DeviceCount,
$this->WOI_UsersCount,
$this->WOI_Package,
$this->WOI_PackageCount,
$this->WOI_DeliverDate,
$this->WOI_DeliverCity,
$this->WOI_DeliverAddr,
$this->WOI_ReturnDate,
$this->WOI_ReturnCity,
$this->WOI_ReturnAddr,
$this->WOI_OtherService,
$this->WOI_GroupNo,
$this->WOI_ExpressNo
));
}
/**
* 酒店预订入库
*
* @return int 插入id
*/
var $HOI_COLD_SN; //必选
var $HOI_NoSmoking = null; //无烟房
var $HOI_EarlyTime = null; //最早确认时间,已不用
var $HOI_LastTime = null; //最晚确认时间,已不用
var $HOI_Room_NO = null; //房号
var $HOI_ExtraNum = 0; //加床
var $HOI_RoomTypeName = null; //房型
var $HOI_BreakNum = null; //早餐人数
var $HOI_PriceType = null; //价格类型
var $HOI_BreakType = null; //早餐类型
var $HOI_RoomRates = null;
var $HOI_ExtrabedRates = null;
var $HOI_TaxFee = null;
public function biz_hotel_order_save() {
/* ASP版本
sql="select * from BIZ_HotelOrderInfo where 1=2"
rs2.open sql,conn,3,3,1
rs2.addnew
rs2("HOI_COLD_SN")=COLD_SN
rs2("HOI_ExtraNum") = extrabed
if clng(Smoking)<2 then
rs2("HOI_NoSmoking")=Smoking
end if
rs2("HOI_EarlyTime")=earlydate
rs2("HOI_LastTime")=""
rs2.update
rs2.close
*/
$sql = "INSERT INTO BIZ_HotelOrderInfo \n"
. "( \n"
. " HOI_COLD_SN, \n"
. " HOI_NoSmoking, \n"
. " HOI_EarlyTime, \n"
. " HOI_LastTime, \n"
. " HOI_Room_NO, \n"
. " HOI_ExtraNum, \n"
. " HOI_RoomTypeName, \n"
. " HOI_BreakNum, \n"
. " HOI_PriceType, \n"
. " HOI_BreakType, \n"
. " HOI_RoomRates, \n"
. " HOI_ExtrabedRates, \n"
. " HOI_TaxFee \n"
. ") \n"
. "VALUES \n"
. "( \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ?, \n"
. " ? \n"
. ")";
$HT1 = $this->load->database('HT', true);
$query = $HT1->query($sql, array(
$this->HOI_COLD_SN,
$this->HOI_NoSmoking,
$this->HOI_EarlyTime,
$this->HOI_LastTime,
$this->HOI_Room_NO,
$this->HOI_ExtraNum,
$this->HOI_RoomTypeName,
$this->HOI_BreakNum,
$this->HOI_PriceType,
$this->HOI_BreakType,
$this->HOI_RoomRates,
$this->HOI_ExtrabedRates,
$this->HOI_TaxFee
));
}
/**
*
* 返回成行订单
* 条件1订单类型
* 天剑2网站来源
*
*/
public function get_order_info($COLI_sourcetype, $COLI_WebCode, $biz = true) {
if ($biz) {
$sql = "SELECT TOP 200 c.COLI_WebCode, \n"
. " c.COLI_ID, \n"
. " c.COLI_ConfirmDate, \n"
. " c.COLI_ApplyDate, \n"
. " ISNULL(c.COLI_IsSuccess, 0) AS success \n"
. "FROM BIZ_ConfirmLineInfo c \n"
. "WHERE c.COLI_sourcetype = ? \n"
. " AND c.COLI_WebCode = ? \n"
. "ORDER BY \n"
. " c.COLI_SN DESC";
$query = $this->HT->query($sql, array($COLI_sourcetype, $COLI_WebCode));
} else {
$sql = "SELECT TOP 200 c.COLI_WebCode, \n"
. " c.COLI_ID, \n"
. " c.COLI_ConfirmDate, \n"
. " c.COLI_ApplyDate, \n"
. " CASE WHEN c.COLI_Sended = 5 THEN 1 ELSE 0 END AS success \n"
. "FROM ConfirmLineInfo c \n"
. "WHERE c.COLI_sourcetype = ? \n"
. " AND c.COLI_WebCode = ? \n"
. "ORDER BY \n"
. " c.COLI_SN DESC";
$query = $this->HT->query($sql, array($COLI_sourcetype, $COLI_WebCode));
}
$this->sql = $this->HT->queries;
return $query->result();
}
//传统订单支付之后,插入新的订单信息
public function insert_daytrip_order($coli_sn, $pay_manner, $gri_sn, $state, $deleteflag) {
//获取订单
$order_info_sql = "
SELECT confirmlineinfotmp.COLI_OrderPrice,
memberinfotmp.MEI_FirstName,
memberinfotmp.MEI_LastName,
memberinfotmp.MEI_Mail
FROM memberinfotmp
INNER JOIN customerlisttmp
ON memberinfotmp.mei_sn = customerlisttmp.cul_cui_sn
INNER JOIN confirmlineinfotmp
ON customerlisttmp.cul_coli_sn = confirmlineinfotmp.coli_sn
WHERE (customerlisttmp.cul_coli_sn = ? )";
$query = $this->HT->query($order_info_sql, array($coli_sn));
$order_info = $query->row();
//插入记录
$sql = "INSERT INTO GroupAccountInfoTmp
(
GAI_COLI_SN,
GAI_SQJE,
GAI_SQDate,
GAI_CusName,
GAI_CusEmail,
GAI_SQJECurrency,
GAI_Type,
LastEditTime,
GAI_GRI_SN,
GAI_State,
DeleteFlag
)
VALUES (?,?,?,?,?,?,?,?,?,?,?)";
$query = $this->HT->query($sql, array($coli_sn,
$order_info->COLI_OrderPrice,
date('Y-m-d H:i:s'),
$order_info->MEI_FirstName . " " . $order_info->MEI_LastName,
$order_info->MEI_Mail,
$this->config->item('Site_Currency'),
$pay_manner,
date('Y-m-d H:i:s'),
$gri_sn,
$state,
$deleteflag
)
);
}
//来源终端 tablet mobile desktop
public function check_device() {
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$ua = $_SERVER['HTTP_USER_AGENT'];
} else {
$ua = '';
}
## This credit must stay intact (Unless you have a deal with @lukasmig or frimerlukas@gmail.com
## Made by Lukas Frimer Tholander from Made In Osted Webdesign.
## Price will be $2
$iphone = strstr(strtolower($ua), 'mobile'); //Search for 'mobile' in user-agent (iPhone have that)
$android = strstr(strtolower($ua), 'android'); //Search for 'android' in user-agent
$windowsPhone = strstr(strtolower($ua), 'phone'); //Search for 'phone' in user-agent (Windows Phone uses that)
if (!function_exists('androidTablet')) {
function androidTablet($ua) { //Find out if it is a tablet
if (strstr(strtolower($ua), 'android')) { //Search for android in user-agent
if (!strstr(strtolower($ua), 'mobile')) { //If there is no ''mobile' in user-agent (Android have that on their phones, but not tablets)
return true;
}
}
}
}
$androidTablet = androidTablet($ua); //Do androidTablet function
$ipad = strstr(strtolower($ua), 'ipad'); //Search for iPad in user-agent
if ($androidTablet || $ipad) { //If it's a tablet (iPad / Android)
return 'tablet';
} elseif ($iphone && !$ipad || $android && !$androidTablet || $windowsPhone) { //If it's a phone and NOT a tablet
return 'mobile';
} else { //If it's not a mobile device
return 'desktop';
}
}
public function ip_limit($ip = "0.0.0.0")
{
if (strcmp($ip, "0.0.0.0") === 0 || empty($ip)) {
return TRUE;
}
$sql = "SELECT COUNT(1) cnt
FROM ConfirmLineInfoTmp
WHERE 1=1
AND COLI_SenderIP = ?
AND DateDiff(dd,COLI_ApplyDate,getdate())=0";
$query = $this->HT->query($sql, array($ip));
$ret = $query->row();
if ($ret->cnt > 50) {
return FALSE;
} else {
return TRUE;
}
}
public function convert_RMB_to_currency($money=0, $toCurrency='USD')
{
return $this->HT
->query("SELECT tourmanager.dbo.[ConvertCurrencyToCurrency](1,'RMB','$toCurrency',$money) as rmb ")
->row()->rmb;
}
public function test()
{
// return NULL;
$sql = "
";
$query = $this->HT->query($sql);
}
}