Merge branch 'master' of gitee.com:hainatravel/information-system

mobile-first
LiaoYijun 6 years ago
commit 13398cf4ed

@ -47,9 +47,10 @@ $config["train_order_status_msg"]=array(
"4"=>"出票成功",
"5"=>"出票失败",
"6"=>"线上退票处理中",
"7"=>"有乘客退票(改签)成功",
"7"=>"(改签)退票成功",
"8"=>"乘客退票失败",
"e"=>"数据错误,提交失败"
"e"=>"数据错误,提交失败",
"9"=>"改签成功"
);
//座次配对

@ -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);
}
}
}

@ -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);
}

@ -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/');

@ -0,0 +1,84 @@
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class reschedule extends CI_Controller{
public function __construct(){
parent::__construct();
$this->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);
}
}
}

@ -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);
}
}

@ -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();
}
}

@ -77,7 +77,7 @@ function selseat(seat){
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">翰特订单号&nbsp;<a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/trainsystem/pages/order_list');?>">订单列表>></a><a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/trainsystem/pages/export');?>">导出交易记录>></a> <span style="margin-left:200px;">版本V2.0</span><span class="pull-right">聚合余额(RMB)<?php echo $balance;?></span></h3>
<h3 class="panel-title">翰特订单号&nbsp;<a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/trainsystem/pages/order_list');?>">订单列表>></a><a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/trainsystem/pages/reschedule');?>">携程改签>></a><a style="margin-left:50px;" target='_blank' href="<?php echo site_url('apps/trainsystem/pages/export');?>">导出交易记录>></a> <span style="margin-left:200px;">版本V2.0</span><span class="pull-right">聚合余额(RMB)<?php echo $balance;?></span></h3>
</div>
<div class="panel-body">
<form style="width: 300px;float: left;" action="/info.php/apps/trainsystem/pages/index/" method="post">

