From f8ff0f8eb06abf22b2ed83c8257be00e424a5caa Mon Sep 17 00:00:00 2001 From: lyt Date: Thu, 5 Sep 2019 13:19:54 +0800 Subject: [PATCH] =?UTF-8?q?Trippest=E8=B4=A6=E5=8D=95:=20=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E4=BA=A7=E5=93=81=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/TulanduoApi.php | 2 +- .../controllers/order_finance.php | 21 +++++++++++++------ .../models/orderFinance_model.php | 10 +++++---- .../trippestOrderSync/models/orders_model.php | 6 +++--- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index 784c1ee1..57019c3b 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -562,7 +562,7 @@ class TulanduoApi extends CI_Controller /*BIZ_GroupCombineOperationDetail*/ if ( isset($detail_jsonResp->orderDetail->groupOrderNo) ) { // 删除旧的录入 - $this->Orders_model->biz_groupcombineoperationdetail_cut(trim_str($detail_jsonResp->orderDetail->groupOrderNo)); + $this->Orders_model->biz_groupcombineoperationdetail_cut(trim_str($detail_jsonResp->orderDetail->groupOrderNo), $vei_SN); // 门票 if (isset($detail_jsonResp->orderDetail->operationDetails->sceneryOperations)) { foreach ($detail_jsonResp->orderDetail->operationDetails->sceneryOperations as $ks => $vso) { diff --git a/webht/third_party/trippestOrderSync/controllers/order_finance.php b/webht/third_party/trippestOrderSync/controllers/order_finance.php index b4b8fe8e..4e0a05eb 100644 --- a/webht/third_party/trippestOrderSync/controllers/order_finance.php +++ b/webht/third_party/trippestOrderSync/controllers/order_finance.php @@ -298,7 +298,9 @@ class Order_finance extends CI_Controller { } } } - $all_pags = array_map(function($ele){ return mb_strtoupper($ele->PAG_Code);}, $all_orders); + $all_pags = array_map(function($ele){ + return false === stripos($ele->PAG_Title,'pvt') ? mb_strtoupper($ele->PAG_Code) : null; + }, $all_orders); $all_pag = array_unique($all_pags); $combine_pag_arr = array(); $pvt_code = $this->forbidden_combine(); @@ -328,7 +330,12 @@ class Order_finance extends CI_Controller { $all_orders[] = $ve; } // 重新计算重复次数 - $all_pags = array_filter(array_map(function($ele){ return mb_strtoupper($ele->PAG_Code);}, $all_orders)); + /** + * 忽略PVT的重复:名称中含PVT + */ + $all_pags = array_filter(array_map(function($ele){ + return false===stripos($ele->PAG_Title,'pvt') ? mb_strtoupper($ele->PAG_Code) : null; + }, $all_orders)); // 重复的产品号; 可混拼的产品 $repeat_code = array(); $code_count = array_count_values($all_pags); @@ -344,7 +351,7 @@ class Order_finance extends CI_Controller { $combine_pag_arr[] = $tmp; // push (31,41) } // 重复的产品即为拼团 - if($code_count[$vp] > 1) { + if(isset($code_count[$vp]) && $code_count[$vp] > 1) { $repeat_code[] = $vp; } } @@ -369,7 +376,7 @@ class Order_finance extends CI_Controller { $ret->combine_pags[] = mb_strtoupper($value->PAG_Code); } } - $ret->combine_pags = array_values(array_unique($ret->combine_pags)); + $ret->combine_pags = array_values(array_unique(array_filter($ret->combine_pags))); $ret->person_num = 0; $ret->PAG_Code = ""; $ret->order_cost = array(); @@ -391,6 +398,7 @@ class Order_finance extends CI_Controller { $tour_s = new stdClass(); if ($vo->COLI_SN == $coli_sn) { $tour_s->COLD_SN = $vo->COLD_SN; + $tour_s->vei_sn = $vo->COLD_PlanVEI_SN; $tour_s->person_num = $vo->COLD_PersonNum + $vo->COLD_ChildNum; $tour_s->adult_num = $vo->COLD_PersonNum; $tour_s->child_num = $vo->COLD_ChildNum; @@ -422,7 +430,7 @@ class Order_finance extends CI_Controller { $ret->PAG_Code = implode(",", $ret->combine_pags); $ret->comment = "拼团" . $combineNo . ", 按" . $ret->person_num . "人等"; $ret->comment .= $ret->totalPrice_RMB>0 ? (", 报价RMB " . $ret->totalPrice_RMB) : ""; - $combine_cost = $this->OrderFinance_model->get_combine_sumMoney($combineNo); + $combine_cost = $this->OrderFinance_model->get_combine_sumMoney($combineNo, $ret->order_cost[0]->vei_sn); $ret->cost_category = $combine_cost->cost_category; $ret->cost_sum = $combine_cost->cost_sum; $ret->person_cost = bcdiv($ret->cost_sum, $ret->person_num); @@ -465,6 +473,7 @@ class Order_finance extends CI_Controller { $ret->coli_sn = $coli_sn; $ret->coli_id = $all_orders[0]->coli_ID; $ret->cold_sn = array_unique(array_map(function($ele) {return $ele->COLD_SN;}, $all_orders)); + $ret->vei_sns = array_unique(array_map(function($ele) {return $ele->COLD_PlanVEI_SN;}, $all_orders)); // 总报价 $ret->totalPrice = 0; foreach ($all_orders as $kal => $val) { @@ -476,7 +485,7 @@ class Order_finance extends CI_Controller { $ret->person_num = $person_num->person_num; $ret->adult_num = $person_num->adult_num; $ret->child_num = $person_num->child_num; - $combine_cost = $this->OrderFinance_model->get_combine_sumMoney($combineNo); + $combine_cost = $this->OrderFinance_model->get_combine_sumMoney($combineNo, $ret->vei_sns[0]); $ret->startdate = $all_orders[0]->COLD_StartDate; $ret->person_grade = ($all_orders[0]->COLD_PersonNum + $all_orders[0]->COLD_ChildNum ); $ret->cost_category = $combine_cost->cost_category; diff --git a/webht/third_party/trippestOrderSync/models/orderFinance_model.php b/webht/third_party/trippestOrderSync/models/orderFinance_model.php index 7babdda3..e3657224 100644 --- a/webht/third_party/trippestOrderSync/models/orderFinance_model.php +++ b/webht/third_party/trippestOrderSync/models/orderFinance_model.php @@ -60,11 +60,11 @@ class OrderFinance_model extends CI_Model { /** 订单的所有拼团号 */ public function get_order_combineNo($coli_sn=0) { - $sql = "SELECT gci.GCI_combineNo,gci.GCI_groupType + $sql = "SELECT gci.GCI_combineNo,gci.GCI_groupType,gci.GCI_VEI_SN from GroupCombineInfo gci inner join BIZ_ConfirmLineInfo coli on gci.GCI_GRI_SN=COLI_GRI_SN and GCI_combineNo<>'cancel' where coli.COLI_SN=$coli_sn - group by gci.GCI_combineNo,gci.GCI_groupType + group by gci.GCI_combineNo,gci.GCI_groupType,gci.GCI_VEI_SN order by gci.GCI_groupType desc"; return $this->HT->query($sql)->result(); } @@ -84,7 +84,7 @@ class OrderFinance_model extends CI_Model { ,cold.COLD_PlanVEI_SN ,PAG_Code ,pag_sub.PAGS_CN_Title, cold.COLD_StartDate,PAG_DefaultVEI_SN ,COLD_PersonNum ,COLD_ChildNum , cold.COLD_StartDate,COLD_EndDate, cold.COLD_TotalPrice - --,PAG_Title + ,PAG_Title ,(select count(1) from GroupCombineInfo where gci_gri_sn=coli_gri_sn) as combine_cnt from GroupCombineInfo gci inner join BIZ_ConfirmLineInfo coli on gci.GCI_GRI_SN=COLI_GRI_SN and coli.COLI_State NOT IN (30,40,50) @@ -99,12 +99,14 @@ class OrderFinance_model extends CI_Model { } /** 拼团的成本明细,总成本信息 */ - public function get_combine_sumMoney($combineNo="") + public function get_combine_sumMoney($combineNo="", $vendor=null) { $ret = new stdClass(); + $vendor_sql = $vendor===null ? '' : " AND GCOD_VEI_SN=$vendor "; $sql = "SELECT GCOD_operationType,GCOD_subType,SUM(cast(gcod.GCOD_sumMoney as float)) cost from GroupCombineOperationDetail gcod where gcod.GCOD_GCI_combineNo =? + $vendor_sql group by GCOD_GCI_combineNo,GCOD_operationType,GCOD_subType"; $ret->cost_detail = $this->HT->query($sql, array($combineNo))->result(); $ret->cost_sum = array_sum(array_map(function ($ele){return $ele->cost;}, $ret->cost_detail)); diff --git a/webht/third_party/trippestOrderSync/models/orders_model.php b/webht/third_party/trippestOrderSync/models/orders_model.php index 43c0f299..42cdf5a3 100644 --- a/webht/third_party/trippestOrderSync/models/orders_model.php +++ b/webht/third_party/trippestOrderSync/models/orders_model.php @@ -374,12 +374,12 @@ class Orders_model extends CI_Model { return $this->GCI_SN; } - public function biz_groupcombineoperationdetail_cut($combineNo) + public function biz_groupcombineoperationdetail_cut($combineNo, $vei_sn) { $sql = "DELETE FROM GroupCombineOperationDetail - WHERE GCOD_GCI_combineNo = N?"; - $query = $this->HT->query($sql, array($combineNo)); + WHERE GCOD_GCI_combineNo = N? and GCOD_VEI_SN=? "; + $query = $this->HT->query($sql, array($combineNo, $vei_sn)); return $query; }