feat: 在线支付汇总增加合计计算; 修改查询计算避免计算数据缺失

mobile-first
lyt 5 years ago
parent 49a0d08bee
commit 09ee6e0b1a

@ -787,7 +787,6 @@ class PaymentService extends CI_Controller {
$data['from_date_year'], $data['to_date_year'], $data['from_date_year'], $data['to_date_year'],
$data['at_year'] $data['at_year']
); );
array_walk($data['data']['pay'], 'PaymentService::set_brandname');
$data['data']['refund'] = $this->note_model->total_by_method('refund', $data['data']['refund'] = $this->note_model->total_by_method('refund',
$data['from_date'], $data['to_date'], $data['from_date'], $data['to_date'],
@ -795,10 +794,10 @@ class PaymentService extends CI_Controller {
$data['from_date_year'], $data['to_date_year'], $data['from_date_year'], $data['to_date_year'],
$data['at_year'] $data['at_year']
); );
array_walk($data['data']['pay'], 'PaymentService::set_brandname');
array_walk($data['data']['refund'], 'PaymentService::set_brandname'); array_walk($data['data']['refund'], 'PaymentService::set_brandname');
$data['data']['income'] = array();
bcscale(4); bcscale(4);
$data['data']['income'] = array();
foreach ($data['data']['pay'] as $key => $pay) { foreach ($data['data']['pay'] as $key => $pay) {
$income_tmp = new stdClass(); $income_tmp = new stdClass();
foreach ($data['data']['refund'] as $key => $refund) { foreach ($data['data']['refund'] as $key => $refund) {
@ -809,12 +808,12 @@ class PaymentService extends CI_Controller {
$income_tmp->method_total_income_cmp = bcadd($pay->method_total_income_cmp, $refund->method_total_income_cmp); $income_tmp->method_total_income_cmp = bcadd($pay->method_total_income_cmp, $refund->method_total_income_cmp);
$income_tmp->year_method_total_income = bcadd($pay->year_method_total_income, $refund->year_method_total_income); $income_tmp->year_method_total_income = bcadd($pay->year_method_total_income, $refund->year_method_total_income);
$income_tmp->this_year_method_total_income = bcadd($pay->this_year_method_total_income, $refund->this_year_method_total_income); $income_tmp->this_year_method_total_income = bcadd($pay->this_year_method_total_income, $refund->this_year_method_total_income);
$income_tmp->quarter_rate = $income_tmp->method_total_income_cmp==0 ? 0 : $income_tmp->quarter_rate = $income_tmp->method_total_income_cmp==0 ? 100 :
bcdiv( bcdiv(
bcsub($income_tmp->method_total_income, $income_tmp->method_total_income_cmp), bcsub($income_tmp->method_total_income, $income_tmp->method_total_income_cmp),
($income_tmp->method_total_income_cmp) ($income_tmp->method_total_income_cmp)
)*100; )*100;
$income_tmp->year_rate = $income_tmp->year_method_total_income==0 ? 0 : $income_tmp->year_rate = $income_tmp->year_method_total_income==0 ? 100 :
bcdiv( bcdiv(
bcsub($income_tmp->method_total_income, $income_tmp->year_method_total_income), bcsub($income_tmp->method_total_income, $income_tmp->year_method_total_income),
($income_tmp->year_method_total_income) ($income_tmp->year_method_total_income)

@ -281,27 +281,27 @@ class Online_payment_note_model extends CI_Model {
OPN_entryAmountCNY , OPN_entryAmountCNY ,
OPN_completeTime OPN_completeTime
SELECT OPN_accountMethod SELECT isnull(cal.select_date_method,ISNULL(cal.last_method,ISNULL(cal.year_method, cal.this_year_method ))) as OPN_accountMethod
,method_total_income,method_total_income_cmp ,method_total_income,method_total_income_cmp
,isnull(year_method_total_income,0) year_method_total_income ,isnull(year_method_total_income,0) year_method_total_income
,this_year_method_total_income ,this_year_method_total_income
--,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, method_total_income), 1), '.00', '') method_total_income --,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, method_total_income), 1), '.00', '') method_total_income
--,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, method_total_income_cmp), 1), '.00', '') method_total_income_cmp --,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, method_total_income_cmp), 1), '.00', '') method_total_income_cmp
,CONVERT(decimal(10,2), ,case when ISNULL( method_total_income_cmp,0)=0 then 100 else CONVERT(decimal(10,2),
round( (method_total_income-method_total_income_cmp)/method_total_income_cmp*100 ,2 ) round( (method_total_income-method_total_income_cmp)/method_total_income_cmp*100 ,2 )
) AS quarter_rate ) end AS quarter_rate
--,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, isnull(year_method_total_income,0)), 1), '.00', '') year_method_total_income --,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, isnull(year_method_total_income,0)), 1), '.00', '') year_method_total_income
,CONVERT(decimal(10,2), ,case when ISNULL( year_method_total_income,0)=0 then 100 else CONVERT(decimal(10,2),
round( (method_total_income-year_method_total_income)/year_method_total_income*100 ,2 ) round( (method_total_income-year_method_total_income)/year_method_total_income*100 ,2 )
) AS year_rate ) end AS year_rate
--,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, this_year_method_total_income), 1), '.00', '') this_year_method_total_income --,REPLACE(CONVERT(VARCHAR, CONVERT(MONEY, this_year_method_total_income), 1), '.00', '') this_year_method_total_income
FROM FROM
( (
SELECT * SELECT *
FROM FROM
( (
SELECT OPN_accountMethod SELECT OPN_accountMethod,OPN_accountMethod select_date_method
,SUM( ,SUM(
ISNULL( CONVERT(decimal(10,2),OPN_entryAmountCNY), ISNULL( CONVERT(decimal(10,2),OPN_entryAmountCNY),
Tourmanager.dbo.GetSSJEFromSQJE( Tourmanager.dbo.GetSSJEFromSQJE(
@ -316,25 +316,7 @@ class Online_payment_note_model extends CI_Model {
and OPN_noticeType=@type and OPN_noticeType=@type
GROUP BY OPN_accountMethod GROUP BY OPN_accountMethod
) AS method ) AS method
INNER JOIN full join (
(
SELECT SUM(
[Tourmanager].[dbo].ZeroToOne(
ISNULL( CONVERT(decimal(10,2),OPN_entryAmountCNY),
Tourmanager.dbo.GetSSJEFromSQJE(
OPN_accountMethod,
REPLACE(OPN_currency, 'CNY', 'RMB'),
CONVERT(decimal(10,2),OPN_orderAmount)
)
)
)
) AS total_income
FROM @unique_opn
WHERE OPN_completeTime BETWEEN @from_date AND @to_date
and OPN_noticeType=@type
) AS total ON 1=1
inner join (
SELECT OPN_accountMethod last_method SELECT OPN_accountMethod last_method
,SUM( ,SUM(
[Tourmanager].[dbo].ZeroToOne( [Tourmanager].[dbo].ZeroToOne(
@ -353,7 +335,7 @@ class Online_payment_note_model extends CI_Model {
and OPN_noticeType=@type and OPN_noticeType=@type
GROUP BY OPN_accountMethod GROUP BY OPN_accountMethod
) as cmp on method.OPN_accountMethod=cmp.last_method ) as cmp on method.OPN_accountMethod=cmp.last_method
left join ( full join (
SELECT OPN_accountMethod year_method SELECT OPN_accountMethod year_method
,SUM( ,SUM(
[Tourmanager].[dbo].ZeroToOne( [Tourmanager].[dbo].ZeroToOne(
@ -372,7 +354,7 @@ class Online_payment_note_model extends CI_Model {
and OPN_noticeType=@type and OPN_noticeType=@type
GROUP BY OPN_accountMethod GROUP BY OPN_accountMethod
) as year_cmp on method.OPN_accountMethod=year_cmp.year_method ) as year_cmp on method.OPN_accountMethod=year_cmp.year_method
left join ( full join (
SELECT OPN_accountMethod this_year_method SELECT OPN_accountMethod this_year_method
,SUM( ,SUM(
[Tourmanager].[dbo].ZeroToOne( [Tourmanager].[dbo].ZeroToOne(

@ -147,7 +147,19 @@
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php foreach ($table as $kt => $method) { ?> <?php
$sum_total_income = 0;
$sum_method_total_income_cmp = 0;
$sum_year_method_total_income = 0;
$sum_this_year_method_total_income = 0;
$sum_quarter_rate = 0;
$sum_year_rate = 0;
foreach ($table as $kt => $method) {
$sum_total_income += $method->method_total_income;
$sum_method_total_income_cmp += $method->method_total_income_cmp;
$sum_year_method_total_income += $method->year_method_total_income;
$sum_this_year_method_total_income += $method->this_year_method_total_income;
?>
<tr> <tr>
<td><?php echo $method->brand_name ?></td> <td><?php echo $method->brand_name ?></td>
<td><?php echo number_format($method->method_total_income, 2, '.', ',') ?></td> <td><?php echo number_format($method->method_total_income, 2, '.', ',') ?></td>
@ -157,7 +169,27 @@
<td><?php echo number_format($method->year_rate, 2, '.', ',') . '%' ?></td> <td><?php echo number_format($method->year_rate, 2, '.', ',') . '%' ?></td>
<td><?php echo number_format($method->this_year_method_total_income, 2, '.', ',') ?></td> <td><?php echo number_format($method->this_year_method_total_income, 2, '.', ',') ?></td>
</tr> </tr>
<?php } ?> <?php }
$sum_quarter_rate = $sum_method_total_income_cmp==0 ? 0 :
bcdiv(
bcsub($sum_total_income, $sum_method_total_income_cmp),
($sum_method_total_income_cmp)
)*100;
$sum_year_rate = $sum_year_method_total_income==0 ? 0 :
bcdiv(
bcsub($sum_total_income, $sum_year_method_total_income),
($sum_year_method_total_income)
)*100;
?>
<tr>
<td>合计</td>
<td><?php echo number_format($sum_total_income, 2, '.', ',') ?></td>
<td><?php echo number_format($sum_method_total_income_cmp, 2, '.', ',') ?></td>
<td><?php echo number_format($sum_quarter_rate, 2, '.', ',') . '%' ?></td>
<td><?php echo number_format($sum_year_method_total_income, 2, '.', ',') ?></td>
<td><?php echo number_format($sum_year_rate, 2, '.', ',') . '%' ?></td>
<td><?php echo number_format($sum_this_year_method_total_income, 2, '.', ',') ?></td>
</tr>
</tbody> </tbody>
</table> </table>
<?php } ?> <?php } ?>

Loading…
Cancel
Save