2026-02-06 15:23:43 +09:00
|
|
|
<?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();
|
|
|
|
|
|
2026-02-25 11:45:01 +09:00
|
|
|
if (! $dailyFundMenu) {
|
2026-02-06 15:23:43 +09:00
|
|
|
$this->command->error('일일자금일보 메뉴를 찾을 수 없습니다.');
|
2026-02-25 11:45:01 +09:00
|
|
|
|
2026-02-06 15:23:43 +09:00
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$parentId = $dailyFundMenu->parent_id;
|
|
|
|
|
|
|
|
|
|
// 일반전표입력 메뉴가 이미 있는지 확인
|
|
|
|
|
$existingMenu = Menu::withoutGlobalScopes()
|
|
|
|
|
->where('tenant_id', $tenantId)
|
|
|
|
|
->where('name', '일반전표입력')
|
|
|
|
|
->where('parent_id', $parentId)
|
|
|
|
|
->first();
|
|
|
|
|
|
|
|
|
|
if ($existingMenu) {
|
|
|
|
|
$this->command->info('일반전표입력 메뉴가 이미 존재합니다.');
|
2026-02-25 11:45:01 +09:00
|
|
|
|
2026-02-06 15:23:43 +09:00
|
|
|
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})");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|