业绩明细:「订单实付按应付/已付核对」标注在页面展示并纳入筛选与联动计数(此前只在库里有、页面不显示)

This commit is contained in:
yueyang 2026-10-15 14:59:44 +08:00
parent a4952dfa42
commit 1214fc365e

View File

@ -146,6 +146,7 @@ class Pages extends Controller
$basis['no_amount_remark'],
'无收款账单',
'订单实付按卖家实收核对',
'订单实付按应付/已付核对',
];
}
@ -1080,7 +1081,8 @@ class Pages extends Controller
// 未匹配原因列:未匹配行照旧;「订单实付按卖家实收核对」这类口径标识在已匹配行同样展示。
$row->unmatched_reason = $rawRemark === ''
? null
: (((($row->match_status ?? '') === '未匹配') || $rawRemark === '订单实付按卖家实收核对') ? $rawRemark : null);
: (((($row->match_status ?? '') === '未匹配')
|| in_array($rawRemark, ['订单实付按卖家实收核对', '订单实付按应付/已付核对'], true)) ? $rawRemark : null);
$row->remark = self::receiptDifferenceRemark($row);
if ($row->difference === null) {
@ -1140,13 +1142,15 @@ class Pages extends Controller
return;
}
// 「订单实付按卖家实收核对」是已匹配行的口径标识,不按未匹配过滤。
$query->where(function ($group) use ($labels): void {
// 双口径标识(卖家实收 / 应付已付)是已匹配行的口径标识,不按未匹配过滤。
$basisMarks = ['订单实付按卖家实收核对', '订单实付按应付/已付核对'];
$query->where(function ($group) use ($labels, $basisMarks): void {
$group->where(function ($unmatched) use ($labels): void {
$unmatched->where('match_status', '未匹配')->whereIn('remark', $labels);
});
if (in_array('订单实付按卖家实收核对', $labels, true)) {
$group->orWhere('remark', '订单实付按卖家实收核对');
$selected = array_values(array_intersect($labels, $basisMarks));
if ($selected !== []) {
$group->orWhereIn('remark', $selected);
}
});
}
@ -1392,10 +1396,12 @@ class Pages extends Controller
foreach ($rows as $value => $total) {
$counts[(string) $value] = (int) $total;
}
// 「订单实付按卖家实收核对」是已匹配行的口径标识,单独统计,保证下拉里能选到。
$marker = (clone $base)->where('remark', '订单实付按卖家实收核对')->count();
if ($marker > 0) {
$counts['订单实付按卖家实收核对'] = (int) $marker;
// 双口径标识打在已匹配行上,单独统计,保证下拉里能选到。
foreach (['订单实付按卖家实收核对', '订单实付按应付/已付核对'] as $basisMark) {
$marker = (clone $base)->where('remark', $basisMark)->count();
if ($marker > 0) {
$counts[$basisMark] = (int) $marker;
}
}
} elseif ($column !== 'remark') {
// 差额异常备注是页面级判定,不再按库里的标注列分组