diff --git a/app/Listeners/Menu/ShowInAdmin.php b/app/Listeners/Menu/ShowInAdmin.php index c2a56afa..fce6be26 100644 --- a/app/Listeners/Menu/ShowInAdmin.php +++ b/app/Listeners/Menu/ShowInAdmin.php @@ -52,7 +52,13 @@ class ShowInAdmin public static function groupPayables(array $navigation): array { - $keys = ['supplier-payables-final', 'courier-payables-final', 'supplier-payables', 'courier-payables', 'raw-board-payables', + $legacyKeys = ['supplier-payables-final', 'courier-payables-final']; + $navigation = array_values(array_filter( + $navigation, + static fn (array $section): bool => ! in_array($section['slug'], $legacyKeys, true) + )); + + $keys = ['supplier-payables', 'courier-payables', 'raw-board-payables', 'lamination-factory-payables', 'paper-materials', 'edge-banding-materials']; $children = array_values(array_filter($navigation, static fn (array $section): bool => in_array($section['slug'], $keys, true))); if ($children === []) { diff --git a/tests/Unit/View/PayablesGroupTest.php b/tests/Unit/View/PayablesGroupTest.php index acf0c943..a1d2efc8 100644 --- a/tests/Unit/View/PayablesGroupTest.php +++ b/tests/Unit/View/PayablesGroupTest.php @@ -16,8 +16,15 @@ class PayablesGroupTest extends TestCase $slugs = array_column($grouped, 'slug'); $index = array_search('payable-items', $slugs, true); $this->assertSame('store-receivables', $slugs[$index - 1]); - $this->assertCount(8, $grouped[$index]['sections']); - $this->assertSame(['供应商应付(终版)', '快递应付(终版)'], array_column(array_slice($grouped[$index]['sections'], 0, 2), 'title')); + $this->assertCount(6, $grouped[$index]['sections']); + $this->assertSame(['供应商应付', '快递应付'], array_column(array_slice($grouped[$index]['sections'], 0, 2), 'title')); + $this->assertSame( + [], + array_intersect( + ['supplier-payables-final', 'courier-payables-final'], + array_column($grouped[$index]['sections'], 'slug') + ) + ); $this->assertContains('inventory-management', $slugs); foreach ($grouped[$index]['sections'] as $section) { $this->assertNotContains($section['slug'], $slugs); @@ -31,5 +38,11 @@ class PayablesGroupTest extends TestCase $result = ShowInAdmin::groupPayables($allowed); $this->assertSame($allowed, $result[0]['sections']); $this->assertSame([], ShowInAdmin::groupPayables([])); + + $legacy = [ + ['slug' => 'supplier-payables-final', 'title' => '供应商应付(终版)', 'pages' => []], + ['slug' => 'courier-payables-final', 'title' => '快递应付(终版)', 'pages' => []], + ]; + $this->assertSame([], ShowInAdmin::groupPayables($legacy)); } }