From 2a80f380e6a80a11feb35d17d803fa2f9b5fefa4 Mon Sep 17 00:00:00 2001 From: renshen <1005457301@qq.com> Date: Sat, 17 Oct 2026 08:57:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E5=AF=B9=E8=B4=A6?= =?UTF-8?q?=EF=BC=9A=E8=B4=A2=E5=8A=A1=E7=AB=AF=E6=95=B0=E6=8D=AE=E5=9C=A8?= =?UTF-8?q?=E6=9C=88=E4=BB=BD=E5=90=8E=E6=96=B0=E5=A2=9E=E3=80=8C=E5=AF=B9?= =?UTF-8?q?=E8=B4=A6=E4=BA=BA=E3=80=8D=E7=AD=9B=E9=80=89=20(#365)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对账人筛选取自终版货款对账的对账人列,按月过滤后生成选项;选择后供应商列表与比对明细同步过滤。 --- .../View/SupplierReconciliationPageData.php | 20 ++++++++++++++ .../finance-data.blade.php | 10 ++++++- .../Business/SupplierReconciliationTest.php | 27 +++++++++++++++++++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/modules/EcommerceFinance/View/SupplierReconciliationPageData.php b/modules/EcommerceFinance/View/SupplierReconciliationPageData.php index 6c5c56cd..62230520 100644 --- a/modules/EcommerceFinance/View/SupplierReconciliationPageData.php +++ b/modules/EcommerceFinance/View/SupplierReconciliationPageData.php @@ -52,6 +52,24 @@ class SupplierReconciliationPageData $month = ''; } + $reconcilers = []; + foreach ($mine as $row) { + $name = trim((string) ($row['reconciler'] ?? '')); + if ($name !== '') { + $reconcilers[$name] = true; + } + } + $reconcilers = array_keys($reconcilers); + sort($reconcilers); + + $reconciler = trim((string) request()->query('reconciler', '')); + if ($reconciler !== '') { + $mine = array_values(array_filter( + $mine, + static fn (array $row): bool => trim((string) ($row['reconciler'] ?? '')) === $reconciler, + )); + } + $suppliers = []; foreach ($mine as $row) { $name = trim((string) ($row['supplier'] ?? '')); @@ -83,6 +101,8 @@ class SupplierReconciliationPageData 'uploads' => $uploads, 'months' => $months, 'month' => $month, + 'reconcilers' => $reconcilers, + 'reconciler' => $reconciler, 'selectedSupplier' => $selected, 'detail' => $detail, 'statementTemplateUrl' => route('business.supplier-reconciliation.template'), diff --git a/resources/views/business/pages/supplier-reconciliation/finance-data.blade.php b/resources/views/business/pages/supplier-reconciliation/finance-data.blade.php index 2e40221c..d2ad3748 100644 --- a/resources/views/business/pages/supplier-reconciliation/finance-data.blade.php +++ b/resources/views/business/pages/supplier-reconciliation/finance-data.blade.php @@ -50,6 +50,14 @@ @endforeach + 对账人 + + 全部对账人 + @foreach ($reconcilers as $optionReconciler) + {{ $optionReconciler }} + @endforeach + + 供应商 请选择厂家 @@ -90,7 +98,7 @@ {{ $upload['uploaded_at'] ?? '—' }} {{ $upload ? number_format((int) ($upload['rows'] ?? 0)) : '—' }} - 查看比对 + 查看比对 @empty diff --git a/tests/Feature/Business/SupplierReconciliationTest.php b/tests/Feature/Business/SupplierReconciliationTest.php index c23754b7..4b8c095b 100644 --- a/tests/Feature/Business/SupplierReconciliationTest.php +++ b/tests/Feature/Business/SupplierReconciliationTest.php @@ -42,9 +42,36 @@ class SupplierReconciliationTest extends FeatureTestCase ->assertSeeText('厂家端数据') ->assertSeeText('厂家多') ->assertSeeText('取金额低的一方结算') + ->assertSeeText('对账人') ->assertSeeText('下载对账单模板'); } + public function test_finance_page_filters_suppliers_by_reconciler(): void + { + $store = app(SupplierPayableOverrideStore::class); + $companyId = (int) $this->company->id; + $store->save('final:supplier:payment-reconciliation', 'line:000001', [ + 'summary_month' => '2026-09', 'supplier' => '晨丰', 'skuCode' => 'ZSJ-1', + 'qty' => '2', 'unitPrice' => '128', 'amount' => '256', 'reconciler' => '张三', + ], $companyId, null); + $store->save('final:supplier:payment-reconciliation', 'line:000002', [ + 'summary_month' => '2026-09', 'supplier' => '鸣飞家具', 'skuCode' => 'SJ-1', + 'qty' => '1', 'unitPrice' => '96', 'amount' => '96', 'reconciler' => '李四', + ], $companyId, null); + + $this->loginAs() + ->get(route('business.pages.show', [ + 'section' => 'supplier-reconciliation', + 'page' => 'finance-data', + 'reconciler' => '张三', + ])) + ->assertOk() + ->assertSeeText('对账人') + ->assertSeeText('张三') + ->assertSeeText('晨丰') + ->assertDontSeeText('鸣飞家具'); + } + public function test_supplier_page_shows_uploads_and_return_rows(): void { $this->seedStatement('晨丰', [