如何计算 Laravel 中的前几行余额
How to Calculate Previous Rows Balance in Laravel
我有一笔交易金额 table,其中包含以下数据:
我首先显示余额。
控制器代码
$invaccountstatements = DB::table('tranactions')->whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')->get();
Blade代码
@foreach($invaccountstatements as $invaccstatements)
<tr>
<td>{{$invaccstatements->id}}</th>
<td>{{$invaccstatements->acc_date}}</th>
<td>{{$invaccstatements->description}}</th>
<td style="text-align:right;"> {{number_format($invaccstatements->acc_credit, session('digitsformat'))}} </td>
<td style="text-align:right;">{{number_format($invaccstatements->acc_debit, session('digitsformat'))}}</td>
<td style="text-align:right;"><?php $chkbala = $invaccstatements->acc_credit - $invaccstatements->acc_debit; $tbalance += $chkbala;
echo number_format($tbalance, session('digitsformat'));?></td>
</tr>
@endforeach
接下来,我为此 Table 添加起始日期和截止日期搜索过滤器。
我搜索从日期 (09-06-16) 到日期 (20-06-16)。
我需要 Laravel 给出以下结果的查询。
您已经有了获取所有数据的查询,现在只需添加 whereDate()
。
$transactions = Transaction::whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')
->get();
使用您钟爱的查询生成器
$transactions = DB::table('transactions')
->whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')
->get();
开始日期的余额
$beforeFirstDay = DB::table('transactions')
->whereDate('date', '<=', '2016-06-09')
->get();
//do the same loop you and your friend were doing to calculate the balance
//It will give you starting balance
$originalBalance = 0;
foreach( $beforeFirstDay as $day ) {
$originalBalance = $originalBalance + ($day->credit - $day->debit);
}
我有一笔交易金额 table,其中包含以下数据:
我首先显示余额。
控制器代码
$invaccountstatements = DB::table('tranactions')->whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')->get();
Blade代码
@foreach($invaccountstatements as $invaccstatements)
<tr>
<td>{{$invaccstatements->id}}</th>
<td>{{$invaccstatements->acc_date}}</th>
<td>{{$invaccstatements->description}}</th>
<td style="text-align:right;"> {{number_format($invaccstatements->acc_credit, session('digitsformat'))}} </td>
<td style="text-align:right;">{{number_format($invaccstatements->acc_debit, session('digitsformat'))}}</td>
<td style="text-align:right;"><?php $chkbala = $invaccstatements->acc_credit - $invaccstatements->acc_debit; $tbalance += $chkbala;
echo number_format($tbalance, session('digitsformat'));?></td>
</tr>
@endforeach
接下来,我为此 Table 添加起始日期和截止日期搜索过滤器。
我搜索从日期 (09-06-16) 到日期 (20-06-16)。
我需要 Laravel 给出以下结果的查询。
您已经有了获取所有数据的查询,现在只需添加 whereDate()
。
$transactions = Transaction::whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')
->get();
使用您钟爱的查询生成器
$transactions = DB::table('transactions')
->whereDate('date', '>=', '2016-06-09')
->whereDate('date', '<=', '2016-06-20')
->get();
开始日期的余额
$beforeFirstDay = DB::table('transactions')
->whereDate('date', '<=', '2016-06-09')
->get();
//do the same loop you and your friend were doing to calculate the balance
//It will give you starting balance
$originalBalance = 0;
foreach( $beforeFirstDay as $day ) {
$originalBalance = $originalBalance + ($day->credit - $day->debit);
}