线路订单:补全空行程的日期;行程接待标准、要求;酒店要求;成人/儿童计算修正正;

feature/pay
lyt 8 years ago
parent d5e067ea62
commit fc8b72bd70

@ -59,6 +59,7 @@ class Tulanduo extends CI_Controller
$this->load->helper('array');
$this->load->library('trippest');
$this->load->model('Group_model');
$this->load->model('orders_model');
$this->load->model('BIZ_orders_model', 'BIZ_order');
$this->load->model('TuLanDuo_queryContentBuilder', 'tld_order');
$this->load->model('TuLanDuo_addOrUpdateRouteOrderContentBuilder', 'tldOrderBuilder');
@ -103,13 +104,15 @@ class Tulanduo extends CI_Controller
}
$change_info = str_replace("\n", "<br>", $change_info);
$agcOrderNo = $vas->GRI_Name;
// $grd_info = $this->Group_model->get_vendor_plan_info($gri_sn, $vei_sn);
// $all_day_no = array_map(function($ele){return $ele->GRD_DayNo;}, $grd_info);
$grd_info = $this->Group_model->get_vendor_plan_info($gri_sn, $vei_sn);
$all_day_no = array_map(function($ele){return $ele->GRD_DayNo;}, $grd_info);
$routeType = "桂林海纳国旅"; // todo
$arrange_info = $this->Group_model->get_arrange_info($gri_sn, $vei_sn);
$routeName = "中华游" . $arrange_info[0]->tocity . "常规线路"; // todo
$last_date = count($arrange_info)-1;
$end_date = strstr($arrange_info[$last_date]->ACI_OrderDate, " ", true);
$routeName = "中华游" . $arrange_info[0]->tocity . "线路"; // todo
$first_date = $grd_info[0]->day_no_raw;
$last_date = count($grd_info)-1;
$end_date = $grd_info[$last_date]->day_no_raw;
$request_info = $this->Group_model->get_plan_request($gri_sn);
$this->tldOrderBuilder->setUserId($userId)
->setKey($userKey)
->setOrderType(1)
@ -119,11 +122,13 @@ class Tulanduo extends CI_Controller
->setAdultNum(intval($arrange_info[0]->ACI_PersonNum))
->setChildNum(intval(bcadd($arrange_info[0]->ACI_ChildNum, $arrange_info[0]->ACI_BabyNum)))
->setDestination($arrange_info[0]->tocity)
->setTravelDate(strstr($arrange_info[0]->ACI_OrderDate, " ", true))
->setTravelDate($first_date)
->setLeavedDate($end_date)
// ->setOrderRemark($order_remark)
// ->setOrderRemark($order_remark) // 订单备注
->setRoomStandard($request_info->GCI_HotelRequest) // 住房标准
->setRouteStandard($request_info->GCI_Request) // 行程服务标准
;
$guestlist = $this->Group_model->get_customer_list($gri_sn); // todo orders_model
$guestlist = $this->orders_model->get_customer_list($gri_sn);
foreach ($guestlist as $key => $vg) {
$this->tldOrderBuilder->setCustomersName($key, $vg->MemberName )
->setCustomersPeopleType($key, (calc_age_type($vg->BirthDay)==1 ? "成人" : "儿童"))
@ -131,7 +136,55 @@ class Tulanduo extends CI_Controller
->setCustomersDocumentNo($key, $vg->PassportNo)
->setCustomersOtherInfo($key, $vg->Country);
}
$travel_fee = 0;
foreach ($arrange_info as $kaci => $vaci) {
$travel_fee = bcadd($travel_fee, $vaci->ACI_Amount);
}
$this->tldOrderBuilder->setTravelFeesType(0, "Per Group")
->setTravelFeesMoney(0, $travel_fee)
->setTravelFeesNum(0, 1)
->setTravelFeesUnit(0, 1)
->setTravelFeesSumMoney(0, $travel_fee)
->setTravelFeesRemark(0, "");
// 补全空的日期,行车为空
$date1 = new DateTime($first_date);
$date_end = new DateTime($end_date);
$date_diff = $date_end->diff($date1);
$d = ($date_diff->format("%d"));
$all_date = array();
for ($j=0; $j < ($d+1); $j++) {
$all_date[] = date('Y-m-d', strtotime("+$j day", strtotime($first_date)));
}
$real_date = array_map(function ($ele){return $ele->day_no_raw;}, $grd_info);
foreach ($all_date as $kd => $vd) {
if ( ! in_array($vd, $real_date)) {
$this->tldOrderBuilder->setScheduleDetailsTitle($kd, "无")
->setScheduleDetailsContent($kd, "无")
->setScheduleDetailsAccommodation($kd, "")
// ->setScheduleDetailsTraffic($kd, ($vso->PAG_Vehicle>60001 ? 1 : 0))
->setScheduleDetailsBreakFirst($kd, 0 )
->setScheduleDetailsDinner($kd, 0)
->setScheduleDetailsLunch($kd, 0)
;
continue;
}
foreach ($grd_info as $kgrd => $vgrd) {
if ($vd==$vgrd->day_no_raw) {
$this->tldOrderBuilder->setScheduleDetailsTitle($kd, $vgrd->GRD_OrderDate)
->setScheduleDetailsContent($kd, $vgrd->GRD_Landscape)
->setScheduleDetailsAccommodation($kd, $vgrd->GRD_Hotel)
->setScheduleDetailsTraffic($kd, ($vgrd->GRD_Traffic))
->setScheduleDetailsBreakFirst($kd, 0 )
->setScheduleDetailsDinner($kd, (trim($vgrd->GRD_Meal_S)==="" ? 0 : 1 ))
->setScheduleDetailsLunch($kd, (trim($vgrd->GRD_Meal_L)==="" ? 0 : 1 ))
;
}
}
}
return $this->tldOrderBuilder->getBizContent();
// $resp = $this->excute_curl($this->neworder_url, $this->tldOrderBuilder);
// $response = json_decode($resp);
// return $resp;
}
/*!

@ -177,9 +177,12 @@ function calc_age($birthday)
function calc_age_type($birthday)
{
$age = calc_age($birthday);
if ($age > 17) {
if (trim(strval($birthday))==="") {
return 1;
}
return 2;
$age = calc_age($birthday);
if ($age < 18) {
return 2;
}
return 1;
}

@ -50,13 +50,64 @@ class Group_model extends CI_Model {
public function get_vendor_plan_info($gri_sn, $vendor_id)
{
$sql = " SP_VendorPlan_GetPlanInfo $gri_sn, $vendor_id, 0 ";
return $this->HT->query($sql)->result();
// SET NOCOUNT ON 才能这样调用, 否则需要遍历结果集
// $sql = " Tourmanager.dbo.SP_VendorPlan_GetPlanInfo ?, ?, 0 ";
// $grd_info = $this->HT->query($sql, array($gri_sn, $vendor_id))->result();
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 Tourmanager.dbo.SP_VendorPlan_GetPlanInfo $gri_sn, $vendor_id, 0 ");
//存储过程中每一个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);
$grd_info = $result_object;
$all_day_no = array_map(function($ele){return $ele->GRD_DayNo;}, $grd_info);
$day_no_str = implode(",", $all_day_no);
$all_aci = $this->get_arrange_info($gri_sn, 0, $day_no_str);
foreach ($grd_info as $kgrd => &$vgrd) {
foreach ($all_aci as $kaci => $vaci) {
if ($vgrd->GRD_DayNo == $vaci->ACI_DayNo) {
$vgrd->day_no_raw = strstr($vaci->ACI_OrderDate, " ", true);
break;
}
}
}
return $grd_info;
}
public function get_plan_request($gri_sn)
{
$sql = "SELECT * from GroupChangeInfo
where GCI_GRI_SN=?
order by LastEditTime desc
,case when GCI_Order IS null then 999 else GCI_Order end desc";
return $this->HT->query($sql, array($gri_sn))->row();
}
public function get_arrange_info($gri_sn, $vendor_id)
public function get_arrange_info($gri_sn, $vendor_id=0, $day_no="")
{
$param_arr = array($gri_sn, $vendor_id);
$param_arr = array($gri_sn);
$vendor_sql = "";
if ($vendor_id !== 0) {
$vendor_sql = " AND aci.ACI_VEI_SN=? ";
$param_arr[] = $vendor_id;
}
$day_no_sql = ($day_no !== "") ? " AND aci.ACI_DayNo IN ($day_no) " : "";
$sql = "SELECT
(select CII2_Name from CItyInfo2
where CII2_CII_SN=ACI_FromCity and CII2_LGC=2) as fromcity,
@ -66,42 +117,12 @@ class Group_model extends CI_Model {
from ArrangeConfirmInfo aci
where 1=1
and aci.ACI_GRI_SN=?
and aci.ACI_VEI_SN=?
$vendor_sql
$day_no_sql
order by ACI_DayNo,ACI_SNInOneDay ";
return $this->HT->query($sql, $param_arr)->result();
}
public function get_customer_list($gri_sn)
{
$sql = "SELECT (
SELECT (isnull(MEI_LastName,'') +' / '+ isnull(MEI_FirstName,'')) CustomerName
from MemberInfo
where MEI_SN=CUL_CUI_SN
) as MemberName,
(select MEI_BirthDay from MemberInfo where MEI_SN=CUL_CUI_SN) as BirthDay,
ISNULL((select SYC2_CodeDiscribe
from V_System_Code
where LGC_LGC=2
and SYC_SN=(
select top 1 MEI_Gender from MemberInfo
where MEI_SN=CUL_CUI_SN)),''
) Gender,
(select COI2_Country from V_Country_Info
where LGC_LGC = 2
and COI_SN in (select MEI_Country from MemberInfo where MEI_SN=CUL_CUI_SN)
) as Country,
(select MEI_PassportNo from MemberInfo where MEI_SN=CUL_CUI_SN) PassportNo,
(select MEI_PassportValidDate from MemberInfo where MEI_SN=CUL_CUI_SN) PassportValidDate
-- ,(select dbo.GetSysCodeName(MEI_Occupation,2) from MemberInfo where MEI_SN=CUL_CUI_SN) as Occupation
from CustomerList
where isnull(CUL_IsAgent,0)=0
and isnull(CUL_IsEmergency,0)=0
and isnull(CUL_IsTJR,0)=0
and CUL_COLI_SN in (select COLI_SN from ConfirmLineInfo where COLI_GRI_SN=?)
order by CUL_Order";
return $this->HT->query($sql, array($gri_sn))->result();
}
public function get_sync_info($vas, $tour_code="")
{
$sql = "SELECT *

@ -0,0 +1,45 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Orders_model extends CI_Model {
function __construct() {
parent::__construct();
$this->HT = $this->load->database('HT', TRUE);
}
public function get_customer_list($gri_sn)
{
$sql = "SELECT (
SELECT (isnull(MEI_LastName,'') +' / '+ isnull(MEI_FirstName,'')) CustomerName
from MemberInfo
where MEI_SN=CUL_CUI_SN
) as MemberName,
(select MEI_BirthDay from MemberInfo where MEI_SN=CUL_CUI_SN) as BirthDay,
ISNULL((select SYC2_CodeDiscribe
from V_System_Code
where LGC_LGC=2
and SYC_SN=(
select top 1 MEI_Gender from MemberInfo
where MEI_SN=CUL_CUI_SN)),''
) Gender,
(select COI2_Country from V_Country_Info
where LGC_LGC = 2
and COI_SN in (select MEI_Country from MemberInfo where MEI_SN=CUL_CUI_SN)
) as Country,
(select MEI_PassportNo from MemberInfo where MEI_SN=CUL_CUI_SN) PassportNo,
(select MEI_PassportValidDate from MemberInfo where MEI_SN=CUL_CUI_SN) PassportValidDate
-- ,(select dbo.GetSysCodeName(MEI_Occupation,2) from MemberInfo where MEI_SN=CUL_CUI_SN) as Occupation
from CustomerList
where isnull(CUL_IsAgent,0)=0
and isnull(CUL_IsEmergency,0)=0
and isnull(CUL_IsTJR,0)=0
and CUL_COLI_SN in (select COLI_SN from ConfirmLineInfo where COLI_GRI_SN=?)
order by CUL_Order";
return $this->HT->query($sql, array($gri_sn))->result();
}
}
/* End of file orders_model.php */
/* Location: ./third_party/vendorPlanSync/models/orders_model.php */
Loading…
Cancel
Save