feat: 构建同步数据的汇总表, 和图兰朵财务完全一致

feature/trippest
lyt 6 years ago
parent 773bf0a244
commit e7668536c1

@ -1388,6 +1388,7 @@ class TulanduoApi extends CI_Controller
return array( return array(
"故宫深度一日游(目的地)" => "BJSIC-44" "故宫深度一日游(目的地)" => "BJSIC-44"
,"故宫深度游拼团(目的地)" => "BJSIC-44" ,"故宫深度游拼团(目的地)" => "BJSIC-44"
,"故宫深度半日游(目的地)" => "BJSIC-44"
,"北京精品一日游(目的地)" => "BJSIC-41" ,"北京精品一日游(目的地)" => "BJSIC-41"
,"北京精品一日游PVT目的地" => "BJSIC-41" ,"北京精品一日游PVT目的地" => "BJSIC-41"
,"北京精品两日游(目的地)" => "BJSIC-42" ,"北京精品两日游(目的地)" => "BJSIC-42"

@ -116,7 +116,9 @@ class Vendor_money extends CI_Controller {
"transfer_sum" => 0, "transfer_sum" => 0,
"other_sum_cost" => 0, "other_sum_cost" => 0,
"other_sum" => 0, "other_sum" => 0,
"other_vendor_sum" => 0 "other_vendor_sum" => 0,
"trippest_cost" => 0,
"vendor_cost" => 0
) )
); );
foreach ($final_table as $line => $row) { foreach ($final_table as $line => $row) {
@ -136,13 +138,26 @@ class Vendor_money extends CI_Controller {
if ($sync['vendor_code'] != $vendor ) { if ($sync['vendor_code'] != $vendor ) {
continue; continue;
} }
if (in_array($sync['GCI_combineNo'],$unique_sync_groupno)) { $ret['sync']['trippest_sum'] = bcadd($ret['sync']['trippest_sum'], $sync['SyncHainaReceipt']);
$dumplicate_groupno[] = $sync; $ret['sync']['vendor_sum'] = bcadd($ret['sync']['vendor_sum'], $sync['SyncAgencyReceipt']);
continue; $ret['sync']['vendor_cost'] = bcadd($ret['sync']['vendor_cost'], $sync['SyncCombineCost']);
} /** 利润 */
$unique_sync_groupno[] = $sync['GCI_combineNo']; $ret['sync']['total_profit'] = bcsub(
$ret['sync']['price_sum'] = bcadd($ret['sync']['price_sum'], $sync['receive_price']); bcadd($ret['sync']['trippest_sum'], $ret['sync']['vendor_sum']),
$ret['sync']['cost_sum'] = bcadd($ret['sync']['cost_sum'], $sync['cost']); $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)] = $ret;
$result["money"][strval($vendor)]["vendor_code"] = $vendor; $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_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']['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_trippest_sum'] = bcadd($result['col_sum']['sync']['sum_trippest_sum'], $ret['sync']['trippest_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_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_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( $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_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']['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']['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)); $result['diff_cost'] = $this->money_model->report_tour_diff($start_date, $end_date, implode(',', $vendors));

@ -492,38 +492,46 @@ class Vendor_money_model extends CI_Model {
public function get_sync_price_cost($start_date, $end_date, $all_vendor) public function get_sync_price_cost($start_date, $end_date, $all_vendor)
{ {
$sql = "SELECT group_cost.GCI_VEI_SN vendor_code, $sql = "SELECT
GCI_combineNo, SUM(combine.SyncHainaReceipt) as SyncHainaReceipt,
(SELECT isnull(SUM(CONVERT(float, isnull(gcod.GCOD_sumMoney,0))),0) SUM(combine.SyncAgencyReceipt) as SyncAgencyReceipt,
FROM GroupCombineOperationDetail gcod SUM(combine.SyncCombineCost) as SyncCombineCost,
WHERE gcod.GCOD_GCI_combineNo=GCI_combineNo combine.GCI_VEI_SN as vendor_code
AND gcod.GCOD_operationType<> 'otherReceives' from (
) AS cost select
,(select SUM(CONVERT(float, GCI_priceCNY)) from GroupCombineInfo where GCI_combineNo=group_cost.GCI_combineNo SUM(gri_coli.SyncPrice) as SyncPrice,
) as receive_price SUM(gri_coli.SyncAgencyReceipt) as SyncAgencyReceipt,
,(select SUM(CONVERT(float, GCI_agencyReceipt)) from GroupCombineInfo where GCI_combineNo=group_cost.GCI_combineNo SUM(gri_coli.SyncHainaReceipt) as SyncHainaReceipt,
) as agency_receive_price (select SUM(CONVERT(decimal(10,2), gcod.GCOD_sumMoney)) total_cost
FROM from GroupCombineOperationDetail gcod
(SELECT case when gci.GCI_combineNo is null then '1' where gcod.GCOD_GCI_combineNo=gri_coli.GCI_combineNo and gcod.GCOD_VEI_SN=gri_coli.GCI_VEI_SN
when gci.GCI_combineNo='cancel' then convert(varchar(10),gci.GCI_SN) ) as SyncCombineCost,
else gci.GCI_combineNo end gri_coli.GCI_combineNo,
as GCI_combineNo gri_coli.GCI_VEI_SN
,GCI_VEI_SN from (
FROM GroupCombineInfo gci select
WHERE 1=1 convert(decimal(10,2),isnull(gci.GCI_priceCNY,0)) as SyncPrice,
AND GCI_VEI_SN IN ($all_vendor) case when COLI_OPI_ID=435 then CONVERT(decimal(10,2),isnull(gci.GCI_priceCNY,0))
AND EXISTS else convert(decimal(10,2),isnull(gci.GCI_agencyReceipt,0)) end
( SELECT 1 as SyncAgencyReceipt,
FROM CK_GroupInfo case when COLI_OPI_ID=435 then 0
WHERE CGI_Checked=1 else (convert(decimal(10,2),isnull(gci.GCI_priceCNY,0))-convert(decimal(10,2),isnull(gci.GCI_agencyReceipt,0))) end
AND CGI_GRI_SN=GCI_GRI_SN as SyncHainaReceipt,
AND CGI_ArriveDate BETWEEN '$start_date' AND '$end_date') GCI_createTime as lastSynsTime,
group by case when gci.GCI_combineNo is null then '1' GCI_combineNo,
when gci.GCI_combineNo='cancel' then convert(varchar(10),gci.GCI_SN) GCI_VEI_SN
else gci.GCI_combineNo end from GroupCombineInfo gci
,GCI_VEI_SN inner join BIZ_ConfirmLineInfo coli on COLI_GRI_SN=GCI_GRI_SN
) AS group_cost where
order by GCI_combineNo desc"; 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); $query = $this->HT->query($sql);
return $query->result_array(); return $query->result_array();
} }

@ -273,20 +273,21 @@
<table class="table table-bordered table-hover"> <table class="table table-bordered table-hover">
<thead> <thead>
<tr> <tr>
<th>目的地</th> <th rowspan="2">目的地</th>
<th>总营收:①海纳代收+②地接代收</th> <th colspan="3">总营收</th>
<th>总成本:③海纳成本+④地接成本</th> <th colspan="2">总成本</th>
<th>⑤利润</th> <th rowspan="2">⑤利润</th>
<th>⑥海纳利润</th> <th rowspan="2">⑥海纳利润</th>
<th>⑦地接利润</th> <th rowspan="2">⑦地接利润</th>
<th>⑧海纳应付地接</th> <th rowspan="2">⑧海纳应付地接</th>
</tr>
<tr>
<th>①海纳代收</th>
<th>②地接代收</th>
<th>①+②</th>
<th>③海纳成本</th>
<th>④地接成本</th>
</tr> </tr>
<!-- <tr>
<th >①海纳代收</th>
<th >②地接代收</th>
<th rowspan="2">③海纳成本</th>
<th rowspan="2">④地接成本</th>
</tr> -->
</thead> </thead>
<tbody> <tbody>
<?php if (!empty($money)) { <?php if (!empty($money)) {
@ -294,18 +295,15 @@
?> ?>
<tr> <tr>
<td class="text-left"><?php echo $sync['vendor_name'] ?></td> <td class="text-left"><?php echo $sync['vendor_name'] ?></td>
<!-- <td><?php //echo $sync['sync']['trippest_sum'] <td><?php echo $sync['sync']['trippest_sum'] ?></td>
?></td> --> <td><?php echo $sync['sync']['vendor_sum'] ?></td>
<td><?php echo $sync['sync']['price_sum'] ?></td> <td><?php echo bcadd($sync['sync']['trippest_sum'], $sync['sync']['vendor_sum']) ?></td>
<td><?php echo $sync['sync']['cost_sum'] ?></td> <td><?php echo $sync['sync']['trippest_cost'] ?></td>
<td><?php // echo $sync['vendor_cost'] <td><?php echo $sync['sync']['vendor_cost'] ?></td>
?></td> <td><?php echo $sync['sync']['total_profit'] ?></td>
<td><?php // echo $sync['sync']['total_profit'] <td><?php echo $sync['sync']['trippest_profit'] ?></td>
?></td> <td><?php echo $sync['sync']['vendor_profit'] ?></td>
<td><?php // echo $sync['sync']['trippest_profit'] <td><?php echo $sync['sync']['payout'] ?></td>
?></td>
<td><?php // echo $sync['sync']['vendor_profit']
?></td>
</tr> </tr>
<?php } <?php }
} ?> } ?>
@ -313,18 +311,21 @@
?> ?>
<tr class="text-bold"> <tr class="text-bold">
<td class="text-left">合计</td> <td class="text-left">合计</td>
<!-- <td><?php //echo $col_sum['sync']['sum_trippest_sum'] <td><?php echo $col_sum['sync']['sum_trippest_sum']
?></td> --> ?></td>
<td><?php echo $col_sum['sync']['sum_price_sum'] ?></td> <td><?php echo $col_sum['sync']['sum_vendor_sum'] ?></td>
<td><?php echo $col_sum['sync']['sum_cost_sum'] ?></td> <td><?php echo $col_sum['sync']['sum_price_sum']
<td><?php // echo $col_sum['sync']['sum_vendor_cost'] ?></td>
<td></td>
<td><?php echo $col_sum['sync']['sum_cost_sum']
?></td> ?></td>
<td><?php // echo $col_sum['sync']['sum_profit'] <td><?php echo $col_sum['sync']['sum_profit']
?></td> ?></td>
<td><?php // echo $col_sum['sync']['sum_trippest_profit'] <td><?php echo $col_sum['sync']['sum_trippest_profit']
?></td> ?></td>
<td><?php // echo $col_sum['sync']['sum_vendor_profit'] <td><?php echo $col_sum['sync']['sum_vendor_profit']
?></td> ?></td>
<td><?php echo $col_sum['sync']['sum_payout'] ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
@ -339,15 +340,27 @@
<p class="text-center"> 实际总成本</p> <p class="text-center"> 实际总成本</p>
</th> </th>
<th class="text-left"> <th class="text-left">
<p class="text-center"> 财务表总成本</p> <p class="text-center"> 财务表读取总成本</p>
<ol class="info-primary"> <ol class="info-primary">
<li> 数据为空: 虚拟订单没有团号, 无法计算. 如: <li> 数据为空: 虚拟订单没有团号, 无法计算. 如:
<ul> <ul>
<li> TA导游奖励计入成本的虚拟订单. 人工检查金额正确之后, 此处可忽略该团. </li> <li> TA导游奖励计入成本的虚拟订单. 人工检查金额正确之后, 此处可忽略该团. </li>
<li> 团号修改后无法匹配. </li>
<li> HT Trippest小组不存在该产品, 可能在Day Trip中或其他小组下, Trippest中应是产品最全的. </li>
</ul> </ul>
</li> </li>
</ol> </ol>
</th> </th>
<th class="text-left">
<p class="text-center"> 财务表计算总成本</p>
<!-- <ol class="info-primary">
<li> 数据为空: 虚拟订单没有团号, 无法计算. 如:
<ul>
<li> TA导游奖励计入成本的虚拟订单. 人工检查金额正确之后, 此处可忽略该团. </li>
</ul>
</li>
</ol> -->
</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -356,6 +369,7 @@
<td><?php echo $diff['gci_no'] ?></td> <td><?php echo $diff['gci_no'] ?></td>
<td><?php echo $diff['total_cost'] ?></td> <td><?php echo $diff['total_cost'] ?></td>
<td><?php echo $diff['report_total_cost0'] ?></td> <td><?php echo $diff['report_total_cost0'] ?></td>
<td><?php echo $diff['report_cost'] ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>

Loading…
Cancel
Save