diff --git a/application/third_party/trainsystem/config/config.php b/application/third_party/trainsystem/config/config.php index 1d87da49..3b7e5327 100644 --- a/application/third_party/trainsystem/config/config.php +++ b/application/third_party/trainsystem/config/config.php @@ -47,9 +47,10 @@ $config["train_order_status_msg"]=array( "4"=>"出票成功", "5"=>"出票失败", "6"=>"线上退票处理中", - "7"=>"有乘客退票(改签)成功", + "7"=>"(改签)退票成功", "8"=>"乘客退票失败", - "e"=>"数据错误,提交失败" + "e"=>"数据错误,提交失败", + "9"=>"改签成功" ); //座次配对 diff --git a/application/third_party/trainsystem/controllers/api.php b/application/third_party/trainsystem/controllers/api.php index 045d9f3b..94765fb8 100644 --- a/application/third_party/trainsystem/controllers/api.php +++ b/application/third_party/trainsystem/controllers/api.php @@ -342,16 +342,4 @@ class api extends CI_Controller{ //print_r($add_data); } } - - public function update_order(){ - $juhe_orders = $this->train_system_model->getallorders(); - foreach ($juhe_orders as $tickets_info){ - $ordernumber = $tickets_info->JOL_JuheOrder; - $subtime = $tickets_info->JOL_SubTime; - $price = $tickets_info->JOL_Price; - $this->train_system_model->update_juheorder($ordernumber,$subtime,$price); - } - - } - } \ No newline at end of file diff --git a/application/third_party/trainsystem/controllers/callback.php b/application/third_party/trainsystem/controllers/callback.php index 9c82ba8b..498f67c9 100644 --- a/application/third_party/trainsystem/controllers/callback.php +++ b/application/third_party/trainsystem/controllers/callback.php @@ -169,7 +169,7 @@ class callback extends CI_Controller{ public function ctripcallback(){ $back_json = file_get_contents('php://input'); log_message('error','携程回调信息:'.$back_json); - //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-08-05 14:02:42","ServiceName":"web.order.notifyTicket","MessageIdentity":"90D9B095D5E08277BBA115D1F2E99CC8","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1564984816236","ElectronicOrderNumber":"EH75665590","OrderType":"\u7535\u5b50","OrderTotleFee":"2940.00","TicketInfo":{"OrderTicketFromStation":"\u5317\u4eac\u897f","OrderTicketToStation":"\u5357\u5b81","OrderTicketYMD":"20190815","OrderTicketTime":"16:09","OrderTicketCheci":"Z5","OrderTicketPrice":"735.00","OrderAcceptSeat":{"0":"\n "},"OrderTicketSeat":"\u8f6f\u5367","SeatNumber":"06\u8f66\u53a201\u53f7\u4e0b\u94fa,06\u8f66\u53a203\u53f7\u4e0b\u94fa,06\u8f66\u53a202\u53f7\u4e0a\u94fa,06\u8f66\u53a204\u53f7\u4e0a\u94fa","railwayTip":{"0":"\n "},"AuditTicketCount":"4","ChildTicketCount":"0","Passengers":{"Passenger":[{"RealName":"MATILDE SOARES SAMPAIO","IdentityType":"\u62a4\u7167","NumberID":"N755614","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"NUNO BERNARDO NOBRE SOARES","IdentityType":"\u62a4\u7167","NumberID":"P668714","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"NUNO BERNARDO NOBRE SOARES","IdentityType":"\u62a4\u7167","NumberID":"P668715","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"},{"RealName":"ANA SOFIA ROCIO CRESPO NOBRE","IdentityType":"\u62a4\u7167","NumberID":"N751936","TicketType":"\u6210\u4eba\u7968","Birth":{"0":"\n "},"InsuranceCount":"0"}]}},"TicketInfoFinal":{"OrderTicketFromStation":"\u5317\u4eac\u897f","OrderTicketToStation":"\u5357\u5b81","ChildBillid":{"0":"\n "},"ElectronicOrderNumber":"EH75665590","Result":"2","NoTicketReasons":{"0":"\n "},"OrderTicketYMD":"20190815","OrderTicketTime":"16:09","OrderTicketCheci":"Z5","OrderTicketPrice":"735.00","SeatNumber":"06\u8f66\u53a201\u53f7\u4e0b\u94fa","railwayTip":{"0":"\n "},"TicketCheck":{"0":"\n "},"IsUserAcount":"0","ReturnFlag":"0","RescheduleFlag":"0","Tickets":{"Ticket":[{"OrderTicketSeat":"\u8f6f\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"751.50","TicketCount":"2","DetailInfos":{"DetailInfo":[{"PassengerName":"MATILDE SOARES SAMPAIO","IdentityType":"\u62a4\u7167","NumberID":"N755614","SeatNo":"06\u8f66\u53a201\u53f7\u4e0b\u94fa"},{"PassengerName":"NUNO BERNARDO NOBRE SOARES","IdentityType":"\u62a4\u7167","NumberID":"P668714","SeatNo":"06\u8f66\u53a203\u53f7\u4e0b\u94fa"}]}},{"OrderTicketSeat":"\u8f6f\u5367","TicketType":"\u6210\u4eba\u7968","OrderTicketPrice":"718.50","TicketCount":"2","DetailInfos":{"DetailInfo":[{"PassengerName":"NUNO BERNARDO NOBRE SOARES","IdentityType":"\u62a4\u7167","NumberID":"P668715","SeatNo":"06\u8f66\u53a202\u53f7\u4e0a\u94fa"},{"PassengerName":"ANA SOFIA ROCIO CRESPO NOBRE","IdentityType":"\u62a4\u7167","NumberID":"N751936","SeatNo":"06\u8f66\u53a204\u53f7\u4e0a\u94fa"}]}}]}}}}}'; + //$back_json = '{"@attributes":{"xsi":"http:\/\/www.w3.org\/2001\/XMLSchema-instance"},"Authentication":{"TimeStamp":"2019-11-13 10:31:00","ServiceName":"web.order.rescheduleResult","MessageIdentity":"31C01C2EC57C9B1D45C0727918B493AE","PartnerName":"tieyou"},"TrainOrderService":{"OrderInfo":{"OrderNumber":"guilintravel1573543590265","contactName":{},"contactMobile":{},"RescheduleTicketInfo":{"SubOrderId":"0","EOrderNumber":"EG59266341","ResFromStation":"\u6842\u6797","ResToStation":"\u6842\u6797\u5317","ResDepartTime":"2019-12-03 13:50:00","ResArriveTime":"2019-12-03 14:01:00","ResTrainNumber":"D2986","RescheduleTickets":{"RescheduleTicket":{"childBillId":{},"ResCarriageNo":"08","ResSeatNumber":"13F\u53f7","ResSeatName":"\u4e8c\u7b49\u5ea7","ResRealTicketPrice":"5.5","RescheduleLongTrainNum":"EG59266341208013F","eOrderType":"1","passport":"450302199208131039","passportName":"\u9648\u5b87\u8d85","realName":"\u9648\u5b87\u8d85","status":"1","ResFailReasons":{}}}}}}}'; $ctrip_backdata = json_decode($back_json); //print_r($ctrip_backdata); @@ -345,6 +345,19 @@ class callback extends CI_Controller{ $passpager_info->realname = $ctrip_backdata->TrainOrderService->refundTicket->realName; $passpager_info->numberid = $ctrip_backdata->TrainOrderService->refundTicket->passport; $this->train_system_model->update_passpager_info($passpager_info); + }elseif($update_data->ServiceName == 'web.order.returnRescheduleResult'){ + $update_data->ordernumber = $ctrip_backdata->TrainOrderService->OrderNumber; + $update_data->OrderStatus = '7'; + $update_data->ErrorMsg = $ctrip_backdata->TrainOrderService->refundRescheduleTicket->reason; + $update_data->returncallback = $back_json; + + $passpager_info = new stdClass(); + $passpager_info->returncallback = $back_json; + $passpager_info->status = '7'; + $passpager_info->ordernumber = $ctrip_backdata->TrainOrderService->OrderNumber; + $passpager_info->realname = $ctrip_backdata->TrainOrderService->refundRescheduleTicket->realName; + $passpager_info->numberid = $ctrip_backdata->TrainOrderService->refundRescheduleTicket->passport; + $this->train_system_model->update_passpager_info($passpager_info); }else if($update_data->ServiceName == 'web.order.requestRefund'){ $return_order = $ctrip_backdata->TrainOrderService->OrderInfo->OrderNumber; $return_money = $ctrip_backdata->TrainOrderService->TotalRefundAmount; @@ -363,8 +376,26 @@ class callback extends CI_Controller{ //print_r($add_train_payment_data);die(); $this->BIZ_train_model->add_train_payment($add_train_payment_data); return false; + }else if ($update_data->ServiceName == 'web.order.rescheduleResult'){ + $update_data->ordernumber = $ctrip_backdata->TrainOrderService->OrderInfo->OrderNumber; + $reschedule_status = $ctrip_backdata->TrainOrderService->OrderInfo->RescheduleTicketInfo->RescheduleTickets->RescheduleTicket->status; + if($reschedule_status){ + $update_data->OrderStatus = '9'; + $update_data->ErrorMsg = '改签成功'; + + $passpager_info = new stdClass(); + $passpager_info->returncallback = $back_json; + $passpager_info->status = '9'; + $passpager_info->ordernumber = $ctrip_backdata->TrainOrderService->OrderInfo->OrderNumber; + $passpager_info->realname = $ctrip_backdata->TrainOrderService->OrderInfo->RescheduleTicketInfo->RescheduleTickets->RescheduleTicket->passportName; + $passpager_info->numberid = $ctrip_backdata->TrainOrderService->OrderInfo->RescheduleTicketInfo->RescheduleTickets->RescheduleTicket->passport; + $this->train_system_model->update_passpager_info($passpager_info); + }else{ + $update_data->OrderStatus = '5'; + $update_data->ErrorMsg = '改签失败'; + } + $update_data->reschedulecallback = $back_json; } - //更新订单信息(出票系统) $this->train_system_model->update_orders($update_data); } diff --git a/application/third_party/trainsystem/controllers/pages.php b/application/third_party/trainsystem/controllers/pages.php index 2c0494e5..5792dc4d 100644 --- a/application/third_party/trainsystem/controllers/pages.php +++ b/application/third_party/trainsystem/controllers/pages.php @@ -13,6 +13,7 @@ class pages extends CI_Controller{ $this->order_status_msg = $this->config->item('train_order_status_msg'); } + //首页 public function index($coli_id = null){ if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){ redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/'); @@ -123,7 +124,7 @@ class pages extends CI_Controller{ //根据订单号查询订单信息 $data = array(); - $train_infos = $this->train_system_model->get_train_infos($ordernumber); + $train_infos = $this->train_system_model->get_order_info($ordernumber); $passpager_detail = $this->train_system_model->get_passager_details($ordernumber); //构造详情数组 @@ -172,7 +173,7 @@ class pages extends CI_Controller{ //根据订单号查询订单信息 $data = array(); - $train_infos = $this->train_system_model->get_train_infos($ordernumber); + $train_infos = $this->train_system_model->get_order_info($ordernumber); $passpager_detail = $this->train_system_model->get_passager_details($ordernumber); //构造详情数组 @@ -199,6 +200,26 @@ class pages extends CI_Controller{ } + //改签页面 + public function reschedule(){ + if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){ + redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/'); + } + $order = $this->input->get_post('order'); + $data = array(); + $data['order'] = $order; + if(!empty($order)){ + $orderDetail = $this->train_system_model->ctripOrderDetail($order); + $data['detail'] = $orderDetail; + } + //print_r($data); + + $this->load->view('header'); + $this->load->view('reschedule',$data); + $this->load->view('footer'); + } + + //账单导出页面 public function export(){ if(get_cookie('dingname') == '' && get_cookie('dingunionid') == ''){ redirect('/apps/dinglogin/login/?returnurl=/apps/trainsystem/pages/'); diff --git a/application/third_party/trainsystem/controllers/reschedule.php b/application/third_party/trainsystem/controllers/reschedule.php new file mode 100644 index 00000000..57bc376a --- /dev/null +++ b/application/third_party/trainsystem/controllers/reschedule.php @@ -0,0 +1,84 @@ +load->helper('train'); + $this->load->model("train_system_model"); + } + + public function index(){ + echo 'reschrdule'; + } + + //携程改签模块 + public function ctripModel(){ + $orderNumber = $this->input->get_post('orderNumber'); + $orderNumber = 'guilintravel1573543590265'; + if(empty($orderNumber)){ + exit('orderNumber error'); + }else{ + //接收改签的火车参数 + $RescheduleTrainNumber = $this->input->get_post('RescheduleTrainNumber'); + $DepartStationName = $this->input->get_post('DepartStationName'); + $ArriveStationName = $this->input->get_post('ArriveStationName'); + $RescheduleDepartTime = $this->input->get_post('RescheduleDepartTime'); + $RescheduleArriveTime = $this->input->get_post('RescheduleArriveTime'); + $RescheduleTicketPrice = $this->input->get_post('RescheduleTicketPrice'); + $RescheduleSeatName = $this->input->get_post('RescheduleSeatName'); + $RescheduleAcceptSeatName = $this->input->get_post('RescheduleAcceptSeatName'); + $PassagerName = $this->input->get_post('PassagerName'); + $Ticketype = $this->input->get_post('Ticketype'); + $IdentityType = $this->input->get_post('IdentityType'); + $PassagerId = $this->input->get_post('PassagerId'); + $Coach = $this->input->get_post('Coach'); + $Seat = $this->input->get_post('Seat'); + + //开始改签流 + $postData = array(); + $time = date('Y-m-d H:i:s',time()); + $postData['Authentication'] = new stdClass(); + $postData['Authentication']->TimeStamp = $time; + $postData['Authentication']->ServiceName = 'order.partnerreschedule'; + $postData['Authentication']->PartnerName = 'Ctrip.Corp'; + $MessageIdentity = md5($time.'order.partnerreschedule'.ORDERKEY); + $postData['Authentication']->MessageIdentity = $MessageIdentity; + + $postData['TrainOrderService'] = new stdClass(); + $postData['TrainOrderService']->OrderNumber = $orderNumber; + $postData['TrainOrderService']->Operator = 'guilintravel'; + $postData['TrainOrderService']->RescheduleTrainNumber = $RescheduleTrainNumber; + $postData['TrainOrderService']->DepartStationName = $DepartStationName; + $postData['TrainOrderService']->ArriveStationName = $ArriveStationName; + $postData['TrainOrderService']->RescheduleDepartTime = $RescheduleDepartTime; + $postData['TrainOrderService']->RescheduleArriveTime = $RescheduleArriveTime; + $postData['TrainOrderService']->RescheduleTicketPrice = $RescheduleTicketPrice; + $postData['TrainOrderService']->RescheduleSeatName = $RescheduleSeatName['0']; + //$postData['TrainOrderService']->RescheduleAcceptSeatName = '无座'; + + $postData['TrainOrderService']->RescheduleTicketPassengerInfos = array(); + + foreach ($PassagerName as $key=>$name){ + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key] = new stdClass(); + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->eOrderNumber = ''; + if($Ticketype[$key] == '儿童票'){ + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->eOrderType = 2; + }else{ + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->eOrderType = 1; + } + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->realName = $name; + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->CarriageNo = $Coach[$key]; + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->seatNumber = $Seat[$key]; + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->passportName = $name; + $postData['TrainOrderService']->RescheduleTicketPassengerInfos[$key]->passport = $PassagerId[$key]; + } + + //print_r(json_encode($postData));die(); + $url = 'http://m.ctrip.com/restapi/soa2/11009/json/PartnerReschedule'; + $responseJson = GetPost_http($url,json_encode($postData),'json'); + print_r($responseJson); + } + } +} \ No newline at end of file diff --git a/application/third_party/trainsystem/controllers/returnorders.php b/application/third_party/trainsystem/controllers/returnorders.php index 86478387..d470d81d 100644 --- a/application/third_party/trainsystem/controllers/returnorders.php +++ b/application/third_party/trainsystem/controllers/returnorders.php @@ -185,5 +185,53 @@ class returnorders extends CI_Controller{ } } + //改签退票 + public function returnreschedule(){ + //接收数据 + $orderNumber = $this->input->get_post('orderNumber'); + $username = $this->input->get_post('username'); + $userid = $this->input->get_post('userid'); + + //判断数据是否完全 + if(empty($orderNumber) || empty($username) || empty($userid)){ + exit('参数错误'); + } + $postData = array(); + $time = date('Y-m-d H:i:s',time()); + $postData['Authentication'] = new stdClass(); + $postData['Authentication']->TimeStamp = $time; + $postData['Authentication']->ServiceName = 'order.partnerreturnreschedule'; + $postData['Authentication']->PartnerName = 'Ctrip.Corp'; + $MessageIdentity = md5($time.'order.partnerreschedule'.ORDERKEY); + $postData['Authentication']->MessageIdentity = $MessageIdentity; + + $postData['TrainOrderService'] = new stdClass(); + $postData['TrainOrderService']->Operator = 'guilintravel'; + $postData['TrainOrderService']->OrderNumber = $orderNumber; + $postData['TrainOrderService']->PartnerName = 'Ctrip.Corp'; + $postData['TrainOrderService']->ReturnReschedulePassengerInfos = array(); + + //获取乘客信息 + $passagerinfo = $this->train_system_model->get_passenger_info($orderNumber,$username,$userid); + $postData['TrainOrderService']->ReturnReschedulePassengerInfos = array(); + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0'] = new stdClass(); + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->eOrderNumber = $passagerinfo->ts_elecnumber; + if($passagerinfo->ts_elecnumber == '儿童票'){ + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->eOrderType = 2; + }else{ + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->eOrderType = 1; + } + $rescheduledetail = json_decode($passagerinfo->ts_reschedulecallback); + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->realName = $passagerinfo->tst_realname; + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->CarriageNo = $rescheduledetail->TrainOrderService->OrderInfo->RescheduleTicketInfo->RescheduleTickets->RescheduleTicket->ResCarriageNo; + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->seatNumber = $rescheduledetail->TrainOrderService->OrderInfo->RescheduleTicketInfo->RescheduleTickets->RescheduleTicket->ResSeatNumber; + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->passportName = $passagerinfo->tst_realname; + $postData['TrainOrderService']->ReturnReschedulePassengerInfos['0']->passport = $passagerinfo->tst_numberid; + + $url = 'http://m.ctrip.com/restapi/soa2/11009/json/PartnerReturnRescheduleService'; + $responseJson = GetPost_http($url,json_encode($postData),'json'); + print_r($responseJson); + } + } \ No newline at end of file diff --git a/application/third_party/trainsystem/models/train_system_model.php b/application/third_party/trainsystem/models/train_system_model.php index 945e66cd..dbf149dd 100644 --- a/application/third_party/trainsystem/models/train_system_model.php +++ b/application/third_party/trainsystem/models/train_system_model.php @@ -9,6 +9,7 @@ class train_system_model extends CI_Model { $this->INFO = $this->load->database('INFO', TRUE); } + //获取订单(用于订单列表) public function get_order($pagesize=2,$page=0,$where="1=1"){ $data=new StdClass(); //获取总条数 @@ -74,18 +75,6 @@ class train_system_model extends CI_Model { return $query->result(); } - //获取火车信息 - public function get_train_infos($ordernumber){ - $sql = "select * from trainsystem where ts_ordernumber = '{$ordernumber}'"; - $query = $this->INFO->query($sql); - return $query->row(); - } - - public function update_passpager_status($status,$passagerid){ - $sql = "update trainsystem_tickets set tst_status = '{$status}' where tst_id = '{$passagerid}'"; - $query = $this->INFO->query($sql); - } - //添加订单 function add_orders($data){ $sql=" @@ -144,6 +133,7 @@ class train_system_model extends CI_Model { return $query->row(); } + //新增乘客 function add_passagers($data){ $sql = "IF EXISTS (select * from trainsystem_tickets where tst_ordernumber = '{$data->ordernumber}' and tst_numberid = '{$data->numberid}' and tst_realname = '{$data->realname}') update @@ -188,6 +178,7 @@ class train_system_model extends CI_Model { $query =$this->INFO->query($sql); } + //更新订单信息 public function update_orders($data){ $where = ''; if(!empty($data->bookcallback)){ @@ -236,6 +227,7 @@ class train_system_model extends CI_Model { $query = $this->INFO->query($sql); } + //获取订单出票状态 public function get_tickets_info($cold_sn){ $sql = "select ts_cold_sn,ts_ordernumber,tst_realname,tst_numberid,tst_status from trainsystem left join trainsystem_tickets on ts_ordernumber = tst_ordernumber where ts_cold_sn = ? and ts_status = '4'"; $query = $this->INFO->query($sql,array($cold_sn)); @@ -244,32 +236,31 @@ class train_system_model extends CI_Model { return $query->result(); } + //获取所有订单 public function getallorders(){ $sql = "select * from Tourmanager.dbo.BIZ_JuheOrderList where JOL_SubTime > '2019-03-01' and (JOL_Status = '4' or JOL_Status = '7')"; $query = $this->HT->query($sql); return $query->result(); } - public function update_juheorder($ordernumber,$subtime,$price){ - $sql = "update trainsystem set ts_subtime = ? , ts_orderamount = ? where ts_ordernumber = ?"; - $query = $this->INFO->query($sql,array($subtime,$price,$ordernumber)); - } - - //根据cold_sn 获取出票情况 + //根据cold_sn 获取出票情况(仅限出票成功) public function get_ticketinfos($cold_sn){ $sql = "select * from trainsystem where ts_cold_sn = ? and ts_status = '4'"; $query = $this->INFO->query($sql,array($cold_sn)); return $query->row(); } + //获取订单信息 根据第三方订单号查询 public function get_order_info($ordernumber){ - $sql = "select * from trainsystem where ts_ordernumber = '$ordernumber'"; - $query = $this->INFO->query($sql); + $sql = "select * from trainsystem where ts_ordernumber = ?"; + $query = $this->INFO->query($sql,array($ordernumber)); return $query->row(); } - public function test(){ - $sql = "delete from trainsystem where ts_id in ('13111','13081')"; - $query = $this->INFO->query($sql); + //获取携程出票成功的订单详情 + public function ctripOrderDetail($ordernumber){ + $sql = "select * from trainsystem left join trainsystem_tickets on ts_ordernumber = tst_ordernumber where ts_ordernumber = ? and ts_channel = 'ctrip' and ts_status = 4"; + $query = $this->INFO->query($sql,array($ordernumber)); + return $query->result(); } } \ No newline at end of file diff --git a/application/third_party/trainsystem/views/homepage.php b/application/third_party/trainsystem/views/homepage.php index 88321104..49127619 100644 --- a/application/third_party/trainsystem/views/homepage.php +++ b/application/third_party/trainsystem/views/homepage.php @@ -77,7 +77,7 @@ function selseat(seat){
-