@ -9,10 +9,14 @@
echo '<p>'.$from_station_name.'<span class="glyphicon glyphicon-arrow-right"></span>'.$to_station_name.'</p>';
echo '<p style="border-top:1px dashed #000; height:1px;margin-top:10px;" ></p>';
echo '<p>'.$items->tst_realname.'('.$items->tst_ticketype.')&nbsp;&nbsp;&nbsp;&nbsp;'.$items->tst_seatstype.'&nbsp;&nbsp;'.$items->tst_seatdetail.'&nbsp;&nbsp;&nbsp;&nbsp;票价:¥'.$items->tst_ticketprice.'</p>';
if((int)$items->tst_status != 7){
if((int)$items->tst_status == 4){
echo '<p>';
echo '<a href="###" style="padding:5px 15px;" class="btn btn-warning btn-sm returnticket" name="'.$items->tst_realname.'" passid="'.$items->tst_numberid.'"><span class="glyphicon glyphicon-remove"></span>退票</a>';
echo '</p>';
}elseif((int)$items->tst_status == 9){
echo '<p>';
echo '<a href="###" style="padding:5px 15px;" class="btn btn-warning btn-sm reschedulereturn" name="'.$items->tst_realname.'" passid="'.$items->tst_numberid.'"><span class="glyphicon glyphicon-remove"></span>改签退票</a>';
echo '</p>';
}else{
$info = json_decode($items->tst_returncallback);
echo '<p><table class="table table-bordered table-hover" style="text-align:center;"><tr><th colspan="2" style="text-align:center;">退票处理</th></tr>';
@ -25,6 +29,7 @@
</div>
<script>
$(function(){
//正常退票
$('.returnticket').click(function(){
var url = <?php echo "'http://www.mycht.cn/info.php/apps/trainsystem/returnorders/returntickets?ordernumber=$ordernumber'"?>;
var return_ticket = $(this);
@ -44,5 +49,31 @@ $(function(){
}
});
});
//改签退票
$('.reschedulereturn').click(function(){
var orderNumber = '<?php echo $ordernumber?>';
name = $(this).attr('name');
passid = $(this).attr('passid');
$.ajax({
url:'/info.php/apps/trainsystem/returnorders/returnreschedule',
type:'POST',
data:{
orderNumber:orderNumber,
username:name,
userid:passid
},
beforeSend:function(){
$('.reschedulereturn').html('退票请求已发送...');
$('.reschedulereturn').addClass('disabled');
},
success:function(json,status){
var data = $.parseJSON(json);
alert(data.Msg);
$('.reschedulereturn').html('改签退票');
$('.reschedulereturn').removeClass('disabled');
}
});
});
});
</script>

@ -0,0 +1,271 @@
<div style="width:90%;margin:30px auto;">
<div class="panel panel-primary" style="border-color: #337ab7;">
<div class="panel-heading">
<h3 class="panel-title">携程火车改签申请</h3>
</div>
<div class="panel-body">
<div class="row">
<form method="get">
<div class="col-md-6">
<input type="text" class="form-control" placeholder="请输入携程订单号" name="order" value="<?php echo $order?>"/>
</div>
<div class="col-md-6">
<button type="submit" id="sub" class="btn btn-success btn-sm">
<span class="glyphicon glyphicon-search"></span> 获取订单信息
</button>
</div>
</form>
</div>
</div>
</div>
<?php if(!empty($detail)){ ?>
<div class="panel panel-primary" style="border-color: #337ab7;">
<div class="panel-heading">
<h3 class="panel-title">火车数据详情</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-4">
<div class="form-group form-inline">
<label for="exampleInputName2">订单号</label>
<input style="width:161px;" type="text" class="form-control" name="ordernumber" value="<?php echo $detail['0']->ts_ordernumber; ?>" readonly>
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>出发城市</label>
<input style="width:85px;" type="text" class="form-control" name="departcity" value="<?php echo $detail['0']->ts_fromstationame; ?>" />
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>到达城市</label>
<input style="width:85px;" type="text" class="form-control" name="arrivecity" value="<?php echo $detail['0']->ts_tostationame; ?>" />
</div>
</div>
<div class="col-md-4 form-inline">
<div class="form-group">
<label>出发时间</label>
<input style="width:140px" type="text" class="form-control" name="departime" value="<?php echo $detail['0']->ts_startdate.' '.$detail['0']->ts_startime; ?>" />
</div>
</div>
<div class="col-md-4 form-inline">
<div class="form-group">
<label>到达时间</label>
<input style="width:140px" type="text" class="form-control" name="arrivetime" value="<?php echo $detail['0']->ts_startdate.' '.$detail['0']->ts_endtime; ?>" />
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>车次</label>
<input style="width:80px" type="text" class="form-control" name="checi" value="<?php echo $detail['0']->ts_checi ?>" />
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>票价</label>
<input style="width:80px" type="text" class="form-control" name="price" value="<?php echo $detail['0']->tst_ticketprice ?>" readonly />
</div>
</div>
</div>
<hr>
<?php
foreach ($detail as $passpagerItems){
?>
<div class="row">
<div class="col-md-1">
<div>
<input style="margin-top:15px" type="checkbox" class="singleselect">
</div>
</div>
<div class="col-md-4 form-inline">
<div class="form-group">
<label>姓名</label>
<input style="width:150px;" type="text" name="passgername[]" class="form-control" value="<?php echo $passpagerItems->tst_realname?>" readonly>
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>车票类型</label>
<input style="width:80px;" type="text" name="ticketype[]" class="form-control" value="<?php echo $passpagerItems->tst_ticketype?>" readonly>
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>证件类型</label>
<input style="width:85px;" type="text" name="identitytype[]" class="form-control" value="<?php echo $passpagerItems->tst_identitytype?>" readonly>
</div>
</div>
<div class="col-md-5 form-inline">
<div class="form-group">
<label>乘客证件号码</label>
<input style="width:150px;" type="text" name="passagerid[]" class="form-control" value="<?php echo $passpagerItems->tst_numberid ?>" readonly>
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>座位类型</label>
<input style="width:80px;" type="text" name="seatype[]" class="form-control" value="<?php echo $passpagerItems->tst_seatstype ?>" />
</div>
</div>
<?php
$coachLength = strrpos($passpagerItems->tst_seatdetail,'车厢');
$coach = mb_substr($passpagerItems->tst_seatdetail,0,$coachLength);
$seat = mb_substr($passpagerItems->tst_seatdetail,$coachLength+2,mb_strlen($passpagerItems->tst_seatdetail));
?>
<div class="col-md-2 form-inline">
<div class="form-group">
<label>车厢</label>
<input style="width:50px;" type="text" name="coach[]" class="form-control" value="<?php echo $coach ?>" readonly>
</div>
</div>
<div class="col-md-3 form-inline">
<div class="form-group">
<label>座位号</label>
<input style="width:80px;" type="text" name="seat[]" class="form-control" value="<?php echo $seat ?>" readonly>
</div>
</div>
</div>
<hr>
<?php } ?>
<div class="row" style="margin-top:20px;">
<!--<div class="col-md-2">
<button class="btn btn-success checked_pay">一键改签</button>
</div>-->
<div class="col-md-3">
<button class="btn btn-success" id="reschedule_select">单个改签</button>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
<script>
$(function(){
//发起改签流程
$('#reschedule_select').click(function(){
//获取改签所需要的数据
var ordernumber = $('input[name="ordernumber"]').val();
var departcity = $('input[name="departcity"]').val();
var arrivecity = $('input[name="arrivecity"]').val();
var departime = $('input[name="departime"]').val();
var arrivetime = $('input[name="arrivetime"]').val();
var checi = $('input[name="checi"]').val();
var price = $('input[name="price"]').val();
//判断是否有勾选改签的乘客
if($('.singleselect').is(':checked')){
var passgername = [];
$('input[name="passgername[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
passgername.push(elements.value);
}
});
var ticketype = [];
$('input[name="ticketype[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
ticketype.push(elements.value);
}
});
var identitytype = [];
$('input[name="identitytype[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
identitytype.push(elements.value);
}
});
var passagerid = [];
$('input[name="passagerid[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
passagerid.push(elements.value);
}
});
var seatype = [];
$('input[name="seatype[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
seatype.push(elements.value);
}
});
var coach = [];
$('input[name="coach[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
coach.push(elements.value);
}
});
var seat = [];
$('input[name="seat[]"]').each(function(index,elements){
if($(this).hasClass('selecting')){
seat.push(elements.value);
}
});
//发起异步提交
$.ajax({
url:'/info.php/apps/trainsystem/reschedule/ctripModel',
type:"POST",
data:{
orderNumber:ordernumber,
DepartStationName:departcity,
ArriveStationName:arrivecity,
RescheduleDepartTime:departime,
RescheduleArriveTime:arrivetime,
RescheduleTrainNumber:checi,
RescheduleTicketPrice:price,
PassagerName:passgername,
Ticketype:ticketype,
IdentityType:identitytype,
PassagerId:passagerid,
RescheduleSeatName:seatype,
Coach:coach,
Seat:seat
},
beforeSend:function(){
$('#reschedule_select').html('改签请求已发送...');
$('#reschedule_select').addClass('disabled');
},
success:function(json,status){
var data = $.parseJSON(json);
alert(data.Discription);
$('#reschedule_select').html('单个改签');
$('#reschedule_select').removeClass('disabled');
}
});
}else{
alert('请勾选乘客!');
}
});
//选择功能
$('.singleselect').click(function(){
var selectpassager = $(this).parent().parent().parent();
if($(selectpassager).find('input').hasClass('selecting')){
$(selectpassager).find('input').removeClass('selecting');
}else{
$(selectpassager).find('input').addClass('selecting');
}
});
});
</script>

