diff --git a/app/Http/Controllers/Business/Pages.php b/app/Http/Controllers/Business/Pages.php
index 99e3c26d..eb77911a 100644
--- a/app/Http/Controllers/Business/Pages.php
+++ b/app/Http/Controllers/Business/Pages.php
@@ -62,7 +62,12 @@ class Pages extends Controller
return $this->redirectToPage($sectionConfig, $pages->first());
}
- $pageConfig = $pages->firstWhere('slug', $page);
+ $pageConfig = $pages
+ ->flatMap(fn (array $configuredPage) => [
+ $configuredPage,
+ ...($configuredPage['children'] ?? []),
+ ])
+ ->firstWhere('slug', $page);
abort_if(empty($pageConfig), 404);
diff --git a/resources/views/business/pages/supplier-payables/board-deductions.blade.php b/resources/views/business/pages/supplier-payables/board-deductions.blade.php
new file mode 100644
index 00000000..47322a53
--- /dev/null
+++ b/resources/views/business/pages/supplier-payables/board-deductions.blade.php
@@ -0,0 +1,190 @@
+
diff --git a/resources/views/business/pages/supplier-payables/delivery-unpriced.blade.php b/resources/views/business/pages/supplier-payables/delivery-unpriced.blade.php
index dadf32be..dccdc091 100644
--- a/resources/views/business/pages/supplier-payables/delivery-unpriced.blade.php
+++ b/resources/views/business/pages/supplier-payables/delivery-unpriced.blade.php
@@ -40,20 +40,45 @@
diff --git a/resources/views/business/pages/supplier-payables/return-unpriced.blade.php b/resources/views/business/pages/supplier-payables/return-unpriced.blade.php
index 07f7a6ec..f5e29d0c 100644
--- a/resources/views/business/pages/supplier-payables/return-unpriced.blade.php
+++ b/resources/views/business/pages/supplier-payables/return-unpriced.blade.php
@@ -20,7 +20,7 @@
{{-- 筛选栏 --}}
-
+
@@ -41,12 +41,11 @@
加载中...
-
-
+
-
+
@{{ formatMoney(scope.row.unit_price) }}
@@ -63,12 +62,20 @@
@{{ formatMoney(scope.row.guess_amount) }}
+
+ @{{ scope.row.supplier_barcode || '-' }}
+
+
+ @{{ scope.row.title || '-' }}
+
-
-
+
+
+ @{{ scope.row.original_barcode || '-' }}
+
@{{ scope.row.labels }}
@@ -76,6 +83,9 @@
+
+ @{{ scope.row.reconciler || '-' }}
+
diff --git a/resources/views/business/pages/supplier-payables/supplier-payables-report.blade.php b/resources/views/business/pages/supplier-payables/supplier-payables-report.blade.php
new file mode 100644
index 00000000..51ba93fd
--- /dev/null
+++ b/resources/views/business/pages/supplier-payables/supplier-payables-report.blade.php
@@ -0,0 +1,314 @@
+
diff --git a/tests/Feature/Business/SupplierPayablePagesTest.php b/tests/Feature/Business/SupplierPayablePagesTest.php
new file mode 100644
index 00000000..5ca342d3
--- /dev/null
+++ b/tests/Feature/Business/SupplierPayablePagesTest.php
@@ -0,0 +1,106 @@
+user->attachPermission(
+ Permission::where('name', 'read-admin-panel')->firstOrFail()
+ );
+ }
+
+ public function testDeliveryUnpricedPageUsesItsOwnTwentyColumnTable()
+ {
+ $this->grantAdminPermission();
+
+ $response = $this->loginAs()->get(route('business.pages.show', [
+ 'section' => 'supplier-payables',
+ 'page' => 'delivery-unpriced',
+ ]));
+
+ $response
+ ->assertOk()
+ ->assertSee('id="delivery-unpriced-app"', false)
+ ->assertSee('来源单号')
+ ->assertSee('单据编号(采购单号)')
+ ->assertSee('负责人')
+ ->assertSee('public/js/ecommerce-finance/delivery-unpriced.min.js', false)
+ ->assertDontSee('class="business-blank-page"', false);
+
+ $this->assertSame(20, substr_count($response->getContent(), '
grantAdminPermission();
+
+ $response = $this->loginAs()->get(route('business.pages.show', [
+ 'section' => 'supplier-payables',
+ 'page' => 'return-unpriced',
+ ]));
+
+ $response
+ ->assertOk()
+ ->assertSee('id="return-unpriced-app"', false)
+ ->assertSee('明细供应商')
+ ->assertSee('供应商条码')
+ ->assertSee('对账人')
+ ->assertSee('public/js/ecommerce-finance/return-unpriced.min.js', false)
+ ->assertDontSee('class="business-blank-page"', false);
+
+ $this->assertSame(20, substr_count($response->getContent(), 'grantAdminPermission();
+
+ $response = $this->loginAs()->get(route('business.pages.show', [
+ 'section' => 'supplier-payables',
+ 'page' => 'board-deductions',
+ ]));
+
+ $response
+ ->assertOk()
+ ->assertSee('class="supplier-board-table"', false)
+ ->assertSee('入库日期')
+ ->assertSee('出库备注')
+ ->assertSee('送货单号')
+ ->assertDontSee('class="business-blank-page"', false);
+
+ preg_match_all('/)/', $response->getContent(), $headers);
+
+ $this->assertCount(17, $headers[0]);
+ }
+
+ public function testSupplierPayablesReportPageUsesItsOwnThirtyFourColumnGroupedTable()
+ {
+ $this->grantAdminPermission();
+
+ $response = $this->loginAs()->get(route('business.pages.show', [
+ 'section' => 'supplier-payables',
+ 'page' => 'supplier-payables-report',
+ ]));
+
+ $response
+ ->assertOk()
+ ->assertSee('class="supplier-payables-report-table"', false)
+ ->assertSee('已销账供应商')
+ ->assertSee('本月采购金额')
+ ->assertSee(' | 加 | ', false)
+ ->assertSee('单位:元 | ', false)
+ ->assertSee('供应商余额 | ', false)
+ ->assertSee('最晚出账单时间(新执行标准)')
+ ->assertDontSee('class="business-blank-page"', false);
+
+ preg_match_all('/)/', $response->getContent(), $columns);
+
+ $this->assertCount(34, $columns[0]);
+ }
+
+}