翰特订单号 订单列表>>导出交易记录>> 版本:V2.0聚合余额(RMB):

+

翰特订单号 订单列表>>携程改签>>导出交易记录>> 版本:V2.0聚合余额(RMB):

diff --git a/application/third_party/trainsystem/views/refund.php b/application/third_party/trainsystem/views/refund.php index 2737c70b..3792b14b 100644 --- a/application/third_party/trainsystem/views/refund.php +++ b/application/third_party/trainsystem/views/refund.php @@ -9,10 +9,14 @@ echo '

'.$from_station_name.''.$to_station_name.'

'; echo '

'; echo '

'.$items->tst_realname.'('.$items->tst_ticketype.')    '.$items->tst_seatstype.'  '.$items->tst_seatdetail.'    票价:¥'.$items->tst_ticketprice.'

'; - if((int)$items->tst_status != 7){ + if((int)$items->tst_status == 4){ echo '

'; echo '退票'; echo '

'; + }elseif((int)$items->tst_status == 9){ + echo '

'; + echo '改签退票'; + echo '

'; }else{ $info = json_decode($items->tst_returncallback); echo '

'; @@ -25,6 +29,7 @@ \ No newline at end of file diff --git a/application/third_party/trainsystem/views/reschedule.php b/application/third_party/trainsystem/views/reschedule.php new file mode 100644 index 00000000..3aa67dba --- /dev/null +++ b/application/third_party/trainsystem/views/reschedule.php @@ -0,0 +1,271 @@ +
+
+
+

