CaiWuXiTong/modules/EcommerceFinance/View/BillOffsetPageData.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'],
];
}
}