refactor: export ledger snapshot reuse model totals
This commit is contained in:
@@ -458,23 +458,14 @@ class PlatformOrderController extends Controller
|
|||||||
fputcsv($out, ['payable_amount', number_format((float) ($order->payable_amount ?? 0), 2, '.', '')]);
|
fputcsv($out, ['payable_amount', number_format((float) ($order->payable_amount ?? 0), 2, '.', '')]);
|
||||||
fputcsv($out, ['paid_amount', number_format((float) ($order->paid_amount ?? 0), 2, '.', '')]);
|
fputcsv($out, ['paid_amount', number_format((float) ($order->paid_amount ?? 0), 2, '.', '')]);
|
||||||
|
|
||||||
// 汇总字段:对账/退款快速口径
|
// 汇总字段:对账/退款快速口径(复用模型统一口径,避免控制器内重复计算导致不一致)
|
||||||
$receiptTotal = 0.0;
|
$receiptTotal = (float) $order->receiptTotal();
|
||||||
foreach ($paymentReceipts as $r) {
|
$refundTotal = (float) $order->refundTotal();
|
||||||
$receiptTotal += (float) (data_get($r, 'amount') ?? 0);
|
|
||||||
}
|
|
||||||
$refundTotal = 0.0;
|
|
||||||
foreach ($refundReceipts as $r) {
|
|
||||||
$refundTotal += (float) (data_get($r, 'amount') ?? 0);
|
|
||||||
}
|
|
||||||
$delta = $receiptTotal - (float) ($order->paid_amount ?? 0);
|
$delta = $receiptTotal - (float) ($order->paid_amount ?? 0);
|
||||||
|
|
||||||
$tol = (float) config('saasshop.amounts.tolerance', 0.01);
|
$tol = (float) config('saasshop.amounts.tolerance', 0.01);
|
||||||
|
|
||||||
$tolCents = (int) round($tol * 100);
|
$reconcileMismatch = (bool) $order->isReconcileMismatch();
|
||||||
$tolCents = max(1, $tolCents);
|
|
||||||
$deltaCents = (int) round($delta * 100);
|
|
||||||
$reconcileMismatch = $receiptTotal > 0 && abs($deltaCents) >= $tolCents;
|
|
||||||
|
|
||||||
fputcsv($out, ['receipt_total', number_format($receiptTotal, 2, '.', '')]);
|
fputcsv($out, ['receipt_total', number_format($receiptTotal, 2, '.', '')]);
|
||||||
fputcsv($out, ['refund_total', number_format($refundTotal, 2, '.', '')]);
|
fputcsv($out, ['refund_total', number_format($refundTotal, 2, '.', '')]);
|
||||||
|
|||||||
Reference in New Issue
Block a user