@ -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;

@ -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)) ;

@ -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++;
}

@ -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 .= "-";

@ -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();
}

@ -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();
}

@ -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');

@ -30,7 +30,7 @@
</div>
</div>
<legend></legend>
<div class="col-xs-24">
<div class="col-xs-24 table-responsive">
<table class="table table-bordered rotatable">
<tr class="rotatable_bg">
<th width="70">星期</th>

@ -1,8 +1,8 @@
<div class="col-xs-24" style="height:5px;"></div>
<div class="col-sm-20 nopadding">
<div class="col-sm-20 col-xs-24 nopadding">
<?php echo $form; ?>
</div>
<div class="col-sm-4 well" style="min-height: 1130px;height:100%;margin-bottom:0;">
<div class="col-sm-4 col-xs-24 well" style="min-height: 1130px;height:100%;margin-bottom:0;">
<fieldset disabled>
<?php foreach ($verify_data as $v) { ?>
<h4><?php echo $v->OPI_Name; ?>的审核说明:</h4>

@ -1,13 +1,13 @@
<div class="container-fluid">
<div class="row">
<div class="media content_box">
<div class="media-left app_nav hidden-xs">
<div class="media-left app_nav">
<ul class="list-unstyled">
<li><a class="<?php if(isset($left_nav) && $left_nav=='index') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/index/'); ?>"><span class="glyphicon glyphicon-plus-sign"></span> 新建事务</a></li>
<li><a class="<?php if(isset($left_nav) && $left_nav=='userlist') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/work_list/'); ?>"><span class="glyphicon glyphicon-user"></span>我的事务</a> </li>
<li><a class="hidden-xs <?php if(isset($left_nav) && $left_nav=='unverify') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/unverify'); ?>"><span class="glyphicon glyphicon-edit"></span>待审核事务</a></li>
<li><a class="hidden-xs <?php if(isset($left_nav) && $left_nav=='verify') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/unverify/1'); ?>"><span class="glyphicon glyphicon-saved"></span>已审核事务</a></li>
<li><a class="hidden-xs <?php if(isset($left_nav) && $left_nav=='rata_list') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/rata_list'); ?>"><span class="glyphicon glyphicon-edit"></span>中华游值班表</a></li>
<li><a class="<?php if(isset($left_nav) && $left_nav=='unverify') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/unverify'); ?>"><span class="glyphicon glyphicon-edit"></span>待审核事务</a></li>
<li><a class="<?php if(isset($left_nav) && $left_nav=='verify') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/unverify/1'); ?>"><span class="glyphicon glyphicon-saved"></span>已审核事务</a></li>
<li><a class="<?php if(isset($left_nav) && $left_nav=='rata_list') echo 'active';?>" href="<?php echo site_url('apps/workflow/index/rata_list'); ?>"><span class="glyphicon glyphicon-edit"></span>中华游值班表</a></li>
<?php
$userdata=$this->session->userdata('admin_chtcdn');
if ( !empty($userdata['whu_isadmin']) && $userdata['whu_isadmin']==1) {

Loading…
Cancel
Save