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

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

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

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

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

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

Loading…
Cancel
Save