feat:일반전표입력 기능 구현 (컨트롤러, 모델, 뷰, 라우트, 메뉴시더)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
74
database/seeders/JournalEntryMenuSeeder.php
Normal file
74
database/seeders/JournalEntryMenuSeeder.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\Commons\Menu;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class JournalEntryMenuSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$tenantId = 1;
|
||||
|
||||
// 일일자금일보 메뉴 찾기
|
||||
$dailyFundMenu = Menu::withoutGlobalScopes()
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('name', '일일자금일보')
|
||||
->first();
|
||||
|
||||
if (!$dailyFundMenu) {
|
||||
$this->command->error('일일자금일보 메뉴를 찾을 수 없습니다.');
|
||||
return;
|
||||
}
|
||||
|
||||
$parentId = $dailyFundMenu->parent_id;
|
||||
|
||||
// 일반전표입력 메뉴가 이미 있는지 확인
|
||||
$existingMenu = Menu::withoutGlobalScopes()
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('name', '일반전표입력')
|
||||
->where('parent_id', $parentId)
|
||||
->first();
|
||||
|
||||
if ($existingMenu) {
|
||||
$this->command->info('일반전표입력 메뉴가 이미 존재합니다.');
|
||||
return;
|
||||
}
|
||||
|
||||
// 일일자금일보 바로 다음 sort_order로 추가
|
||||
$newSortOrder = $dailyFundMenu->sort_order + 1;
|
||||
|
||||
// 기존 메뉴들의 sort_order를 밀어내기
|
||||
Menu::withoutGlobalScopes()
|
||||
->where('parent_id', $parentId)
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('sort_order', '>=', $newSortOrder)
|
||||
->increment('sort_order');
|
||||
|
||||
$menu = Menu::create([
|
||||
'tenant_id' => $tenantId,
|
||||
'parent_id' => $parentId,
|
||||
'name' => '일반전표입력',
|
||||
'url' => '/finance/journal-entries',
|
||||
'icon' => 'file-text',
|
||||
'sort_order' => $newSortOrder,
|
||||
'is_active' => true,
|
||||
]);
|
||||
|
||||
$this->command->info("일반전표입력 메뉴 생성: {$menu->url} (sort_order: {$newSortOrder})");
|
||||
|
||||
// 결과 출력
|
||||
$this->command->info('');
|
||||
$this->command->info('=== 같은 그룹 하위 메뉴 ===');
|
||||
$children = Menu::withoutGlobalScopes()
|
||||
->where('parent_id', $parentId)
|
||||
->where('tenant_id', $tenantId)
|
||||
->orderBy('sort_order')
|
||||
->get(['name', 'url', 'sort_order']);
|
||||
|
||||
foreach ($children as $child) {
|
||||
$this->command->info("{$child->sort_order}. {$child->name} ({$child->url})");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user