diff --git a/webht/third_party/vendorPlanSync/libraries/Tulanduo.php b/webht/third_party/vendorPlanSync/libraries/Tulanduo.php index 04ce6d93..52bc8a4c 100644 --- a/webht/third_party/vendorPlanSync/libraries/Tulanduo.php +++ b/webht/third_party/vendorPlanSync/libraries/Tulanduo.php @@ -27,7 +27,7 @@ class Tulanduo ) ); /*! - * test + * test: */ // private $send_host = array( // "30" => array( @@ -45,10 +45,11 @@ class Tulanduo // 29188 95c3b0d958a79a1216e651df182b3cb4 // 30548 9db75a2dc17156eb122364295804b7a2 - // test + // test: // public $list_url = "http://ltdj.ltsoftware.net:19919/action/api/searchRouteOrder/"; // public $detail_url = "http://ltdj.ltsoftware.net:19919/action/api/detailRouteOrder/"; // public $neworder_url = "http://ltdj.ltsoftware.net:19919/action/api/addOrUpdateRouteOrder/"; + // public $neworder_url = "http://ltdj.ltsoftware.net:18888/action/api/addOrUpdateRouteOrder/"; // Live public $list_url = "http://djb3c.ltsoftware.net:9921/action/api/searchRouteOrder/"; public $detail_url = "http://djb3c.ltsoftware.net:9921/action/api/detailRouteOrder/"; @@ -86,13 +87,11 @@ class Tulanduo } // 商务 if (strval($order->GRI_OrderType) === "227002") { - return false; // for Trippest deploy - return $this->push_biz($order, strval($order->GRI_OrderType)); + return $this->push_biz($order); } // 传统订单 if (strval($order->GRI_OrderType) === "227001") { - return false; // for Trippest deploy - return $this->push_tour($order, strval($order->GRI_OrderType)); + return $this->push_tour($order); } return "[Tulanduo>order_push] No function match. "; @@ -101,9 +100,8 @@ class Tulanduo /*! * 发送线路订单计划 */ - public function push_tour($vas=null, $gri_ordertype='227001') + public function push_tour($vas=null) { - return false; // for Trippest deploy $gri_sn = $vas->GRI_SN; $vas_sn = $vas->VAS_SN; $vei_sn = $vas->VAS_VEI_SN; @@ -146,7 +144,7 @@ class Tulanduo * @Date: 2019-05-30 16:11:34 * @Desc: 执行发送订单计划信息. 参数已拆分归类好的行程 */ - public function tour_apart_order_exec($group_type, $vas, $request_info, $guestlist, $grd, $total_order_index) + public function tour_apart_order_exec($group_type, $vas, $request_info, $guestlist=null, $grd, $total_order_index) { if (empty($grd)) { return $total_order_index; @@ -159,8 +157,8 @@ class Tulanduo $all_grd = array($grd); $routeName = "中华游" . $grd['details'][0]->tocity . "常规线路"; $routeType = $routeName; - $agcOrderNo = $vas->GRI_Name . "-" . $grd['details'][0]->citycode . "-" . $total_order_index; - $agcOrderNo .= "(" . $vas->operator . ")"; + $agcOrderNo = $vas->GRI_Name; + // $agcOrderNo .= "(" . $vas->operator . ")"; $order_type = 1; break; case 'pvt': @@ -169,8 +167,8 @@ class Tulanduo $routeName = empty($grd['details'][0]->GRD_Landscape) ? $grd['details'][0]->PAG_Title : $grd['details'][0]->GRD_Landscape; $routeName .= "(" . $grd['details'][0]->PAG_Code . ")"; $routeType = $grd['details'][0]->tocity . "目的地线路"; - $agcOrderNo = $vas->GRI_Name . "-" . $grd['details'][0]->citycode . "-" . $total_order_index; - $agcOrderNo .= "(" . $vas->operator . ")"; + $agcOrderNo = $vas->GRI_Name; + // $agcOrderNo .= "(" . $vas->operator . ")"; $order_type = 1; break; case 'com': @@ -187,8 +185,8 @@ class Tulanduo $routeName = $vo['details'][0]->GRD_Landscape . "(" . $vo['details'][0]->PAG_Code . ")"; } $routeType = $vo['details'][0]->tocity . "目的地线路"; - $agcOrderNo = $vas->GRI_Name . "-" . $vo['details'][0]->citycode . "-" . $total_order_index; - $agcOrderNo .= "(" . $vas->operator . ")"; + $agcOrderNo = $vas->GRI_Name; + // $agcOrderNo .= "(" . $vas->operator . ")"; } $first_date = $vo['details'][0]->day_no_raw; $last_date = COUNT($vo['details'])-1; @@ -209,6 +207,10 @@ class Tulanduo // ->setRoomStandard($request_info->GCI_HotelRequest) // 住房标准 ->setRouteStandard($request_info->GCI_Request) // 行程服务标准 ; + if ($guestlist===null) { + $g_cold_str = array_map(function ($ele){return $ele->GRD_COLD_SN;}, $vo['details']); + $guestlist = $this->ci->BIZ_order->get_guestlist(implode(',',$g_cold_str)); + } foreach ($guestlist as $key => $vg) { $this->ci->tldOrderBuilder->setCustomersName($key, $vg->MemberName ) ->setCustomersPeopleType($key, (calc_age_type($vg->BirthDay)==1 ? "成人" : "儿童")) @@ -250,16 +252,25 @@ class Tulanduo ->setScheduleDetailsDinner($kd, (trim($vgrd->GRD_Meal_S)==="" ? 0 : 1 )) ->setScheduleDetailsLunch($kd, (trim($vgrd->GRD_Meal_L)==="" ? 0 : 1 )) ; + if (isset($vgrd->hotel_checkin)) { + $this->ci->tldOrderBuilder->setRoomStandard(trim($vgrd->hotel_checkin)); + } + if (isset($vgrd->to_traffic)) { + $this->ci->tldOrderBuilder->setToTraffic(trim($vgrd->to_traffic)); + } + if (isset($vgrd->back_traffic)) { + $this->ci->tldOrderBuilder->setBackTraffic(trim($vgrd->back_traffic)); + } + if (isset($vgrd->vendor_memo)) { + $this->ci->tldOrderBuilder->setOrderRemark(trim($vgrd->vendor_memo)); + } } } } - // 查询是否变更 TODO: deprecated at 2019-05 + // 查询是否变更 deprecated at 2019-05 $sync_orderstate = 10; $this->ci->tldOrderBuilder->clearModifyLogInfo(); $resp = $this->excute_curl($this->neworder_url, $this->ci->tldOrderBuilder); - // $resp = '{"status":1,"errMsg":"","responseData":{"orderId":' . rand(1000,9999) . '}}'; // test: -echo $this->ci->tldOrderBuilder->getBizContent(); -log_message('error',$resp); $response = json_decode($resp); if ($response->status == 1) { /** VendorPlanSync */ @@ -295,7 +306,7 @@ log_message('error',$resp); * ) * ) */ - public function tour_apart($all_pag_info) + public function tour_apart($all_pag_info, $need_complete=false) { $apart = array(); $ret = array(); foreach ($all_pag_info as $key => $pag) { @@ -360,21 +371,199 @@ log_message('error',$resp); * @Date: 2019-06-04 11:47:38 * @Desc: 发送商务订单计划 */ - public function push_biz($vas=null, $gri_ordertype='227002') + public function push_biz($vas=null) { + $userId = $this->send_host["1"]["userId"]; + $userKey = $this->send_host["1"]["key"]; $gri_sn = $vas->GRI_SN; $vas_sn = $vas->VAS_SN; $vei_sn = $vas->VAS_VEI_SN; - $grd_info = $this->ci->Group_model->get_vendor_plan_info($gri_sn, $vei_sn); + $grd_info = $this->ci->Group_model->get_vendor_plan_info($gri_sn, $vei_sn, true); if (empty($grd_info)) { $this->ci->Group_model->set_plan_received($vas_sn); return false; } + $route_name = ""; + $order_type = 1; $COLD_SN_str = implode(',', array_map( function($element){return $element->GRD_COLD_SN;}, $grd_info )) ; $all_colds = $this->ci->BIZ_order->get_all_cold($COLD_SN_str); + $coli_sn = $all_colds[0]->COLI_SN; + $train_coldsn_arr = array();$train_order = array(); + $pag_coldsn_arr = array();$pag_order = array(); + foreach ($all_colds as $kd => $vcold) { + if (strval($vcold->COLD_ServiceType)==='2') { + $train_coldsn_arr[] = $vcold->COLD_SN; + continue; + } + if (strval($vcold->COLD_ServiceType)==='D') { + $pag_coldsn_arr[] = $vcold->COLD_SN; + continue; + } + } + if ( ! empty($train_coldsn_arr)) { + $route_name .= $route_name==="" ? "" : "+"; + $route_name .= "火车票预订"; + $order_type = 1; + $train_order = $this->ci->BIZ_order->get_train_flight_order(implode(',', $train_coldsn_arr)); + $agcOrderNo = $vas->GRI_Name; + $last_date = count($train_order)-1; + $end_date = strstr($train_order[$last_date]->COLD_EndDate, " ", true); + $this->ci->tldOrderBuilder->setUserId($userId) + ->setKey($userKey) + ->setOrderType($order_type) + ->setRouteName($route_name) + ->setRouteType("火车票预订") + ->setAgcOrderNo($agcOrderNo) + ->setAdultNum($train_order[0]->adult_num) + ->setChildNum($train_order[0]->child_num) + ->setDestination($train_order[0]->city_name) + ->setTravelDate(strstr($train_order[0]->COLD_StartDate, " ", true)) + ->setLeavedDate($end_date) + ; + $train_guest_list = $this->ci->BIZ_order->get_guestlist(implode(',', $train_coldsn_arr)); + // 客人列表 + foreach ($train_guest_list as $key => $vg) { + $this_otherinfo = ""; + $this->ci->tldOrderBuilder->setCustomersName($key, $vg->BPE_FirstName . " " . $vg->BPE_LastName ) + ->setCustomersPeopleType($key, ($vg->BPE_GuestType==1 ? "成人" : "儿童")) + ->setCustomersDocumentType($key, "护照") // Passport No. + ->setCustomersDocumentNo($key, $vg->BPE_Passport) + ; + $this_otherinfo .= $this->ci->BIZ_order->GetNationalityName($vg->BPE_Nationality); + // todo:电话 + // if (trim($vf['cold'][0]->GUT_TEL) != "" && $key===0) { + // $this_otherinfo .= "; 电话:"; + // $this_otherinfo .= trim($vf["cold"][0]->GUT_POST)!=="" ? "+".trim($vf["cold"][0]->GUT_POST) : "" ; + // $this_otherinfo .= " " . trim($vf["cold"][0]->GUT_TEL); + // $this->ci->tldOrderBuilder->setCustomersOtherInfo($key, $this_otherinfo); + // } + } + $s_index = 0; + foreach ($train_order as $train) { + $this_content = ''; + $this_content .= $train->departure_date . " " . $train->depart_station . "-" . $train->arrival_station . " " . $train->FlightsNo ; + $this_content .= "(" . $train->duration . ")" . " " . $train->cabin_name . " " . $train->adultcost . "元\r\n"; + $this_content .= "请购票成功后通知外联。"; + if (trim($train->TicketAddress) != '') { + $this_content .= "并于客人入住前两天,快递送达客人酒店,谢谢!\r\n"; + $this_content .= $train->TicketAddress; + } + $this->ci->tldOrderBuilder->setScheduleDetailsTitle($s_index, $train->departure_date) + ->setScheduleDetailsContent($s_index, $this_content) + ; + $s_index++; + } + $this->ci->tldOrderBuilder->clearModifyLogInfo(); + $resp = $this->excute_curl($this->neworder_url, $this->ci->tldOrderBuilder); + $response = json_decode($resp); + $sync_orderstate = 10; + $vps_sn = 0; + if ($response->status == 1) { + /** VendorPlanSync */ + $sync_ret = array( + "VPS_VAS_SN" => $vas_sn + ,"VPS_GRI_SN" => $gri_sn + ,"VPS_VEI_SN" => $vei_sn + ,"VPS_startDate" => strstr($train_order[0]->COLD_StartDate, " ", true) + ,"VPS_endDate" => $end_date + ,"VPS_sendHost" => $userId + ,"VPS_externalId" => $response->responseData->orderId + ,"VPS_externalorderType" => $order_type + ,"VPS_externalorderState" => $sync_orderstate + ,"VPS_sendTime" => date('Y-m-d H:i:s') + ); + if ($vps_sn === 0) { + $sync_id = $this->ci->Group_model->insert_VendorPlanSync($sync_ret); + $this->ci->BIZ_order->insert_biz_order_log($coli_sn, "vendorPlanSendout_"); + } + /** VendorArrangeState VAS_IsReceive */ + $this->ci->Group_model->set_plan_received($vas_sn); + } + echo ($this->ci->tldOrderBuilder->getBizContent()); + } + if ( ! empty($pag_coldsn_arr)) { + $this->biz_pag_order_exec($vas,$grd_info); + } return false; } + private function biz_pag_order_exec($vas, $grd) + { + if (empty($grd)) { + return false; + } + // 补全小包价的日程 + $complete_grd = array(); + $special_grd = array(); + $normal_grd = array(); + // object 在foreach中自身会被改变, 先转换成array + $grd = json_decode(json_encode($grd), true); + foreach ($grd as $kp => $vpag) { + $hotels_traffic = $this->ci->BIZ_order->get_package_order($vpag['GRD_COLD_SN']); + $vpag['GRD_Hotel'] = $hotels_traffic[0]->POI_Hotel; + $vpag['to_traffic'] = $hotels_traffic[0]->POI_Hotel; + $vpag['back_traffic'] = $hotels_traffic[0]->POI_Hotel; + // if (trim($hotels_traffic[0]->POI_HotelAddress) != "") { + // $vpag['GRD_Hotel'] .= "\r\n酒店地址:" . $hotels_traffic[0]->POI_HotelAddress; + // } + $vpag['hotel_checkin'] = trim($hotels_traffic[0]->POI_HotelCheckInName)!=="" ? "入住人:".$hotels_traffic[0]->POI_HotelCheckInName : ""; + $vpag['hotel_checkin'] .= trim($hotels_traffic[0]->POI_HotelCheckIn)!=="" ? " 入住日期:".$hotels_traffic[0]->POI_HotelCheckIn : ""; + if ($hotels_traffic[0]->POI_FlightsNo) { + $vpag['GRD_Traffic'] = $hotels_traffic[0]->POI_FlightsNo; + if ($hotels_traffic[0]->POI_FromCity || $hotels_traffic[0]->POI_ToCity) { + $vpag['GRD_Traffic'] .= ", (" . $hotels_traffic[0]->POI_FromCity . "-" . $hotels_traffic[0]->POI_ToCity . ")"; + } + if ($hotels_traffic[0]->POI_Time || $hotels_traffic[0]->POI_EndTime) { + $vpag['GRD_Traffic'] .= ", " . $hotels_traffic[0]->POI_Time . " " . $hotels_traffic[0]->POI_EndTime; + } + if ($hotels_traffic[0]->POI_AirPort) { + $vpag['GRD_Traffic'] .= ", " . $hotels_traffic[0]->POI_AirPort; + } + } + if (isset($this->ci->trippest->special_route[$vpag['PAG_Code']])) { + $this_pag_total_day = $this->ci->trippest->special_route[$vpag['PAG_Code']]['day']; + $this_code = $vpag['PAG_Code']; + for($p=0; $p<$this_pag_total_day; $p++) { + $vpag['GRD_OrderDate'] = date("Y-m-d", strtotime("+$p day", strtotime($vpag['day_no_raw']))); + $vpag['day_no_raw'] = $vpag['GRD_OrderDate']; + $vpag['PAG_Code'] = $this->ci->trippest->special_route[$this_code]['code'][$p]; + $pag_detail = $this->ci->BIZ_order->get_packageDetails("'" . $vpag['PAG_Code'] . "'", implode(",",$this->vendor_ids), false); + $vpag['PAG_Title'] = $pag_detail[0]->PAG2_Name; + $vpag['GRD_Landscape'] = $vpag['PAG_Title']; + $vpag['GRD_Meal_L'] = (in_array($pag_detail[0]->PAG_Meal, array('61002', '61004')) ? "1" : ""); + $vpag['GRD_Meal_S'] = (in_array($pag_detail[0]->PAG_Meal, array('61003', '61004')) ? "1" : ""); + $special_grd[] = $vpag; + } + } else { + $pag_detail = $this->ci->BIZ_order->get_packageDetails("'" . $vpag['PAG_Code'] . "'", implode(",",$this->vendor_ids), false); + $vpag['GRD_Meal_L'] = (in_array($pag_detail[0]->PAG_Meal, array('61002', '61004')) ? "1" : ""); + $vpag['GRD_Meal_S'] = (in_array($pag_detail[0]->PAG_Meal, array('61003', '61004')) ? "1" : ""); + // 接送的子订单行程 + if (isset($vpag['PAG_sub_sn']) && $vpag['PAG_sub_sn'] != 0) { + $sub_pag = $this->ci->BIZ_order->get_sub_pag_info($vpag['PAG_sub_sn']); + if (! empty($sub_pag)) { + $vpag['GRD_Landscape'] = "[" . $sub_pag->PAGS_CN_Title . "] " . $vpag['GRD_Landscape']; + if (strval($sub_pag->PAGS_Direction) === '0') { + $vpag['to_traffic'] = $vpag['GRD_Traffic']; + } else { + $vpag['back_traffic'] = $vpag['GRD_Traffic']; + } + } + } + $normal_grd[] = $vpag; + } + } + $complete_grd = array_merge($special_grd, $normal_grd); + $complete_grd = json_decode(json_encode($complete_grd)); + $grd_apart_info = $this->tour_apart($complete_grd); + // echo json_encode($grd_apart_info);exit; + $request_info = $this->ci->Group_model->get_plan_request($vas->GRI_SN); + $big_order_index = 0; + foreach ($grd_apart_info as $group_key => $grd_part) { + $big_order_index = $this->tour_apart_order_exec($group_key, $vas, $request_info, null, $grd_part, $big_order_index); + } + } + /*! * 发送目的地项目组预订计划到图兰朵地接系统 */ @@ -430,7 +619,7 @@ log_message('error',$resp); if ( ! in_array($cold->COLD_SN, $processed_cold) && $cold->pag_code != '') { $processed_cold[] = $cold->COLD_SN; $all_package = $this->ci->trippest->tour_code($cold->pag_code); - $pag_info = $this->ci->BIZ_order->get_packageDetails(my_implode("'",",",$all_package)); + $pag_info = $this->ci->BIZ_order->get_packageDetails(my_implode("'",",",$all_package), implode(",",$this->vendor_ids)); if ($set_pvt==='1') { $fill_order[0]["cold"][] = $cold; } else { @@ -446,7 +635,7 @@ log_message('error',$resp); $multi_package = $this->ci->trippest->tour_code($vcd->pag_code); $pvt_pagcode = array_merge($pvt_pagcode, $multi_package); } - $fill_order[0]["package_info"] = $this->ci->BIZ_order->get_packageDetails(my_implode("'",",",$pvt_pagcode)); + $fill_order[0]["package_info"] = $this->ci->BIZ_order->get_packageDetails(my_implode("'",",",$pvt_pagcode), implode(",",$this->vendor_ids)); } // $fill_order = array_values($fill_order); $i=0; @@ -584,7 +773,7 @@ log_message('error',$resp); $schedule_obj[$e_day]['date'] = $e_day; $fill_date[] = $e_day; $schedule_obj[$e_day]['code'] = $this->ci->trippest->special_route[$vs->PAG_Code]['code'][$j]; - $pag_detail = $this->ci->BIZ_order->get_packageDetails("'" . $schedule_obj[$e_day]['code'] . "'"); + $pag_detail = $this->ci->BIZ_order->get_packageDetails("'" . $schedule_obj[$e_day]['code'] . "'", implode(",",$this->vendor_ids)); $schedule_obj[$e_day]['title'] = $pag_detail[0]->PAG2_Name; $schedule_obj[$e_day]['lunch'] = (in_array($pag_detail[0]->PAG_Meal, array('61002', '61004')) ? 1 : 0); $schedule_obj[$e_day]['dinner'] = (in_array($pag_detail[0]->PAG_Meal, array('61003', '61004')) ? 1 : 0); @@ -712,7 +901,7 @@ log_message('error',$resp); public function tourguide_update($input, $vps, $eva) { - return false; // for Trippest deploy + return false; $ret['status'] = -1; $ret['err'] = 100; $ret['errMsg'] = "未知错误"; @@ -786,7 +975,7 @@ log_message('error',$resp); */ public function order_change() { - return false; // for Trippest deploy + return false; $this->load->model('Order_update'); $ret['status'] = -1; $ret['errMsg'] = "未知错误"; diff --git a/webht/third_party/vendorPlanSync/models/BIZ_orders_model.php b/webht/third_party/vendorPlanSync/models/BIZ_orders_model.php index ada71877..09d6f87a 100644 --- a/webht/third_party/vendorPlanSync/models/BIZ_orders_model.php +++ b/webht/third_party/vendorPlanSync/models/BIZ_orders_model.php @@ -36,7 +36,22 @@ class BIZ_Orders_model extends CI_Model { public function get_guestlist($COLD_SN_str) { - $sql = "SELECT * + $sql = "SELECT + BPE.BPE_FirstName+' '+BPE.BPE_MiddleName+' '+BPE.BPE_LastName as MemberName, + BPE.BPE_BirthDate BirthDay, + ISNULL((select SYC2_CodeDiscribe + from V_System_Code + where LGC_LGC=2 + and SYC_SN=BPE.BPE_SEX),'' + ) Gender, + (select COI2_Country from V_Country_Info + where LGC_LGC = 2 + and COI_SN = BPE.BPE_Nationality + ) as Country, + '' as phone, + BPE.BPE_Passport PassportNo, + BPE.BPE_PassExpdate PassportValidDate + ,* FROM BIZ_BookPeopleList BPL INNER JOIN BIZ_BookPeople BPE ON BPL_BPE_SN=BPE_SN WHERE BPL_COLD_SN IN ($COLD_SN_str)"; @@ -64,15 +79,17 @@ class BIZ_Orders_model extends CI_Model { return $query->result(); } /** 根据线路代号 */ - public function get_packageDetails($pag_code_str='', $vei_sn_str='') + public function get_packageDetails($pag_code_str='', $vei_sn_str='', $is_trippest=true) { $code_sql = $pag_code_str=='' ? " " : " and pag.PAG_Code IN ($pag_code_str) "; $vei_sql = $vei_sn_str=='' ? " " : " and pag.PAG_DefaultVEI_SN IN ($vei_sn_str) "; + $trippest_sql = $is_trippest===true ? " and pag.PAG_DEI_SN=30 " : " "; $sql = "SELECT *, (select CII2_name from CItyInfo2 where CII2_CII_SN=PAG_CII_SN and CII2_LGC=2) as city_chinese, (select CII_PKCode from CItyInfo where CII_SN=PAG_CII_SN) as city_code 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 BIZ_PackageInfo pag ON pag.PAG_SN=pag2.PAG2_PAG_SN and pag2.PAG2_LGC=2 + $trippest_sql WHERE 1=1 $code_sql $vei_sql @@ -309,10 +326,25 @@ class BIZ_Orders_model extends CI_Model { [dbo].[GetStationCNName_LGC](f.DepartureCity, f.DepartAirport, 2) as depart_station ,[dbo].[GetStationCNName_LGC](f.ArrivalCity, f.ArrivalAirport, 2) as arrival_station ,[dbo].[GetStationCabinName_LGC](f.Cabin,2) as cabin_name - ,* from BIZ_FlightsOrderInfo f + ,CONVERT(date,f.DepartureDate) departure_date + ,SUBSTRING(f.DepartureTime,1,7)+'-'+SUBSTRING(f.ArrivalTime,1,7) as duration + ,f.adultcost + ,f.TicketAddress + ,cold.COLD_PersonNum as adult_num + ,cold.COLD_ChildNum+cold.COLD_BabyNum as child_num + ,cold.COLD_StartDate,cold.COLD_EndDate + ,(select CII2_Name from CItyInfo2 + inner join VEndorInfo on VEI_CII_Name=CII2_CII_SN + where VEI_SN=cold.COLD_PlanVEI_SN and CII2_LGC=2) as city_name + ,(select CII_PKCode from CItyInfo + inner join VEndorInfo on VEI_CII_Name=CII_SN + where VEI_SN=cold.COLD_PlanVEI_SN ) as city_code + ,f.* from BIZ_FlightsOrderInfo f + inner join BIZ_ConfirmLineDetail cold on COLD_SN=FOI_COLD_SN where f.FOI_COLD_SN in ( $COLD_SN_str - )"; + ) + order by COLD_StartDate "; return $this->HT->query($sql)->result(); } @@ -337,4 +369,16 @@ class BIZ_Orders_model extends CI_Model { and COLD_SN in ($COLD_SN_str)"; return $this->HT->query($sql)->result(); } + + /*! + * @Author: LYT + * @Date: 2019-06-11 17:54:12 + * @Desc: 获取小包价子产品的信息 + */ + public function get_sub_pag_info($PAGS_SN) + { + $sql = "SELECT * from BIZ_PackageInfoSub p + where p.PAGS_SN=$PAGS_SN "; + return $this->HT->query($sql)->row(); + } } diff --git a/webht/third_party/vendorPlanSync/models/Group_model.php b/webht/third_party/vendorPlanSync/models/Group_model.php index 83a46092..629eb3ce 100644 --- a/webht/third_party/vendorPlanSync/models/Group_model.php +++ b/webht/third_party/vendorPlanSync/models/Group_model.php @@ -25,12 +25,10 @@ class Group_model extends CI_Model { AND isnull(VAS_IsCancel,0)=0 AND isnull(VAS_Delete,0)=0 AND isnull(vas.DeleteFlag,0)=0 AND VAS_IsSendSucceed=1 AND isnull(VAS_IsReceive,0)=0 -- AND EOI_GetDate between '$start_date' AND '$end_date' - -- Trippest, not confirm, not change -- for Trippest deploy + AND EOI_GetDate > CONVERT(date, GETDATE()) + -- 上线初期避免已录入的重复 + AND VAS_SN >=1688036 AND isnull(VAS_IsConfirm,0)=0 AND isnull(VAS_SendVary,0)=0 - AND GRI_OrderType=227002 - AND EXISTS ( - select 1 from OperatorInfo where OPI_SN=GRI_operator AND OPI_DEI_SN=30 - ) "; $sql .= " order by EOI_GetDate asc,vas.VAS_SendTime asc, vas.VAS_IsConfirm asc"; return $this->HT->query($sql)->result(); @@ -52,7 +50,7 @@ class Group_model extends CI_Model { return $this->HT->query($sql, array($vas))->result(); } - public function get_vendor_plan_info($gri_sn, $vendor_id) + public function get_vendor_plan_info($gri_sn, $vendor_id, $from_cold=false) { // SET NOCOUNT ON 才能这样调用, 否则需要遍历结果集 // $sql = " Tourmanager.dbo.SP_VendorPlan_GetPlanInfo ?, ?, 0 "; @@ -84,24 +82,52 @@ class Group_model extends CI_Model { $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, $vendor_id, $day_no_str); - foreach ($grd_info as $kgrd => &$vgrd) { - $vgrd->pag_code_arr = array(); - $vgrd->PAG_Title = $vgrd->GRD_Landscape; - foreach ($all_aci as $kaci => $vaci) { - if ($vgrd->GRD_DayNo == $vaci->ACI_DayNo) { - $vgrd->day_no_raw = strstr($vaci->ACI_OrderDate, " ", true); - $vgrd->tocity = $vaci->tocity; - $vgrd->citycode = $vaci->citycode; - $vgrd->ACI_PersonNum = intval($vaci->ACI_PersonNum); - $vgrd->ACI_ChildNum = intval($vaci->ACI_ChildNum); - $vgrd->ACI_BabyNum = intval($vaci->ACI_BabyNum); - $vgrd->PAG_DEI_SN = $vaci->PAG_DEI_SN; - if ( strval($vaci->ACI_ServiceType)==='D') { - $vgrd->PAG_Code = mb_strtoupper($vaci->PAG_Code); - $vgrd->PAG_ExtendType = mb_strtoupper($vaci->PAG_ExtendType); - $vgrd->pag_code_arr[] = mb_strtoupper($vaci->PAG_Code); - break; + $cold_sn_str = implode(",", array_map(function ($ele){return $ele->GRD_COLD_SN;}, $grd_info)); + if ($from_cold===false) { + $all_aci = $this->get_arrange_info($gri_sn, $vendor_id, $day_no_str); + foreach ($grd_info as $kgrd => &$vgrd) { + $vgrd->pag_code_arr = array(); + $vgrd->PAG_Title = $vgrd->GRD_Landscape; + foreach ($all_aci as $kaci => $vaci) { + if ($vgrd->GRD_DayNo == $vaci->ACI_DayNo) { + $vgrd->day_no_raw = strstr($vaci->ACI_OrderDate, " ", true); + $vgrd->tocity = $vaci->tocity; + $vgrd->citycode = $vaci->citycode; + $vgrd->ACI_PersonNum = intval($vaci->ACI_PersonNum); + $vgrd->ACI_ChildNum = intval($vaci->ACI_ChildNum); + $vgrd->ACI_BabyNum = intval($vaci->ACI_BabyNum); + $vgrd->PAG_DEI_SN = $vaci->PAG_DEI_SN; + if ( strval($vaci->ACI_ServiceType)==='D') { + $vgrd->PAG_Code = mb_strtoupper($vaci->PAG_Code); + $vgrd->PAG_ExtendType = mb_strtoupper($vaci->PAG_ExtendType); + $vgrd->pag_code_arr[] = mb_strtoupper($vaci->PAG_Code); + break; + } + } + } + } + } else { + $all_cold = $this->get_arrange_info_from_biz_cold($cold_sn_str); + foreach ($grd_info as $kgrd => &$vgrd) { + $vgrd->pag_code_arr = array(); + $vgrd->PAG_Title = $vgrd->GRD_Landscape; + foreach ($all_cold as $kcold => $vcold) { + if ($vgrd->GRD_COLD_SN == $vcold->COLD_SN) { + $vgrd->day_no_raw = strstr($vcold->COLD_StartDate, " ", true); + $vgrd->tocity = $vcold->tocity; + $vgrd->citycode = $vcold->citycode; + $vgrd->ACI_PersonNum = intval($vcold->COLD_PersonNum); + $vgrd->ACI_ChildNum = intval($vcold->COLD_ChildNum); + $vgrd->ACI_BabyNum = intval($vcold->COLD_BabyNum); + $vgrd->PAG_DEI_SN = $vcold->PAG_DEI_SN; + $vgrd->PAG_sub_sn = intval($vcold->COLD_ServiceSN2); + $vgrd->vendor_memo = trim($vcold->COLD_VendorMemo); + if ( strval($vcold->COLD_ServiceType)==='D') { + $vgrd->PAG_Code = mb_strtoupper($vcold->PAG_Code); + $vgrd->PAG_ExtendType = mb_strtoupper($vcold->PAG_ExtendType); + $vgrd->pag_code_arr[] = mb_strtoupper($vcold->PAG_Code); + break; + } } } } @@ -149,6 +175,26 @@ class Group_model extends CI_Model { return $this->HT->query($sql, $param_arr)->result(); } + public function get_arrange_info_from_biz_cold($cold_sn_str) + { + $sql = "SELECT + (select CII2_Name from CItyInfo2 + where CII2_CII_SN=PAG_CII_SN and CII2_LGC=2) as tocity, + (select CII_PKCode from CItyInfo + where CII_SN=PAG_CII_SN ) as citycode, + PAG_Code,PAG_ExtendType,PAG_DEI_SN, + * from BIZ_ConfirmLineDetail cold + left join BIZ_PackageInfo on PAG_SN=COLD_ServiceSN + and COLD_ServiceType='D' and PAG_DefaultVEI_SN=COLD_PlanVEI_SN + and SUBSTRING(CONVERT(varchar(10), PAG_SourceType) ,1,3)='132' + where 1=1 + and COLD_SN in ( + $cold_sn_str + ) + order by COLD_StartDate asc "; + return $this->HT->query($sql)->result(); + } + public function get_sync_info($vas, $tour_code="") { $sql = "SELECT *