From e7668536c10decdfd368c30f8d07e5ce238ac3df Mon Sep 17 00:00:00 2001 From: lyt Date: Thu, 5 Dec 2019 13:31:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9E=84=E5=BB=BA=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E6=B1=87=E6=80=BB=E8=A1=A8,=20?= =?UTF-8?q?=E5=92=8C=E5=9B=BE=E5=85=B0=E6=9C=B5=E8=B4=A2=E5=8A=A1=E5=AE=8C?= =?UTF-8?q?=E5=85=A8=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/TulanduoApi.php | 1 + .../controllers/vendor_money.php | 43 +++++++--- .../models/vendor_money_model.php | 72 ++++++++-------- .../views/vendor_money_sum.php | 82 +++++++++++-------- 4 files changed, 122 insertions(+), 76 deletions(-) diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index a924ee2d..0dee2332 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -1388,6 +1388,7 @@ class TulanduoApi extends CI_Controller return array( "故宫深度一日游(目的地)" => "BJSIC-44" ,"故宫深度游拼团(目的地)" => "BJSIC-44" + ,"故宫深度半日游(目的地)" => "BJSIC-44" ,"北京精品一日游(目的地)" => "BJSIC-41" ,"北京精品一日游(PVT)(目的地)" => "BJSIC-41" ,"北京精品两日游(目的地)" => "BJSIC-42" diff --git a/webht/third_party/trippestOrderSync/controllers/vendor_money.php b/webht/third_party/trippestOrderSync/controllers/vendor_money.php index 6cb3eda4..878a1fd8 100644 --- a/webht/third_party/trippestOrderSync/controllers/vendor_money.php +++ b/webht/third_party/trippestOrderSync/controllers/vendor_money.php @@ -116,7 +116,9 @@ class Vendor_money extends CI_Controller { "transfer_sum" => 0, "other_sum_cost" => 0, "other_sum" => 0, - "other_vendor_sum" => 0 + "other_vendor_sum" => 0, + "trippest_cost" => 0, + "vendor_cost" => 0 ) ); foreach ($final_table as $line => $row) { @@ -136,13 +138,26 @@ class Vendor_money extends CI_Controller { if ($sync['vendor_code'] != $vendor ) { continue; } - if (in_array($sync['GCI_combineNo'],$unique_sync_groupno)) { - $dumplicate_groupno[] = $sync; - continue; - } - $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']['trippest_sum'] = bcadd($ret['sync']['trippest_sum'], $sync['SyncHainaReceipt']); + $ret['sync']['vendor_sum'] = bcadd($ret['sync']['vendor_sum'], $sync['SyncAgencyReceipt']); + $ret['sync']['vendor_cost'] = bcadd($ret['sync']['vendor_cost'], $sync['SyncCombineCost']); + /** 利润 */ + $ret['sync']['total_profit'] = bcsub( + bcadd($ret['sync']['trippest_sum'], $ret['sync']['vendor_sum']), + $ret['sync']['vendor_cost']); + /** 利润分成 */ + $ret['sync']['vendor_profit'] = bcmul($ret['sync']['total_profit'], $vendor_sourcetype[strval($sync['vendor_code'])]["profit_rate"]); + $ret['sync']['trippest_profit'] = bcmul($ret['sync']['total_profit'], bcsub(1, $vendor_sourcetype[strval($sync['vendor_code'])]["profit_rate"]) ); + /** Trippest应付地接 */ + $ret['sync']['payout'] = bcsub(bcadd($ret['sync']['vendor_cost'], $ret['sync']['vendor_profit'] ), $ret['sync']['vendor_sum']); + + // if (in_array($sync['GCI_combineNo'],$unique_sync_groupno)) { + // $dumplicate_groupno[] = $sync; + // continue; + // } + // $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']); } $result["money"][strval($vendor)] = $ret; $result["money"][strval($vendor)]["vendor_code"] = $vendor; @@ -154,8 +169,11 @@ class Vendor_money extends CI_Controller { $result['col_sum']['trippest']['sum_vendor_sum'] = bcadd($result['col_sum']['trippest']['sum_vendor_sum'], $ret["trippest"]['vendor_sum']); $result['col_sum']['trippest']['sum_other'] = bcadd($result['col_sum']['trippest']['sum_other'], $ret['trippest']['other_sum']); - $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']['sync']['sum_price_sum'] = bcadd($result['col_sum']['sync']['sum_price_sum'], + bcadd($ret['sync']['trippest_sum'], $ret["sync"]['vendor_sum'])); + $result['col_sum']['sync']['sum_cost_sum'] = bcadd($result['col_sum']['sync']['sum_cost_sum'], $ret["sync"]['vendor_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( @@ -179,8 +197,13 @@ class Vendor_money extends CI_Controller { $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']['sync']['sum_profit'] = bcadd($result['col_sum']['sync']['sum_profit'], $vmi['sync']['total_profit']); + $result['col_sum']['sync']['sum_trippest_profit'] = bcadd($result['col_sum']['sync']['sum_trippest_profit'], $vmi['sync']['trippest_profit']); + $result['col_sum']['sync']['sum_vendor_profit'] = bcadd($result['col_sum']['sync']['sum_vendor_profit'], $vmi['sync']['vendor_profit']); + /** 应付总计 */ $result['col_sum']['trippest']['sum_payout'] = bcadd($result['col_sum']['trippest']['sum_payout'], $vmi['trippest']['payout']); + $result['col_sum']['sync']['sum_payout'] = bcadd($result['col_sum']['sync']['sum_payout'], $vmi['sync']['payout']); } // 财务表成本和实际成本不相等 $result['diff_cost'] = $this->money_model->report_tour_diff($start_date, $end_date, implode(',', $vendors)); diff --git a/webht/third_party/trippestOrderSync/models/vendor_money_model.php b/webht/third_party/trippestOrderSync/models/vendor_money_model.php index 48992d58..b8d5fa64 100644 --- a/webht/third_party/trippestOrderSync/models/vendor_money_model.php +++ b/webht/third_party/trippestOrderSync/models/vendor_money_model.php @@ -492,38 +492,46 @@ class Vendor_money_model extends CI_Model { public function get_sync_price_cost($start_date, $end_date, $all_vendor) { - $sql = "SELECT group_cost.GCI_VEI_SN vendor_code, - GCI_combineNo, - (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 cost - ,(select SUM(CONVERT(float, GCI_priceCNY)) from GroupCombineInfo where GCI_combineNo=group_cost.GCI_combineNo - ) as receive_price - ,(select SUM(CONVERT(float, GCI_agencyReceipt)) from GroupCombineInfo where GCI_combineNo=group_cost.GCI_combineNo - ) as agency_receive_price - FROM - (SELECT case when gci.GCI_combineNo is null then '1' - when gci.GCI_combineNo='cancel' then convert(varchar(10),gci.GCI_SN) - else gci.GCI_combineNo end - as GCI_combineNo - ,GCI_VEI_SN - FROM GroupCombineInfo gci - 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 case when gci.GCI_combineNo is null then '1' - when gci.GCI_combineNo='cancel' then convert(varchar(10),gci.GCI_SN) - else gci.GCI_combineNo end - ,GCI_VEI_SN - ) AS group_cost - order by GCI_combineNo desc"; + $sql = "SELECT + SUM(combine.SyncHainaReceipt) as SyncHainaReceipt, + SUM(combine.SyncAgencyReceipt) as SyncAgencyReceipt, + SUM(combine.SyncCombineCost) as SyncCombineCost, + combine.GCI_VEI_SN as vendor_code + from ( + select + SUM(gri_coli.SyncPrice) as SyncPrice, + SUM(gri_coli.SyncAgencyReceipt) as SyncAgencyReceipt, + SUM(gri_coli.SyncHainaReceipt) as SyncHainaReceipt, + (select SUM(CONVERT(decimal(10,2), gcod.GCOD_sumMoney)) total_cost + from GroupCombineOperationDetail gcod + where gcod.GCOD_GCI_combineNo=gri_coli.GCI_combineNo and gcod.GCOD_VEI_SN=gri_coli.GCI_VEI_SN + ) as SyncCombineCost, + gri_coli.GCI_combineNo, + gri_coli.GCI_VEI_SN + from ( + select + convert(decimal(10,2),isnull(gci.GCI_priceCNY,0)) as SyncPrice, + case when COLI_OPI_ID=435 then CONVERT(decimal(10,2),isnull(gci.GCI_priceCNY,0)) + else convert(decimal(10,2),isnull(gci.GCI_agencyReceipt,0)) end + as SyncAgencyReceipt, + case when COLI_OPI_ID=435 then 0 + else (convert(decimal(10,2),isnull(gci.GCI_priceCNY,0))-convert(decimal(10,2),isnull(gci.GCI_agencyReceipt,0))) end + as SyncHainaReceipt, + GCI_createTime as lastSynsTime, + GCI_combineNo, + GCI_VEI_SN + from GroupCombineInfo gci + inner join BIZ_ConfirmLineInfo coli on COLI_GRI_SN=GCI_GRI_SN + where + GCI_travelDate between '$start_date' and '$end_date' + and COLI_State<>50 + and isnull(GCI_combineNo,'') not in ('','cancel','forbidden') + ) as gri_coli + group by GCI_combineNo, + GCI_VEI_SN + ) as combine + group by combine.GCI_VEI_SN + order by vendor_code"; $query = $this->HT->query($sql); return $query->result_array(); } diff --git a/webht/third_party/trippestOrderSync/views/vendor_money_sum.php b/webht/third_party/trippestOrderSync/views/vendor_money_sum.php index b247924c..938d6d32 100644 --- a/webht/third_party/trippestOrderSync/views/vendor_money_sum.php +++ b/webht/third_party/trippestOrderSync/views/vendor_money_sum.php @@ -273,20 +273,21 @@ - - - - - - - + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + @@ -313,18 +311,21 @@ ?> - - - - + + + + - - - + @@ -339,15 +340,27 @@

实际总成本

+ @@ -356,6 +369,7 @@ +
目的地总营收:①海纳代收+②地接代收总成本:③海纳成本+④地接成本⑤利润⑥海纳利润⑦地接利润⑧海纳应付地接目的地总营收总成本⑤利润⑥海纳利润⑦地接利润⑧海纳应付地接
①海纳代收②地接代收①+②③海纳成本④地接成本
合计
-

财务表总成本

+

财务表读取总成本

  1. 数据为空: 虚拟订单没有团号, 无法计算. 如:
    • TA导游奖励计入成本的虚拟订单. 人工检查金额正确之后, 此处可忽略该团.
    • +
    • 团号修改后无法匹配.
    • +
    • HT Trippest小组不存在该产品, 可能在Day Trip中或其他小组下, Trippest中应是产品最全的.
+

财务表计算总成本

+ +