Trippest账单: 自定义产品计算

feature/trippest
lyt 6 years ago
parent b4f9528346
commit f8ff0f8eb0

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

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

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

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

Loading…
Cancel
Save