携程火车改签申请

+
+ +
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+
+

火车数据详情

+
+ +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+
+
+ +
+
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ + tst_seatdetail,'车厢'); + $coach = mb_substr($passpagerItems->tst_seatdetail,0,$coachLength); + $seat = mb_substr($passpagerItems->tst_seatdetail,$coachLength+2,mb_strlen($passpagerItems->tst_seatdetail)); + ?> +
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+ +
+ +
+
+
+ +
+ +
+ + diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index b43358e8..4252e642 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -243,6 +243,16 @@ class TulanduoApi extends CI_Controller echo "cancel"; return; } + if (mb_strstr($detail_jsonResp->orderDetail->agcOrderNo, "重复") !== false) { + /** groupcombineinfo */ + $this->Order_update->gci_where_update = " GCI_VendorOrderId='" . $detail_jsonResp->orderDetail->orderId . "'"; // 不明确指定供应商id,出现过不对应的情况 + $gci_update_column = array( + "GCI_createTime" => date('Y-m-d H:i:s') + ,"GCI_combineNo" => null + ); + $gci_info = $this->Order_update->biz_groupcombineinfo_update($gci_update_column); + return; + } if (isset($detail_jsonResp->orderDetail->agcOrderNo) && $detail_jsonResp->orderDetail->agcOrderNo!="") { } else { $detail_jsonResp->orderDetail->agcOrderNo = $detail_jsonResp->orderDetail->groupOrderNo; @@ -297,6 +307,11 @@ class TulanduoApi extends CI_Controller if (strlen($real_groupCode) < 9) { $real_groupCode = $real_groupCode_info['all']; } + if (strlen($real_groupCode_info['order']) >= 9 + && $detail_jsonResp->orderDetail->agcName=='D目的地桂林组' + ) { + $real_groupCode = $real_groupCode_info['order']; + } $getInfo_byGroupCodeArr = $this->Orders_model->get_order_by_groupcode($real_groupCode, $order->GCI_VendorOrderId, $vei_SN); } $duplicate = false; diff --git a/webht/third_party/trippestOrderSync/controllers/order_finance.php b/webht/third_party/trippestOrderSync/controllers/order_finance.php index 3fc68543..940fe949 100644 --- a/webht/third_party/trippestOrderSync/controllers/order_finance.php +++ b/webht/third_party/trippestOrderSync/controllers/order_finance.php @@ -495,7 +495,7 @@ class Order_finance extends CI_Controller { $ret->person_cost = bcdiv($ret->cost_sum, $ret->person_num); $ret->comment = "PVT[" . $combineNo . "],共" . $ret->person_num . "人"; $pag_sns = array_values(array_unique(array_map(function($ele) {return $ele->COLD_ServiceSN;}, $all_orders))); - $pags_info = $this->OrderFinance_model->get_pag_info(implode(',', $pag_sns)); + $pags_info = $this->OrderFinance_model->get_pag_info(implode(',', $pag_sns), $all_orders[0]->COLD_PlanVEI_SN); $ret->PAG_Code = implode(",", array_values(array_unique(array_map(function($ele) {return mb_strtoupper($ele->PAG_Code);}, $pags_info)))); $ret->vendor_name = implode(",", array_values(array_unique(array_map(function($ele) {return $ele->VEI2_CompanyBN;}, $pags_info)))) ; $ret->pag_name = implode("; ", array_map(function($ele) {return $ele->PAG_Title;}, $pags_info)) ; diff --git a/webht/third_party/trippestOrderSync/controllers/vendor_money.php b/webht/third_party/trippestOrderSync/controllers/vendor_money.php index 2650aab2..6cb3eda4 100644 --- a/webht/third_party/trippestOrderSync/controllers/vendor_money.php +++ b/webht/third_party/trippestOrderSync/controllers/vendor_money.php @@ -36,24 +36,15 @@ class Vendor_money extends CI_Controller { } $vendors = $this->input->post("vendors"); $vendor_sourcetype = $this->trippest->vendor_sourcetype(); - // 不同地接社但是拼团号相同 - $actual_vendor_duplicate_combineno = $this->money_model->get_duplicate_vei_combineno($start_date, $end_date, implode(",", $vendors)); - $duplicate_coli_sn = array_filter(array_column($actual_vendor_duplicate_combineno, 'COLI_SN')); + $final_table = $this->money_model->checked_group_list(0, 0, $start_date, $end_date, implode(',', $vendors)); if ($download_vendor !== null) { $vendors = array($download_vendor); $sourcetype = $vendor_sourcetype[strval($download_vendor)]["sourcetype"]; $vendor_name = $vendor_sourcetype[strval($download_vendor)]["vendor_name"]; - $vendor_data = $this->money_model->group_detail_list($download_vendor, $sourcetype, $start_date, $end_date, implode(',', $vendors), implode(',', $duplicate_coli_sn)); - foreach ($actual_vendor_duplicate_combineno as $kad => $vad) { - if ($vad['vendor1'] == $download_vendor) { - $tmp['haina_income'] = $vad['trippest_sum']; - $tmp['vendor_income'] = $vad['vendor_sum']; - $tmp['GRI_No'] = $vad['gri_no']; - $tmp['group_vendor_cost'] = $vad['report_cost']; - $vendor_data[] = $tmp; - $tmp = array(); - } - } + $vendor_data = array_filter($final_table, function ($row) use ($download_vendor) + { + return $row['vendor']==$download_vendor; + }); $file_name = str_replace(" ", "_", $date_range) . "_" . $vendor_name; return $this->download_output($vendor_data, $file_name); } @@ -78,17 +69,6 @@ class Vendor_money extends CI_Controller { ,"sum_payout" => 0 ,"sum_other" => 0 ), - // "vendor" => array( - // "sum_trippest_cost" => 0 - // ,"sum_vendor_cost" => 0 - // ,"sum_trippest_sum" => 0 - // ,"sum_vendor_sum" => 0 - // ,"sum_profit" => 0 - // ,"sum_trippest_profit" => 0 - // ,"sum_vendor_profit" => 0 - // ,"sum_payout" => 0 - // ,"sum_other" => 0 - // ), "sync" => array( "sum_trippest_cost" => 0 ,"sum_vendor_cost" => 0 @@ -112,28 +92,21 @@ class Vendor_money extends CI_Controller { $all_price_cost = $this->money_model->get_sync_price_cost($start_date, $end_date, implode(',', $vendors)); $unique_sync_groupno = array(); $dumplicate_groupno = array(); - /** 团款 */ + /** 汇总计算 */ foreach ($vendors as $key => $vendor) { - $sourcetype = $vendor_sourcetype[strval($vendor)]["sourcetype"]; - $opi_summoney = $this->money_model->checked_group_list($vendor, $sourcetype, $start_date, $end_date, implode(',', $vendors), implode(",", $duplicate_coli_sn)); $ret = array( + "trippest_cost" => 0, + "vendor_cost" => 0, "trippest" => array( "trippest_sum" => 0, "vendor_sum" => 0, "other_sum_cost" => 0, "other_sum" => 0, - "other_vendor_sum" => 0 + "other_vendor_sum" => 0, + "trippest_cost" => 0, + "vendor_cost" => 0 ), - // "vendor" => - // array( - // "trippest_sum" => 0, - // "vendor_sum" => 0, - // "transfer_sum" => 0, - // "other_sum_cost" => 0, - // "other_sum" => 0, - // "other_vendor_sum" => 0 - // ), "sync" => array( "price_sum" => 0, @@ -146,24 +119,19 @@ class Vendor_money extends CI_Controller { "other_vendor_sum" => 0 ) ); - foreach ($actual_vendor_duplicate_combineno as $kad => $vad) { - if ($vad['vendor1'] == $vendor) { - $opi_summoney[] = $vad; - } - } - // 按照海纳的算法 - foreach ($opi_summoney as $key => $opi_money) { - if (floatval($opi_money['vendor_sum']) > 0) { - $ret["trippest"]['vendor_sum'] = bcadd(floatval($ret["trippest"]['vendor_sum']), floatval($opi_money['vendor_sum'])) ; - } - if (floatval($opi_money['trippest_sum']) > 0) { - $ret["trippest"]['trippest_sum'] = bcadd(floatval($ret["trippest"]['trippest_sum']), floatval($opi_money['trippest_sum'])) ; + foreach ($final_table as $line => $row) { + if ($row['vendor'] == $vendor) { + $ret['trippest']['trippest_sum'] = bcadd($ret['trippest']['trippest_sum'], $row['haina_receipt']); + $ret['trippest']['vendor_sum'] = bcadd($ret['trippest']['vendor_sum'], $row['vendor_receipt']); + $ret['trippest']['vendor_cost'] = bcadd($ret['trippest']['vendor_cost'], $row['group_vendor_cost']); + $ret['trippest']['other_sum'] = bcadd($ret['trippest']['other_sum'], $row['other_price_RMB']); + $ret['trippest']['other_sum_cost'] = bcadd($ret['trippest']['other_sum_cost'], $row['other_cost_RMB']); + $ret['trippest']['other_vendor_sum'] = bcadd($ret['trippest']['other_vendor_sum'], $row['other_vendorprice_RMB']); + + $ret['vendor_cost'] = bcadd($ret['vendor_cost'], $row['group_vendor_cost']); } - $ret['trippest']['other_sum'] = bcadd($ret['trippest']['other_sum'], $opi_money['other_price_sum']); - $ret['trippest']['other_sum_cost'] = bcadd($ret['trippest']['other_sum_cost'], $opi_money['other_cost_sum']); - $ret["trippest"]['trippest_sum'] = bcsub($ret["trippest"]['trippest_sum'], $opi_money['other_price_sum']); - $ret['trippest']['other_vendor_sum'] = bcadd($ret['trippest']['other_vendor_sum'], $opi_money['other_vendorprice_RMB_sum']); } + /** 计算同步的数据 */ foreach ($all_price_cost as $ks => $sync) { if ($sync['vendor_code'] != $vendor ) { continue; @@ -175,28 +143,7 @@ class Vendor_money extends CI_Controller { $unique_sync_groupno[] = $sync['GCI_combineNo']; $ret['sync']['price_sum'] = bcadd($ret['sync']['price_sum'], $sync['receive_price']); $ret['sync']['cost_sum'] = bcadd($ret['sync']['cost_sum'], $sync['cost']); - // $ret['sync']['vendor_sum'] = bcadd(floatval($ret["sync"]['vendor_sum']), floatval($sync['agency_receive_price'])) ; - // $ret["sync"]['trippest_sum'] = bcadd(floatval($ret["sync"]['trippest_sum']), bcsub(floatval($sync['receive_price']),floatval($sync['agency_receive_price']))) ; } - // 按照图兰朵算法: Trippest自营订单的代收算在海纳收款 - // foreach ($opi_summoney as $kv => $opi_money_v) { - // if (strval($opi_money_v['COLI_OPI_ID']) === '435') { - // $ret["vendor"]['vendor_sum'] = bcadd(floatval($ret["vendor"]['vendor_sum']), floatval($opi_money_v['vendor_sum'])) ; - // } else { - // $ret["vendor"]['trippest_sum'] = bcadd(floatval($ret["vendor"]['trippest_sum']), floatval($opi_money_v['trippest_sum'])) ; - // $ret["vendor"]['trippest_sum'] = bcadd(floatval($ret["vendor"]['trippest_sum']), floatval($opi_money_v['vendor_sum'])) ; - // } - // $ret['vendor']['other_sum'] = bcadd($ret['vendor']['other_sum'], $opi_money_v['other_price_sum']); - // $ret['vendor']['other_sum_cost'] = bcadd($ret['vendor']['other_sum_cost'], $opi_money_v['other_cost_sum']); - // $ret["vendor"]['trippest_sum'] = bcsub($ret["vendor"]['trippest_sum'], $opi_money_v['other_price_sum']); - // $ret['vendor']['other_vendor_sum'] = bcadd($ret['vendor']['other_vendor_sum'], $opi_money['other_vendorprice_RMB_sum']); - // } - // $ret["vendor"]["transfer_sum"] = bcsub($ret["vendor"]['vendor_sum'], $ret["trippest"]['vendor_sum']); - // if ($ret["vendor"]["transfer_sum"] != 0) { - // $result['transfer_sum'] = bcadd($result['transfer_sum'], $ret["vendor"]["transfer_sum"]); - // $result['trippest_order_vendor_money'] = array_merge($result['trippest_order_vendor_money'], $this->money_model->trippest_order_with_vendormoney($vendor, $sourcetype, $start_date, $end_date)); - // } - $result["money"][strval($vendor)] = $ret; $result["money"][strval($vendor)]["vendor_code"] = $vendor; $result["money"][strval($vendor)]["vendor_name"] = $vendor_sourcetype[strval($vendor)]["vendor_name"]; @@ -209,69 +156,37 @@ class Vendor_money extends CI_Controller { $result['col_sum']['sync']['sum_price_sum'] = bcadd($result['col_sum']['sync']['sum_price_sum'], $ret["sync"]['price_sum']); $result['col_sum']['sync']['sum_cost_sum'] = bcadd($result['col_sum']['sync']['sum_cost_sum'], $ret["sync"]['cost_sum']); - // $result['col_sum']['sync']['sum_trippest_sum'] = bcadd($result['col_sum']['sync']['sum_trippest_sum'], $ret["sync"]['trippest_sum']); - // $result['col_sum']['sync']['sum_vendor_sum'] = bcadd($result['col_sum']['sync']['sum_vendor_sum'],$ret['sync']['vendor_sum']); - - // $result['col_sum']['vendor']['sum_trippest_sum'] = bcadd( - // bcadd($result['col_sum']['vendor']['sum_trippest_sum'], $ret["vendor"]['trippest_sum']) - // ,$ret['vendor']['other_sum']); - // $result['col_sum']['vendor']['sum_vendor_sum'] = bcadd($result['col_sum']['vendor']['sum_vendor_sum'], $ret["vendor"]['vendor_sum']); - // $result['col_sum']['vendor']['sum_other'] = bcadd($result['col_sum']['vendor']['sum_other'], $ret['vendor']['other_sum']); - } - /** 成本 */ - // 排除上述的重复拼团号, 后面再加到第一个地接的数据中 - $vendors_cost = $this->money_model->vendor_cost(implode(',', $vendors), $start_date, $end_date); - foreach ($result['money'] as $km => &$vm) { - $vm['vendor_cost'] = $vm['trippest_cost'] = 0; - foreach ($vendors_cost as $kvc => $vvc) { - if (strval($vm['vendor_code']) === strval($vvc['vendor_code'])) { - $vm['vendor_cost'] = $vvc['vendor_cost']; - } - } - foreach ($actual_vendor_duplicate_combineno as $kdc => $vdc) { - if (strval($vm['vendor_code']) === strval($vdc['vendor1'])) { - $vm['vendor_cost'] += $vdc['pure_cost']; - } - } // 成本总计 - $result['col_sum']['trippest']['sum_trippest_cost'] = $result['col_sum']['vendor']['sum_trippest_cost'] = bcadd($result['col_sum']['trippest']['sum_trippest_cost'], $vm['trippest_cost']); + $result['col_sum']['trippest']['sum_trippest_cost'] = $result['col_sum']['vendor']['sum_trippest_cost'] = bcadd($result['col_sum']['trippest']['sum_trippest_cost'], $ret['trippest_cost']); $result['col_sum']['trippest']['sum_vendor_cost'] = $result['col_sum']['vendor']['sum_vendor_cost'] = bcadd( - bcadd($result['col_sum']['trippest']['sum_vendor_cost'], $vm['vendor_cost']) - ,$vm['trippest']['other_sum_cost']); + bcadd($result['col_sum']['trippest']['sum_vendor_cost'], $ret['vendor_cost']) + ,$ret['trippest']['other_sum_cost']); } + foreach ($result['money'] as $kmi => &$vmi) { /** 利润 */ $vmi['trippest']['total_profit'] = bcsub( bcadd(bcadd($vmi['trippest']['trippest_sum'], $vmi['trippest']['vendor_sum']),$vmi['trippest']['other_sum']), bcadd(bcadd($vmi['trippest_cost'], $vmi['vendor_cost']),$vmi['trippest']['other_sum_cost'])); - // $vmi['vendor']['total_profit'] = bcsub( - // bcadd(bcadd($vmi['vendor']['trippest_sum'], $vmi['vendor']['vendor_sum']),$vmi['vendor']['other_sum']), - // bcadd(bcadd($vmi['trippest_cost'], $vmi['vendor_cost']),$vmi['vendor']['other_sum_cost'])); /** 利润分成 */ $vmi['trippest']['vendor_profit'] = bcmul($vmi['trippest']['total_profit'], $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]); $vmi['trippest']['trippest_profit'] = bcmul($vmi['trippest']['total_profit'], bcsub(1, $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]) ); - // $vmi['vendor']['vendor_profit'] = bcmul($vmi['vendor']['total_profit'], $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]); - // $vmi['vendor']['trippest_profit'] = bcmul($vmi['vendor']['total_profit'], bcsub(1, $vendor_sourcetype[strval($vmi['vendor_code'])]["profit_rate"]) ); /** Trippest应付地接 */ $vmi['trippest']['payout'] = bcsub(bcadd($vmi['vendor_cost'], $vmi['trippest']['vendor_profit'] ), $vmi['trippest']['vendor_sum']); - // $vmi['vendor']['payout'] = bcsub(bcadd($vmi['vendor_cost'], $vmi['vendor']['vendor_profit'] ), $vmi['vendor']['vendor_sum']); /** 利润总计 */ $result['col_sum']['trippest']['sum_profit'] = bcadd($result['col_sum']['trippest']['sum_profit'], $vmi['trippest']['total_profit']); $result['col_sum']['trippest']['sum_trippest_profit'] = bcadd($result['col_sum']['trippest']['sum_trippest_profit'], $vmi['trippest']['trippest_profit']); $result['col_sum']['trippest']['sum_vendor_profit'] = bcadd($result['col_sum']['trippest']['sum_vendor_profit'], $vmi['trippest']['vendor_profit']); - // $result['col_sum']['vendor']['sum_profit'] = bcadd($result['col_sum']['vendor']['sum_profit'], $vmi['vendor']['total_profit']); - // $result['col_sum']['vendor']['sum_trippest_profit'] = bcadd($result['col_sum']['vendor']['sum_trippest_profit'], $vmi['vendor']['trippest_profit']); - // $result['col_sum']['vendor']['sum_vendor_profit'] = bcadd($result['col_sum']['vendor']['sum_vendor_profit'], $vmi['vendor']['vendor_profit']); /** 应付总计 */ $result['col_sum']['trippest']['sum_payout'] = bcadd($result['col_sum']['trippest']['sum_payout'], $vmi['trippest']['payout']); - // $result['col_sum']['vendor']['sum_payout'] = bcadd($result['col_sum']['vendor']['sum_payout'], $vmi['vendor']['payout']); } // 财务表成本和实际成本不相等 $result['diff_cost'] = $this->money_model->report_tour_diff($start_date, $end_date, implode(',', $vendors)); - $this->load->view('vendor_money_sum', $result); - return ; + return $this->load->view('vendor_money_sum', $result); + // return $this->output->set_content_type('application/json')->set_output(json_encode($result)); + ; } public function download_output($export_list, $file_name) @@ -310,11 +225,11 @@ class Vendor_money extends CI_Controller { ->SetCellValue('A'.$rowCount, ($rowCount-1)) // ->SetCellValue('A'.$rowCount, $row->pn_sn) ->setCellValueExplicit('B'.$rowCount, $row['GRI_No'],PHPExcel_Cell_DataType::TYPE_STRING) - ->setCellValue('C'.$rowCount, number_format($row['haina_income'], 2, ".", "")) - ->setCellValue('D'.$rowCount, number_format($row['vendor_income'], 2, ".", "")) + ->setCellValue('C'.$rowCount, number_format($row['haina_receipt'], 2, ".", "")) + ->setCellValue('D'.$rowCount, number_format($row['vendor_receipt'], 2, ".", "")) ->SetCellValue('E'.$rowCount, 0) ->SetCellValue('F'.$rowCount, $row['group_vendor_cost']) - ->setCellValue('G'.$rowCount, bcsub(bcadd($row['vendor_income'],$row['haina_income']),$row['group_vendor_cost'])) + ->setCellValue('G'.$rowCount, bcsub(bcadd($row['vendor_receipt'],$row['haina_receipt']),$row['group_vendor_cost'])) ; $rowCount++; } diff --git a/webht/third_party/trippestOrderSync/helpers/array_helper.php b/webht/third_party/trippestOrderSync/helpers/array_helper.php index 973fd36e..5d8c874a 100644 --- a/webht/third_party/trippestOrderSync/helpers/array_helper.php +++ b/webht/third_party/trippestOrderSync/helpers/array_helper.php @@ -133,6 +133,7 @@ function analysis_groupCode($groupCode) $real_groupCode .= $order_id; } $ret["cut"] = trim_str(trim($real_groupCode)); + $ret["order"] = trim_str(trim($order_id)); for ($i=2; $i < count($tmp_groupCode); $i++) { if (strlen($tmp_groupCode[$i]) > 4) { $real_groupCode .= "-"; diff --git a/webht/third_party/trippestOrderSync/models/orderFinance_model.php b/webht/third_party/trippestOrderSync/models/orderFinance_model.php index 4f0b8149..066c4c79 100644 --- a/webht/third_party/trippestOrderSync/models/orderFinance_model.php +++ b/webht/third_party/trippestOrderSync/models/orderFinance_model.php @@ -155,12 +155,12 @@ class OrderFinance_model extends CI_Model { { $ret = new stdClass(); // 从订单客人名单列表中取 - $sql = "SELECT BPL_BPE_SN,bp.BPE_GuestType + $sql = "SELECT BPL_BPE_SN,isnull(bp.BPE_GuestType, '1') BPE_GuestType from BIZ_ConfirmLineDetail cold inner join BIZ_BookPeopleList bpl on bpl.BPL_COLD_SN=cold.COLD_SN inner join biz_bookpeople bp on bp.BPE_SN=bpl.BPL_BPE_SN - where cold.COLD_COLI_SN=$coli_sn - group by bpl.BPL_BPE_SN,bp.BPE_GuestType"; + where cold.COLD_COLI_SN=$coli_sn AND cold.DeleteFlag=0 + group by bpl.BPL_BPE_SN,isnull(bp.BPE_GuestType, '1')"; $query = $this->HT->query($sql); $ret->person_num = $query->num_rows(); $guest_type_cnt = array_count_values(array_map(function($ele) { return $ele->BPE_GuestType; }, $query->result())); @@ -183,14 +183,15 @@ class OrderFinance_model extends CI_Model { } /** 获取产品信息:产品名称,供应商等 */ - public function get_pag_info($PAG_SN_str="") + public function get_pag_info($PAG_SN_str="", $cold_vei=null) { if ($PAG_SN_str=="") { return array(); } + $vei_sql = $cold_vei===null ? 'PAG_DefaultVEI_SN' : "isnull(PAG_DefaultVEI_SN,$cold_vei)"; $sql = "SELECT pag.PAG_SN,PAG_Code,PAG_DefaultVEI_SN,PAG_Title,vei2.VEI2_CompanyBN from BIZ_PackageInfo pag - inner join VEndorInfo2 vei2 on VEI2_VEI_SN=PAG_DefaultVEI_SN and VEI2_LGC=2 + left join VEndorInfo2 vei2 on VEI2_VEI_SN=$vei_sql and VEI2_LGC=2 where PAG_SN in ($PAG_SN_str) "; return $this->HT->query($sql)->result(); } diff --git a/webht/third_party/trippestOrderSync/models/vendor_money_model.php b/webht/third_party/trippestOrderSync/models/vendor_money_model.php index 43d3d098..48992d58 100644 --- a/webht/third_party/trippestOrderSync/models/vendor_money_model.php +++ b/webht/third_party/trippestOrderSync/models/vendor_money_model.php @@ -12,21 +12,25 @@ class Vendor_money_model extends CI_Model { bcscale(4); } - public function checked_group_list($vendor, $sourcetype, $start_date, $end_date, $all_vendor, $duplicate_gri) + public function checked_group_list($vendor, $sourcetype, $start_date, $end_date, $all_vendor) { - $duplicate_gri = $duplicate_gri==='' ? 0 : $duplicate_gri; - $sql = "SELECT sum_opi.COLI_OPI_ID,sum(sum_opi.海纳收款) as trippest_sum,sum(sum_opi.地接社收款) as vendor_sum, + /* + SELECT sum_opi.COLI_OPI_ID,sum(sum_opi.海纳收款) as trippest_sum,sum(sum_opi.地接社收款) as vendor_sum, sum(sum_opi.other_price_RMB) as other_price_sum , sum(sum_opi.other_cost_RMB) as other_cost_sum ,sum(sum_opi.other_vendorprice_RMB) as other_vendorprice_RMB_sum from ( - SELECT + ) as sum_opi + group by sum_opi.COLI_OPI_ID + order by case sum_opi.COLI_OPI_ID when '435' then 0 else 1 end + */ + $sql = "SELECT (select isnull(SUM(COLD_TotalPrice),0) from BIZ_ConfirmLineDetail cold where cold.COLD_COLI_SN=cgi_group.COLI_SN and COLD_ServiceType <> 'D' and COLD_PlanVEI_SN IN ($all_vendor) and cold.DeleteFlag=0 - )*cgi_group.汇率 as other_price_RMB, + )*cgi_group.gai_rate as other_price_RMB, (select isnull(SUM(COLD_TotalCost),0) from BIZ_ConfirmLineDetail cold where cold.COLD_COLI_SN=cgi_group.COLI_SN and COLD_ServiceType <> 'D' @@ -35,13 +39,20 @@ class Vendor_money_model extends CI_Model { ) as other_cost_RMB, (dbo.ConvertToRMB('USD',other_vendor_price)) as other_vendorprice_RMB, case when other_vendor_price > 0 then - (总收款-dbo.ConvertToRMB('USD',other_vendor_price)) - else 海纳收款_origin end - as 海纳收款, + (order_total_receipt-dbo.ConvertToRMB('USD',other_vendor_price)) + else ht_origin end + as haina_receipt, * + ,(select ROUND(SUM(isnull(tourcost,0)),4) + from report_tour where ordernumber=COLI_ID + and exists ( + select 1 from BIZ_ConfirmLineDetail where COLD_SN=RPT_COLD_SN + --and COLD_PlanVEI_SN=vendor + ) + ) as group_vendor_cost from ( select - COLI_SN, + COLI_SN,COLI_ID,GRI_No, (select COUNT(0) from BIZ_ConfirmLineDetail where COLD_COLI_SN=COLI_SN and COLD_ServiceType='D' @@ -51,7 +62,7 @@ class Vendor_money_model extends CI_Model { where COLD_COLI_SN=COLI_SN --and COLD_ServiceType='D' and DeleteFlag=0 - and COLD_PlanVEI_SN<>$vendor + --and COLD_PlanVEI_SN<>$vendor and COLD_PlanVEI_SN not in ($all_vendor) ) as other_vendor_price, COLI.COLI_sourcetype, @@ -61,21 +72,24 @@ class Vendor_money_model extends CI_Model { convert(decimal(10,2),round((select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo where DeleteFlag=0 and GAI_COLI_SN=COLI_SN )/isnull(COLI.COLI_Price,1),2)) - else 0 end as 汇率, + else 0 end as gai_rate, (select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo where DeleteFlag=0 and GAI_COLI_SN=COLI_SN - ) as 总收款, + ) as order_total_receipt, (select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo where DeleteFlag=0 and GAI_COLI_SN=COLI_SN and GAI_Type not in (" . PAY_OTHER . ") - ) as 海纳收款_origin, + ) as ht_origin, (select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo where DeleteFlag=0 and GAI_COLI_SN=COLI_SN - and GAI_VEI_SN in ($vendor, 1343) + and GAI_VEI_SN in ($all_vendor) and GAI_Type in (" . PAY_OTHER . ") - ) as 地接社收款 + ) as vendor_receipt ,coli.COLI_OPI_ID - + ,( + select top 1 v.COLD_PlanVEI_SN from BIZ_ConfirmLineDetail v where COLD_COLI_SN=COLI_SN + and v.DeleteFlag=0 and COLD_PlanVEI_SN in ($all_vendor) + ) as vendor from CK_GroupInfo cgi inner join GRoupInfo gri on CGI_GRI_SN=GRI_SN inner join BIZ_ConfirmLineInfo coli on COLI_GRI_SN=GRI_SN @@ -86,17 +100,17 @@ class Vendor_money_model extends CI_Model { ) and CGI_Checked=1 and GRI_OrderType=227002 - and COLI_SN not in ($duplicate_gri) + and COLI_State<>50 + and exists ( select 1 from BIZ_ConfirmLineDetail where COLD_COLI_SN=coli.COLI_SN and DeleteFlag=0 - and COLD_PlanVEI_SN=$vendor + and COLD_PlanVEI_SN in ($all_vendor) ) - -- and COLI_sourcetype=$sourcetype - ) as cgi_group - ) as sum_opi - group by sum_opi.COLI_OPI_ID - order by case sum_opi.COLI_OPI_ID when '435' then 0 else 1 end "; + + ) as cgi_group"; + // -- and COLI_SN not in ($duplicate_gri) + // -- and COLI_sourcetype=$sourcetype $query = $this->HT->query($sql); $opi_sum_money = $query->result_array(); return $opi_sum_money; @@ -218,11 +232,13 @@ class Vendor_money_model extends CI_Model { AND GRI_OrderType=227002 AND COLI_OPI_ID <> 435 AND exists ( - select 1 from BIZ_ConfirmLineDetail where COLD_COLI_SN=COLI_SN + select 1 from BIZ_ConfirmLineDetail d1 where COLD_COLI_SN=COLI_SN + and d1.DeleteFlag=0 and COLD_PlanVEI_SN in ($all_vendor) --in ($all_vendor) ) AND exists ( - select 1 from BIZ_ConfirmLineDetail where COLD_COLI_SN=COLI_SN + select 1 from BIZ_ConfirmLineDetail d2 where COLD_COLI_SN=COLI_SN + and d2.DeleteFlag=0 and COLD_PlanVEI_SN not in ($all_vendor) ) ORDER BY COLI_sourcetype "; @@ -230,9 +246,8 @@ class Vendor_money_model extends CI_Model { return $query->result_array(); } - public function group_detail_list($vendor, $sourcetype, $start_date, $end_date, $all_vendor, $duplicate_gri) + public function group_detail_list($vendor, $sourcetype, $start_date, $end_date, $all_vendor) { - $duplicate_gri = $duplicate_gri==='' ? 0 : $duplicate_gri; $sql = "SELECT (dbo.ConvertToRMB('USD',other_vendor_price)) as other_vendorprice_RMB, case when other_vendor_price > 0 then @@ -297,14 +312,16 @@ class Vendor_money_model extends CI_Model { ) and CGI_Checked=1 and GRI_OrderType=227002 - and COLI_SN not in ($duplicate_gri) + and exists ( select 1 from BIZ_ConfirmLineDetail where COLD_COLI_SN=coli.COLI_SN and DeleteFlag=0 and COLD_PlanVEI_SN=$vendor ) - -- and COLI_sourcetype=$sourcetype + ) as cgi_group"; + // and COLI_SN not in ($duplicate_gri) + // -- and COLI_sourcetype=$sourcetype $query = $this->HT->query($sql); return $query->result_array(); } @@ -513,60 +530,70 @@ class Vendor_money_model extends CI_Model { public function get_duplicate_vei_combineno($start_date, $end_date, $all_vendor) { - $sql = "SELECT pure_group.* - ,(select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo - where DeleteFlag=0 and GAI_GRI_SN=COLI_SN - and GAI_VEI_SN in ($all_vendor) - and GAI_Type in (" . PAY_OTHER . ") - ) as vendor_sum - ,(select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo - where DeleteFlag=0 and GAI_COLI_SN=COLI_SN - ) as total_receipt - ,(select isnull(SUM(GAI_SSJE),0) from BIZ_GroupAccountInfo - where DeleteFlag=0 and GAI_COLI_SN=COLI_SN - and GAI_Type not in (" . PAY_OTHER . ") - ) as trippest_sum + $sql = "SELECT + duplicate_gri.* ,( - select SUM(tourcost) - from BIZ_ConfirmLineInfo - inner join GroupCombineInfo on COLI_GRI_SN=GCI_GRI_SN - inner join report_tour on ordernumber=COLI_ID - where 1=1 - and GCI_VEI_SN in ($all_vendor) - and GCI_combineNo=pure_group.GCI_combineNo - and exists ( - select 1 from VEndorInfo2 where VEI2_LGC=2 - and VEI2_VEI_SN=GCI_VEI_SN and VEI2_CompanyBN=tourProvide - ) - ) as report_cost - ,0 as other_price_sum,0 as other_cost_sum,0 as other_vendorprice_RMB_sum - from (SELECT GCI_combineNo - ,(select top 1 GCI_VEI_SN from groupcombineinfo g1 where g1.gci_combineno=vendor_group.GCI_combineNo) as vendor1 - ,(select top 1 c.COLI_SN from groupcombineinfo g1 - inner join BIZ_ConfirmLineInfo c on COLI_GRI_SN=GCI_GRI_SN - where g1.gci_combineno=vendor_group.GCI_combineNo - ) as COLI_SN - ,(select top 1 GRI_No from groupInfo inner join groupcombineinfo gc on gc.GCI_GRI_SN=GRI_SN where gc.gci_combineno=vendor_group.GCI_combineNo) as gri_no - ,(SELECT isnull(SUM(CONVERT(float, isnull(gcod.GCOD_sumMoney,0))),0) - FROM GroupCombineOperationDetail gcod - WHERE gcod.GCOD_GCI_combineNo=GCI_combineNo - AND gcod.GCOD_operationType<> 'otherReceives' - ) as pure_cost - from ( - select GCI_combineNo ,GCI_VEI_SN - from GroupCombineInfo where 1=1 - and GCI_VEI_SN in ($all_vendor) - AND EXISTS - ( SELECT 1 - FROM CK_GroupInfo - WHERE CGI_Checked=1 - AND CGI_GRI_SN=GCI_GRI_SN - AND CGI_ArriveDate BETWEEN '$start_date' AND '$end_date') - group by GCI_combineNo, GCI_VEI_SN - ) as vendor_group - group by vendor_group.GCI_combineNo - having COUNT(1)>1 - ) as pure_group"; + SELECT isnull(SUM(GAI_SSJE),0) + FROM BIZ_GroupAccountInfo + WHERE DeleteFlag=0 + AND GAI_GRI_SN=COLI_SN + AND GAI_VEI_SN IN ($all_vendor) + AND GAI_Type IN (" . PAY_OTHER . ") + ) AS vendor_sum + ,( + SELECT isnull(SUM(GAI_SSJE),0) + FROM BIZ_GroupAccountInfo + WHERE DeleteFlag=0 + AND GAI_COLI_SN=COLI_SN ) AS total_receipt + ,( + SELECT isnull(SUM(GAI_SSJE),0) + FROM BIZ_GroupAccountInfo + WHERE DeleteFlag=0 + AND GAI_COLI_SN=COLI_SN + AND GAI_Type not IN (" . PAY_OTHER . ") ) AS trippest_sum + ,0 AS other_price_sum + ,0 AS other_cost_sum + ,0 AS other_vendorprice_RMB_sum + from( + select tmp.GCI_combineNo, tmp.GCI_SN, tmp.GCI_VEI_SN vendor1,real_unique.* + ,(SELECT top 1 c.COLI_SN FROM BIZ_ConfirmLineInfo c WHERE c.coli_gri_sn=real_unique.gci_gri_sn) as COLI_SN + ,(SELECT top 1 GRI_No FROM groupInfo where gri_sn=real_unique.gci_gri_sn) as gri_no + ,( + SELECT SUM(tourcost) + FROM BIZ_ConfirmLineInfo + INNER JOIN GroupCombineInfo + ON COLI_GRI_SN=GCI_GRI_SN + INNER JOIN report_tour + ON ordernumber=COLI_ID + WHERE 1=1 + AND GCI_VEI_SN IN ($all_vendor) + and GCI_GRI_SN=tmp.GCI_GRI_SN + AND exists ( + SELECT 1 + FROM VEndorInfo2 + WHERE VEI2_LGC=2 + AND VEI2_VEI_SN=GCI_VEI_SN + AND VEI2_CompanyBN=tourProvide ) + ) AS report_cost + ,( + SELECT isnull(SUM(CONVERT(float,isnull(gcod.GCOD_sumMoney,0))),0) + FROM GroupCombineOperationDetail gcod + WHERE gcod.GCOD_GCI_combineNo=tmp.GCI_combineNo + AND gcod.GCOD_operationType<> 'otherReceives' ) AS pure_cost + from GroupCombineInfo tmp + inner join ( + select GCI_GRI_SN + from GroupCombineInfo unique_gci + where GCI_travelDate between '$start_date' AND '$end_date' + and isnull(GCI_combineNo,'') not in ('','cancel','forbidden') + and isnull(convert(decimal(10,2), GCI_priceCNY),0)>0 + group by GCI_GRI_SN + having count(GCI_GRI_SN)>1 + ) as real_unique on real_unique.GCI_GRI_SN=tmp.GCI_GRI_SN + where isnull(tmp.GCI_combineNo,'') not in ('','cancel','forbidden') + ) as duplicate_gri + order by duplicate_gri.COLI_SN + "; $query = $this->HT->query($sql); return $query->result_array(); } diff --git a/webht/third_party/workflow/controllers/index.php b/webht/third_party/workflow/controllers/index.php index 0f209053..fac749f6 100644 --- a/webht/third_party/workflow/controllers/index.php +++ b/webht/third_party/workflow/controllers/index.php @@ -248,7 +248,7 @@ class Index extends CI_Controller //print_r($data); $this->load->view('n-header', $data); $this->load->view('w-nav'); - $this->load->view('w-left'); + //$this->load->view('w-left'); $this->load->view('index/verify'); $this->load->view('w-bottom'); $this->load->view('n-footer'); diff --git a/webht/third_party/workflow/views/form/rota.php b/webht/third_party/workflow/views/form/rota.php index 0e1cc4d0..9c54ef0a 100644 --- a/webht/third_party/workflow/views/form/rota.php +++ b/webht/third_party/workflow/views/form/rota.php @@ -30,7 +30,7 @@ -
+
退票处理
diff --git a/webht/third_party/workflow/views/index/verify.php b/webht/third_party/workflow/views/index/verify.php index cb3a6ee5..467024aa 100644 --- a/webht/third_party/workflow/views/index/verify.php +++ b/webht/third_party/workflow/views/index/verify.php @@ -1,8 +1,8 @@
-
+
-
+

OPI_Name; ?>的审核说明:

diff --git a/webht/third_party/workflow/views/w-left.php b/webht/third_party/workflow/views/w-left.php index e4a3ce23..e6c31953 100644 --- a/webht/third_party/workflow/views/w-left.php +++ b/webht/third_party/workflow/views/w-left.php @@ -1,13 +1,13 @@
-
星期