36 lines
1.3 KiB
PHP
36 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\EcommerceFinance\View;
|
|
|
|
/** 账单冲减复用原始数据的订单售后费用明细,不重新推断科目。 */
|
|
class BillOffsetPageData
|
|
{
|
|
public function __construct(private readonly OrderDataPageData $orders)
|
|
{
|
|
}
|
|
|
|
public function page(): array
|
|
{
|
|
return ['view' => 'business.pages.order-data.bill-offset'] + $this->data();
|
|
}
|
|
|
|
public function data(?array $filters = null, ?int $page = null, ?int $limit = null): array
|
|
{
|
|
$source = $this->orders->afterSales($filters, $page, $limit, false);
|
|
$rows = $source['orderDataRows'];
|
|
$amounts = collect($rows->items())->pluck('account_500112');
|
|
// 未接入的科目值保留为空;只有本页金额都已知时才显示合计。
|
|
$amount = $amounts->isNotEmpty() && $amounts->every(static fn ($value): bool => is_numeric($value))
|
|
? round((float) $amounts->sum(), 2)
|
|
: null;
|
|
|
|
return [
|
|
'billOffsetRows' => $rows,
|
|
'billOffsetFilters' => $source['orderDataFilters'],
|
|
'billOffsetSummary' => ['count' => $rows->count(), 'amount' => $amount],
|
|
'billOffsetStatus' => $source['orderDataStatus']['X-Caiwu-Data-Status'] ?? null,
|
|
'billOffsetError' => $source['orderDataError'],
|
|
];
|
|
}
|
|
}
|