From be1eabfd1678d1d4e24f91e5bd9db15259079175 Mon Sep 17 00:00:00 2001
From: shanshi <3316401569@qq.com>
Date: Wed, 11 Nov 2026 19:36:25 +0800
Subject: [PATCH] feat: add Wangshang bank to account flow summary
Adds a separate Wangshang bank view to account flow summary and excludes Wangshang accounts from the bank-account view.
---
.../View/FinanceLedgerPageData.php | 4 +--
.../pages/financial-ledger/ledger.blade.php | 1 +
.../FinanceLedgerHeaderControlsTest.php | 26 ++++++++++++++++++-
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/modules/EcommerceFinance/View/FinanceLedgerPageData.php b/modules/EcommerceFinance/View/FinanceLedgerPageData.php
index 638768db..669460bf 100644
--- a/modules/EcommerceFinance/View/FinanceLedgerPageData.php
+++ b/modules/EcommerceFinance/View/FinanceLedgerPageData.php
@@ -88,7 +88,7 @@ class FinanceLedgerPageData
$openingDate = (string) config('finance_ledger.opening_date', '2026-10-17');
$transactionView = $this->transactionView();
$requestedFlowView = trim((string) request('flows_view', 'summary'));
- $flowView = in_array($requestedFlowView, ['summary', 'bank', 'non_store', 'daily'], true)
+ $flowView = in_array($requestedFlowView, ['summary', 'bank', 'non_store', 'wangshang', 'daily'], true)
? $requestedFlowView
: 'summary';
$requestedAccountView = trim((string) request('accounts_view', 'all'));
@@ -663,7 +663,7 @@ class FinanceLedgerPageData
$this->db()->table('fin_accounts as a'),
'a.account_short',
);
- $this->applyAccountCategoryScope($accountQuery, $view, 'a.account_short', 'a.account_type');
+ $this->applyAccountCategoryScope($accountQuery, $view, 'a.account_short', 'a.account_type', true);
foreach (['flows_company' => 'a.company_name', 'flows_account' => 'a.account_short'] as $param => $column) {
$value = trim((string) request($param, ''));
if ($value !== '') {
diff --git a/resources/views/business/pages/financial-ledger/ledger.blade.php b/resources/views/business/pages/financial-ledger/ledger.blade.php
index db7424b5..acdca8d3 100644
--- a/resources/views/business/pages/financial-ledger/ledger.blade.php
+++ b/resources/views/business/pages/financial-ledger/ledger.blade.php
@@ -1092,6 +1092,7 @@
账户汇总
银行账户
支付宝
+ 网商银行
按日流水
@if ($flowUsesAccountSummary && $canEditAccounts)
diff --git a/tests/Feature/Business/FinanceLedgerHeaderControlsTest.php b/tests/Feature/Business/FinanceLedgerHeaderControlsTest.php
index b806ab18..1ff70b0e 100644
--- a/tests/Feature/Business/FinanceLedgerHeaderControlsTest.php
+++ b/tests/Feature/Business/FinanceLedgerHeaderControlsTest.php
@@ -463,8 +463,18 @@ class FinanceLedgerHeaderControlsTest extends FeatureTestCase
$this->assertStringContainsString('>2026-10-17', $dailyHtml);
}
- public function test_account_flow_summary_separates_bank_accounts_and_alipay_only(): void
+ public function test_account_flow_summary_separates_bank_accounts_alipay_and_wangshang(): void
{
+ DB::connection('business_mirror')->table('fin_accounts')->insert([
+ 'company_name' => '丁公司',
+ 'account_short' => '账户丁网商',
+ 'bank_name' => '网商银行',
+ 'account_type' => '公户',
+ 'current_balance' => 0,
+ 'daily_available' => 0,
+ 'blocked_amount' => 0,
+ ]);
+
$bankHtml = $this->loginAs()->get($this->pageUrl([
'flows_view' => 'bank',
'flows_from' => '2026-10-01',
@@ -474,10 +484,12 @@ class FinanceLedgerHeaderControlsTest extends FeatureTestCase
$this->assertStringContainsString('>账户汇总', $bankHtml);
$this->assertStringContainsString('>银行账户', $bankHtml);
$this->assertStringContainsString('>支付宝', $bankHtml);
+ $this->assertStringContainsString('>网商银行', $bankHtml);
$this->assertStringNotContainsString('>非店铺账户', $bankHtml);
$this->assertStringContainsString('>按日流水', $bankHtml);
$this->assertStringContainsString('data-flow-summary-account="账户甲"', $bankHtml);
$this->assertStringNotContainsString('data-flow-summary-account="账户乙"', $bankHtml);
+ $this->assertStringNotContainsString('data-flow-summary-account="账户丁网商"', $bankHtml);
$nonStoreHtml = $this->loginAs()->get($this->pageUrl([
'flows_view' => 'non_store',
@@ -487,6 +499,18 @@ class FinanceLedgerHeaderControlsTest extends FeatureTestCase
$this->assertStringContainsString('data-flow-summary-account="账户乙"', $nonStoreHtml);
$this->assertStringNotContainsString('data-flow-summary-account="账户甲"', $nonStoreHtml);
+ $this->assertStringNotContainsString('data-flow-summary-account="账户丁网商"', $nonStoreHtml);
+
+ $wangshangHtml = $this->loginAs()->get($this->pageUrl([
+ 'flows_view' => 'wangshang',
+ 'flows_from' => '2026-10-01',
+ 'flows_to' => '2026-10-31',
+ ]))->assertOk()->getContent();
+
+ $this->assertStringContainsString('name="flows_view" value="wangshang"', $wangshangHtml);
+ $this->assertStringContainsString('data-flow-summary-account="账户丁网商"', $wangshangHtml);
+ $this->assertStringNotContainsString('data-flow-summary-account="账户甲"', $wangshangHtml);
+ $this->assertStringNotContainsString('data-flow-summary-account="账户乙"', $wangshangHtml);
}
public function test_account_directory_separates_bank_accounts_and_alipay_only(): void