diff --git a/database/seeders/ApprovalTestDataSeeder.php b/database/seeders/ApprovalTestDataSeeder.php index 56c7a97..10d3154 100644 --- a/database/seeders/ApprovalTestDataSeeder.php +++ b/database/seeders/ApprovalTestDataSeeder.php @@ -2,9 +2,9 @@ namespace Database\Seeders; +use Carbon\Carbon; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; -use Carbon\Carbon; class ApprovalTestDataSeeder extends Seeder { @@ -29,6 +29,7 @@ public function run(): void ->toArray(); if (count($users) < 3) { $this->command->error('최소 3명의 사용자가 필요합니다.'); + return; } @@ -65,7 +66,7 @@ private function createApprovalForms(int $tenantId, int $userId, Carbon $now): a ['name' => 'description', 'type' => 'textarea', 'label' => '내용', 'required' => true], ['name' => 'reason', 'type' => 'textarea', 'label' => '사유', 'required' => true], ['name' => 'estimatedCost', 'type' => 'number', 'label' => '예상비용', 'required' => false], - ] + ], ]), 'is_active' => true, 'created_by' => $userId, @@ -83,7 +84,7 @@ private function createApprovalForms(int $tenantId, int $userId, Carbon $now): a ['name' => 'paymentDate', 'type' => 'date', 'label' => '지급일', 'required' => true], ['name' => 'items', 'type' => 'array', 'label' => '지출항목', 'required' => true], ['name' => 'totalAmount', 'type' => 'number', 'label' => '총액', 'required' => true], - ] + ], ]), 'is_active' => true, 'created_by' => $userId, @@ -100,7 +101,7 @@ private function createApprovalForms(int $tenantId, int $userId, Carbon $now): a ['name' => 'items', 'type' => 'array', 'label' => '비용항목', 'required' => true], ['name' => 'totalExpense', 'type' => 'number', 'label' => '총지출', 'required' => true], ['name' => 'accountBalance', 'type' => 'number', 'label' => '계좌잔액', 'required' => true], - ] + ], ]), 'is_active' => true, 'created_by' => $userId, @@ -144,12 +145,12 @@ private function createApprovals( ]; $expenseItems = [ - '교통비', '식비', '숙박비', '소모품비', '통신비', '유류비', '접대비', '회의비' + '교통비', '식비', '숙박비', '소모품비', '통신비', '유류비', '접대비', '회의비', ]; $vendors = [ '삼성전자', 'LG전자', 'SK하이닉스', '현대자동차', '네이버', '카카오', - '쿠팡', '배달의민족', '토스', '당근마켓' + '쿠팡', '배달의민족', '토스', '당근마켓', ]; $docNumber = 1; @@ -223,7 +224,7 @@ private function createApprovals( $formId = $forms[$formCode]; $drafter = $i < 3 ? $approver1 : $approver2; - $title = '추가 결재 요청 문서 ' . ($i + 1); + $title = '추가 결재 요청 문서 '.($i + 1); $content = $this->generateContent($formCode, $title, $vendors, $expenseItems); $approvalId = DB::table('approvals')->insertGetId([ @@ -262,7 +263,7 @@ private function generateContent(string $formCode, string $title, array $vendors 'title' => $title, 'vendor' => $vendors[array_rand($vendors)], 'vendorPaymentDate' => Carbon::now()->addDays(rand(7, 30))->format('Y-m-d'), - 'description' => $title . '에 대한 상세 설명입니다. 업무 효율성 향상과 비용 절감을 위해 필요합니다.', + 'description' => $title.'에 대한 상세 설명입니다. 업무 효율성 향상과 비용 절감을 위해 필요합니다.', 'reason' => '업무 효율성 향상 및 경쟁력 강화를 위해 필수적으로 진행해야 합니다.', 'estimatedCost' => rand(100, 5000) * 10000, ]; @@ -280,11 +281,12 @@ private function generateContent(string $formCode, string $title, array $vendors 'note' => '업무 관련 지출', ]; } + return [ 'requestDate' => Carbon::now()->subDays(rand(1, 7))->format('Y-m-d'), 'paymentDate' => Carbon::now()->addDays(rand(1, 14))->format('Y-m-d'), 'items' => $items, - 'cardId' => 'CARD-' . rand(1000, 9999), + 'cardId' => 'CARD-'.rand(1000, 9999), 'totalAmount' => $total, ]; @@ -304,6 +306,7 @@ private function generateContent(string $formCode, string $title, array $vendors 'checked' => false, ]; } + return [ 'items' => $items, 'totalExpense' => $total, diff --git a/database/seeders/Dummy/DummyAttendanceSeeder.php b/database/seeders/Dummy/DummyAttendanceSeeder.php index d849535..a3fdd6a 100644 --- a/database/seeders/Dummy/DummyAttendanceSeeder.php +++ b/database/seeders/Dummy/DummyAttendanceSeeder.php @@ -22,6 +22,7 @@ public function run(): void if (empty($userIds)) { $this->command->warn(' ⚠ attendances: 사용자가 없습니다'); + return; } @@ -48,6 +49,7 @@ public function run(): void // 주말 제외 if ($currentDate->isWeekend()) { $currentDate->addDay(); + continue; } @@ -61,6 +63,7 @@ public function run(): void if ($exists) { $currentDate->addDay(); + continue; } @@ -85,7 +88,7 @@ public function run(): void } } - $this->command->info(' ✓ attendances: ' . $count . '건 생성'); + $this->command->info(' ✓ attendances: '.$count.'건 생성'); } private function getRandomStatus(array $weights): string @@ -188,4 +191,4 @@ private function getRemarks(string $status): ?string default => null, }; } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyAttendanceSettingSeeder.php b/database/seeders/Dummy/DummyAttendanceSettingSeeder.php index 2cefa58..0922dd8 100644 --- a/database/seeders/Dummy/DummyAttendanceSettingSeeder.php +++ b/database/seeders/Dummy/DummyAttendanceSettingSeeder.php @@ -17,6 +17,7 @@ public function run(): void $existing = AttendanceSetting::where('tenant_id', $tenantId)->first(); if ($existing) { $this->command->info(' ⚠ attendance_settings: 이미 존재 (스킵)'); + return; } @@ -31,4 +32,4 @@ public function run(): void $this->command->info(' ✓ attendance_settings: 1건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyBadDebtSeeder.php b/database/seeders/Dummy/DummyBadDebtSeeder.php index 37bbd8a..2835035 100644 --- a/database/seeders/Dummy/DummyBadDebtSeeder.php +++ b/database/seeders/Dummy/DummyBadDebtSeeder.php @@ -17,7 +17,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = BadDebt::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ bad_debts: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ bad_debts: 이미 '.$existing.'건 존재 (스킵)'); + return; } @@ -28,22 +29,23 @@ public function run(): void if ($clients->isEmpty()) { $this->command->warn(' ⚠ clients 데이터가 없습니다. DummyClientSeeder를 먼저 실행하세요.'); + return; } // 상태별 분포 $statuses = [ - 'collecting' => 6, // 추심중 + 'collecting' => 6, // 추심중 'legal_action' => 4, // 법적조치 - 'recovered' => 5, // 회수완료 - 'bad_debt' => 3, // 대손처리 + 'recovered' => 5, // 회수완료 + 'bad_debt' => 3, // 대손처리 ]; // 금액 범위 (채권 금액) $amounts = [ - 'small' => [500000, 3000000], // 50만~300만 + 'small' => [500000, 3000000], // 50만~300만 'medium' => [3000000, 15000000], // 300만~1500만 - 'large' => [15000000, 50000000], // 1500만~5000만 + 'large' => [15000000, 50000000], // 1500만~5000만 ]; $count = 0; @@ -84,24 +86,24 @@ public function run(): void } BadDebt::create([ - 'tenant_id' => $tenantId, - 'client_id' => $client->id, - 'debt_amount' => $amount, - 'status' => $status, - 'overdue_days' => $overdueDays, + 'tenant_id' => $tenantId, + 'client_id' => $client->id, + 'debt_amount' => $amount, + 'status' => $status, + 'overdue_days' => $overdueDays, 'assigned_user_id' => $userId, - 'occurred_at' => $occurredAt, - 'closed_at' => $closedAt, - 'is_active' => true, - 'options' => null, - 'created_by' => $userId, + 'occurred_at' => $occurredAt, + 'closed_at' => $closedAt, + 'is_active' => true, + 'options' => null, + 'created_by' => $userId, ]); $count++; } } - $this->command->info(' ✓ bad_debts: ' . $count . '건 생성'); + $this->command->info(' ✓ bad_debts: '.$count.'건 생성'); $this->command->info(' - collecting: 6건, legal_action: 4건, recovered: 5건, bad_debt: 3건'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyBankAccountSeeder.php b/database/seeders/Dummy/DummyBankAccountSeeder.php index bf19966..2c6cff0 100644 --- a/database/seeders/Dummy/DummyBankAccountSeeder.php +++ b/database/seeders/Dummy/DummyBankAccountSeeder.php @@ -16,7 +16,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = BankAccount::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ bank_accounts: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ bank_accounts: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -24,24 +25,24 @@ public function run(): void ['bank_code' => '004', 'bank_name' => 'KB국민은행', 'account_number' => '123-45-6789012', 'account_holder' => '프론트테스트', 'account_name' => '운영계좌', 'is_primary' => true], ['bank_code' => '088', 'bank_name' => '신한은행', 'account_number' => '110-123-456789', 'account_holder' => '프론트테스트', 'account_name' => '급여계좌', 'is_primary' => false], ['bank_code' => '020', 'bank_name' => '우리은행', 'account_number' => '1002-123-456789', 'account_holder' => '프론트테스트', 'account_name' => '예비계좌', 'is_primary' => false], - ['bank_code' => '081', 'bank_name' => '하나은행', 'account_number' => '123-456789-12345','account_holder' => '프론트테스트', 'account_name' => '법인카드', 'is_primary' => false], - ['bank_code' => '011', 'bank_name' => 'NH농협은행', 'account_number' => '351-1234-5678-12','account_holder' => '프론트테스트', 'account_name' => '비상금', 'is_primary' => false], + ['bank_code' => '081', 'bank_name' => '하나은행', 'account_number' => '123-456789-12345', 'account_holder' => '프론트테스트', 'account_name' => '법인카드', 'is_primary' => false], + ['bank_code' => '011', 'bank_name' => 'NH농협은행', 'account_number' => '351-1234-5678-12', 'account_holder' => '프론트테스트', 'account_name' => '비상금', 'is_primary' => false], ]; foreach ($accounts as $account) { BankAccount::create([ - 'tenant_id' => $tenantId, - 'bank_code' => $account['bank_code'], - 'bank_name' => $account['bank_name'], + 'tenant_id' => $tenantId, + 'bank_code' => $account['bank_code'], + 'bank_name' => $account['bank_name'], 'account_number' => $account['account_number'], 'account_holder' => $account['account_holder'], - 'account_name' => $account['account_name'], - 'status' => 'active', - 'is_primary' => $account['is_primary'], - 'created_by' => $userId, + 'account_name' => $account['account_name'], + 'status' => 'active', + 'is_primary' => $account['is_primary'], + 'created_by' => $userId, ]); } - $this->command->info(' ✓ bank_accounts: ' . count($accounts) . '건 생성'); + $this->command->info(' ✓ bank_accounts: '.count($accounts).'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyBillSeeder.php b/database/seeders/Dummy/DummyBillSeeder.php index 559a883..cadb8f5 100644 --- a/database/seeders/Dummy/DummyBillSeeder.php +++ b/database/seeders/Dummy/DummyBillSeeder.php @@ -19,7 +19,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Bill::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ bills: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ bills: 이미 '.$existing.'건 존재 (스킵)'); + return; } diff --git a/database/seeders/Dummy/DummyClientGroupSeeder.php b/database/seeders/Dummy/DummyClientGroupSeeder.php index a124d9a..ef2f7df 100644 --- a/database/seeders/Dummy/DummyClientGroupSeeder.php +++ b/database/seeders/Dummy/DummyClientGroupSeeder.php @@ -16,7 +16,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = ClientGroup::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ client_groups: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ client_groups: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -30,15 +31,15 @@ public function run(): void foreach ($groups as $group) { ClientGroup::create([ - 'tenant_id' => $tenantId, + 'tenant_id' => $tenantId, 'group_code' => $group['group_code'], 'group_name' => $group['group_name'], 'price_rate' => $group['price_rate'], - 'is_active' => true, + 'is_active' => true, 'created_by' => $userId, ]); } - $this->command->info(' ✓ client_groups: ' . count($groups) . '건 생성'); + $this->command->info(' ✓ client_groups: '.count($groups).'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyClientSeeder.php b/database/seeders/Dummy/DummyClientSeeder.php index fd5b6d4..b59c727 100644 --- a/database/seeders/Dummy/DummyClientSeeder.php +++ b/database/seeders/Dummy/DummyClientSeeder.php @@ -17,7 +17,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Client::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ clients: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ clients: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -78,24 +79,24 @@ public function run(): void $count++; } - $this->command->info(' ✓ clients: ' . $count . '건 생성'); + $this->command->info(' ✓ clients: '.$count.'건 생성'); } private function createClient(array $data, string $type, int $tenantId, int $userId, array $groups): void { Client::create([ - 'tenant_id' => $tenantId, + 'tenant_id' => $tenantId, 'client_group_id' => $data['group'] ? ($groups[$data['group']] ?? null) : null, - 'client_code' => $data['code'], - 'name' => $data['name'], - 'client_type' => $type, - 'contact_person' => $data['contact'], - 'phone' => $data['phone'], - 'email' => $data['email'], - 'business_no' => $data['business_no'], - 'business_type' => '제조업', - 'business_item' => '전자제품', - 'is_active' => true, + 'client_code' => $data['code'], + 'name' => $data['name'], + 'client_type' => $type, + 'contact_person' => $data['contact'], + 'phone' => $data['phone'], + 'email' => $data['email'], + 'business_no' => $data['business_no'], + 'business_type' => '제조업', + 'business_item' => '전자제품', + 'is_active' => true, ]); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyDepartmentSeeder.php b/database/seeders/Dummy/DummyDepartmentSeeder.php index 35bb632..e0655e2 100644 --- a/database/seeders/Dummy/DummyDepartmentSeeder.php +++ b/database/seeders/Dummy/DummyDepartmentSeeder.php @@ -17,7 +17,8 @@ public function run(): void // 기존 부서가 있으면 스킵 $existing = Department::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ departments: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ departments: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -86,7 +87,7 @@ public function run(): void // 사용자-부서 연결 $this->assignUsersToDepartments($tenantId); - $this->command->info(' ✓ departments: ' . $count . '개 생성 (본부 3개, 부서 8개)'); + $this->command->info(' ✓ departments: '.$count.'개 생성 (본부 3개, 부서 8개)'); } private function assignUsersToDepartments(int $tenantId): void @@ -117,7 +118,7 @@ private function assignUsersToDepartments(int $tenantId): void ->where('department_id', $dept->id) ->exists(); - if (!$exists) { + if (! $exists) { DB::table('department_user')->insert([ 'tenant_id' => $tenantId, 'user_id' => $userId, @@ -130,4 +131,4 @@ private function assignUsersToDepartments(int $tenantId): void } } } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyDepositSeeder.php b/database/seeders/Dummy/DummyDepositSeeder.php index a5650ec..0b8ef22 100644 --- a/database/seeders/Dummy/DummyDepositSeeder.php +++ b/database/seeders/Dummy/DummyDepositSeeder.php @@ -18,7 +18,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Deposit::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ deposits: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ deposits: 이미 '.$existing.'건 존재 (스킵)'); + return; } @@ -53,9 +54,9 @@ public function run(): void // 금액 범위 $amounts = [ - 'small' => [1000000, 5000000], // 30% + 'small' => [1000000, 5000000], // 30% 'medium' => [5000000, 30000000], // 50% - 'large' => [30000000, 100000000], // 20% + 'large' => [30000000, 100000000], // 20% ]; $count = 0; @@ -81,21 +82,21 @@ public function run(): void } Deposit::create([ - 'tenant_id' => $tenantId, - 'deposit_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), - 'client_id' => $client?->id, - 'client_name' => $client ? null : $clientName, + 'tenant_id' => $tenantId, + 'deposit_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), + 'client_id' => $client?->id, + 'client_name' => $client ? null : $clientName, 'bank_account_id' => $primaryBankId, - 'amount' => $amount, - 'payment_method' => $methods[array_rand($methods)], - 'description' => $clientName . ' 입금', - 'created_by' => $userId, + 'amount' => $amount, + 'payment_method' => $methods[array_rand($methods)], + 'description' => $clientName.' 입금', + 'created_by' => $userId, ]); $count++; } } - $this->command->info(' ✓ deposits: ' . $count . '건 생성'); + $this->command->info(' ✓ deposits: '.$count.'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyItemSeeder.php b/database/seeders/Dummy/DummyItemSeeder.php index 1fdff69..63163e1 100644 --- a/database/seeders/Dummy/DummyItemSeeder.php +++ b/database/seeders/Dummy/DummyItemSeeder.php @@ -156,4 +156,4 @@ private function generateAttributes(string $type): array default => $base, }; } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyLeaveGrantSeeder.php b/database/seeders/Dummy/DummyLeaveGrantSeeder.php index 3aa3a16..b1dc1a2 100644 --- a/database/seeders/Dummy/DummyLeaveGrantSeeder.php +++ b/database/seeders/Dummy/DummyLeaveGrantSeeder.php @@ -22,6 +22,7 @@ public function run(): void if (empty($userIds)) { $this->command->warn(' ⚠ leave_grants: 사용자가 없습니다'); + return; } @@ -37,7 +38,7 @@ public function run(): void ->whereYear('grant_date', $year) ->exists(); - if (!$existing) { + if (! $existing) { LeaveGrant::create([ 'tenant_id' => $tenantId, 'user_id' => $uId, @@ -60,7 +61,7 @@ public function run(): void ->where('grant_date', $grantDate) ->exists(); - if (!$monthlyExists) { + if (! $monthlyExists) { LeaveGrant::create([ 'tenant_id' => $tenantId, 'user_id' => $uId, @@ -90,6 +91,6 @@ public function run(): void } } - $this->command->info(' ✓ leave_grants: ' . $count . '건 생성'); + $this->command->info(' ✓ leave_grants: '.$count.'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyLeaveSeeder.php b/database/seeders/Dummy/DummyLeaveSeeder.php index 368b1e4..e4bc083 100644 --- a/database/seeders/Dummy/DummyLeaveSeeder.php +++ b/database/seeders/Dummy/DummyLeaveSeeder.php @@ -22,6 +22,7 @@ public function run(): void if (empty($userIds)) { $this->command->warn(' ⚠ leaves: 사용자가 없습니다'); + return; } @@ -64,7 +65,7 @@ public function run(): void $endDate = $startDate; } else { $days = rand(1, 3); - $endDate = date('Y-m-d', strtotime($startDate . ' + ' . ($days - 1) . ' days')); + $endDate = date('Y-m-d', strtotime($startDate.' + '.($days - 1).' days')); } // 승인자 정보 @@ -74,10 +75,10 @@ public function run(): void if ($status === 'approved') { $approvedBy = $userId; - $approvedAt = date('Y-m-d H:i:s', strtotime($startDate . ' - 2 days')); + $approvedAt = date('Y-m-d H:i:s', strtotime($startDate.' - 2 days')); } elseif ($status === 'rejected') { $approvedBy = $userId; - $approvedAt = date('Y-m-d H:i:s', strtotime($startDate . ' - 2 days')); + $approvedAt = date('Y-m-d H:i:s', strtotime($startDate.' - 2 days')); $rejectReason = '업무 일정 상 불가'; } @@ -100,7 +101,7 @@ public function run(): void } } - $this->command->info(' ✓ leaves: ' . $count . '건 생성'); + $this->command->info(' ✓ leaves: '.$count.'건 생성'); } private function getRandomWeighted(array $weights): string @@ -132,4 +133,4 @@ private function getLeaveReason(string $type): string default => '개인 사유', }; } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyPaymentSeeder.php b/database/seeders/Dummy/DummyPaymentSeeder.php index 871ac63..5f7dc5d 100644 --- a/database/seeders/Dummy/DummyPaymentSeeder.php +++ b/database/seeders/Dummy/DummyPaymentSeeder.php @@ -20,7 +20,8 @@ public function run(): void $q->where('tenant_id', $tenantId); })->count(); if ($existing > 0) { - $this->command->info(' ⚠ payments: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ payments: 이미 '.$existing.'건 존재 (스킵)'); + return; } diff --git a/database/seeders/Dummy/DummyPopupSeeder.php b/database/seeders/Dummy/DummyPopupSeeder.php index b8b0639..f6f0e3c 100644 --- a/database/seeders/Dummy/DummyPopupSeeder.php +++ b/database/seeders/Dummy/DummyPopupSeeder.php @@ -16,7 +16,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Popup::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ popups: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ popups: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -109,6 +110,6 @@ public function run(): void ]); } - $this->command->info(' ✓ popups: ' . count($popups) . '건 생성'); + $this->command->info(' ✓ popups: '.count($popups).'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyPurchaseSeeder.php b/database/seeders/Dummy/DummyPurchaseSeeder.php index ae3ef62..2ea6a05 100644 --- a/database/seeders/Dummy/DummyPurchaseSeeder.php +++ b/database/seeders/Dummy/DummyPurchaseSeeder.php @@ -17,7 +17,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Purchase::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ purchases: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ purchases: 이미 '.$existing.'건 존재 (스킵)'); + return; } @@ -28,6 +29,7 @@ public function run(): void if ($clients->isEmpty()) { $this->command->warn(' ⚠ purchases: 매입 거래처 없음 (스킵)'); + return; } @@ -40,9 +42,9 @@ public function run(): void ]; $amounts = [ - 'small' => [1000000, 5000000], + 'small' => [1000000, 5000000], 'medium' => [5000000, 30000000], - 'large' => [30000000, 80000000], + 'large' => [30000000, 80000000], ]; // 월별 건수: 1~10월 5~6건, 11월 7건, 12월 6건 = 70건 @@ -63,7 +65,7 @@ public function run(): void $client = $clientsByName->get($clientName); // 이름 매칭 실패 시 기존 클라이언트 중 랜덤 선택 - if (!$client) { + if (! $client) { $clientId = $clientIds[array_rand($clientIds)]; $client = $clients->firstWhere('id', $clientId); $clientName = $client->name; @@ -91,22 +93,22 @@ public function run(): void $total = $supply + $tax; Purchase::create([ - 'tenant_id' => $tenantId, + 'tenant_id' => $tenantId, 'purchase_number' => sprintf('PUR-%04d%02d-%04d', $year, $month, $i + 1), - 'purchase_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), - 'client_id' => $client->id, - 'supply_amount' => $supply, - 'tax_amount' => $tax, - 'total_amount' => $total, - 'description' => $clientName . ' 매입', - 'status' => $status, - 'created_by' => $userId, + 'purchase_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), + 'client_id' => $client->id, + 'supply_amount' => $supply, + 'tax_amount' => $tax, + 'total_amount' => $total, + 'description' => $clientName.' 매입', + 'status' => $status, + 'created_by' => $userId, ]); $count++; } } - $this->command->info(' ✓ purchases: ' . $count . '건 생성'); + $this->command->info(' ✓ purchases: '.$count.'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummySalarySeeder.php b/database/seeders/Dummy/DummySalarySeeder.php index 7da06dc..5146d48 100644 --- a/database/seeders/Dummy/DummySalarySeeder.php +++ b/database/seeders/Dummy/DummySalarySeeder.php @@ -18,7 +18,8 @@ public function run(): void // 기존 급여 데이터가 있으면 스킵 $existing = Salary::withoutGlobalScopes()->where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ salaries: 이미 ' . $existing . '개 존재 (스킵)'); + $this->command->info(' ⚠ salaries: 이미 '.$existing.'개 존재 (스킵)'); + return; } @@ -31,6 +32,7 @@ public function run(): void if (empty($userIds)) { $this->command->warn(' ⚠ salaries: 테넌트에 연결된 사용자가 없습니다'); + return; } @@ -138,7 +140,7 @@ public function run(): void $count++; } - $this->command->info(' ✓ salaries: ' . $count . '개 생성 (2025년 12월)'); + $this->command->info(' ✓ salaries: '.$count.'개 생성 (2025년 12월)'); } /** @@ -149,11 +151,22 @@ private function getRankIndex(int $index, int $total): int // 배분: 사원 40%, 대리 25%, 과장 15%, 차장 10%, 부장 7%, 이사 3% $ratio = $index / $total; - if ($ratio < 0.40) return 0; // 사원 - if ($ratio < 0.65) return 1; // 대리 - if ($ratio < 0.80) return 2; // 과장 - if ($ratio < 0.90) return 3; // 차장 - if ($ratio < 0.97) return 4; // 부장 + if ($ratio < 0.40) { + return 0; + } // 사원 + if ($ratio < 0.65) { + return 1; + } // 대리 + if ($ratio < 0.80) { + return 2; + } // 과장 + if ($ratio < 0.90) { + return 3; + } // 차장 + if ($ratio < 0.97) { + return 4; + } // 부장 + return 5; // 이사 } @@ -163,12 +176,25 @@ private function getRankIndex(int $index, int $total): int private function calculateIncomeTax(float $taxableIncome): int { // 월 급여 기준 간이세액 (부양가족 1인 기준, 간략화) - if ($taxableIncome <= 1500000) return 0; - if ($taxableIncome <= 2000000) return round($taxableIncome * 0.02); - if ($taxableIncome <= 3000000) return round($taxableIncome * 0.03); - if ($taxableIncome <= 4500000) return round($taxableIncome * 0.05); - if ($taxableIncome <= 6000000) return round($taxableIncome * 0.08); - if ($taxableIncome <= 8000000) return round($taxableIncome * 0.12); + if ($taxableIncome <= 1500000) { + return 0; + } + if ($taxableIncome <= 2000000) { + return round($taxableIncome * 0.02); + } + if ($taxableIncome <= 3000000) { + return round($taxableIncome * 0.03); + } + if ($taxableIncome <= 4500000) { + return round($taxableIncome * 0.05); + } + if ($taxableIncome <= 6000000) { + return round($taxableIncome * 0.08); + } + if ($taxableIncome <= 8000000) { + return round($taxableIncome * 0.12); + } + return round($taxableIncome * 0.15); } } diff --git a/database/seeders/Dummy/DummySaleSeeder.php b/database/seeders/Dummy/DummySaleSeeder.php index 1eab371..254e92c 100644 --- a/database/seeders/Dummy/DummySaleSeeder.php +++ b/database/seeders/Dummy/DummySaleSeeder.php @@ -17,7 +17,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Sale::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ sales: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ sales: 이미 '.$existing.'건 존재 (스킵)'); + return; } @@ -28,6 +29,7 @@ public function run(): void if ($clients->isEmpty()) { $this->command->warn(' ⚠ sales: 매출 거래처 없음 (스킵)'); + return; } @@ -41,9 +43,9 @@ public function run(): void ]; $amounts = [ - 'small' => [1000000, 5000000], + 'small' => [1000000, 5000000], 'medium' => [5000000, 30000000], - 'large' => [30000000, 100000000], + 'large' => [30000000, 100000000], ]; // 월별 건수: 1~10월 6~7건, 11월 8건, 12월 7건 = 80건 @@ -64,7 +66,7 @@ public function run(): void $client = $clientsByName->get($clientName); // 이름 매칭 실패 시 기존 클라이언트 중 랜덤 선택 - if (!$client) { + if (! $client) { $clientId = $clientIds[array_rand($clientIds)]; $client = $clients->firstWhere('id', $clientId); $clientName = $client->name; @@ -93,22 +95,22 @@ public function run(): void $total = $supply + $tax; Sale::create([ - 'tenant_id' => $tenantId, - 'sale_number' => sprintf('SAL-%04d%02d-%04d', $year, $month, $i + 1), - 'sale_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), - 'client_id' => $client->id, + 'tenant_id' => $tenantId, + 'sale_number' => sprintf('SAL-%04d%02d-%04d', $year, $month, $i + 1), + 'sale_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), + 'client_id' => $client->id, 'supply_amount' => $supply, - 'tax_amount' => $tax, - 'total_amount' => $total, - 'description' => $clientName . ' 매출', - 'status' => $status, - 'created_by' => $userId, + 'tax_amount' => $tax, + 'total_amount' => $total, + 'description' => $clientName.' 매출', + 'status' => $status, + 'created_by' => $userId, ]); $count++; } } - $this->command->info(' ✓ sales: ' . $count . '건 생성'); + $this->command->info(' ✓ sales: '.$count.'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyUserSeeder.php b/database/seeders/Dummy/DummyUserSeeder.php index 9985b26..b822591 100644 --- a/database/seeders/Dummy/DummyUserSeeder.php +++ b/database/seeders/Dummy/DummyUserSeeder.php @@ -46,7 +46,7 @@ public function run(): void ->where('tenant_id', $tenantId) ->exists(); - if (!$linked) { + if (! $linked) { DB::table('user_tenants')->insert([ 'user_id' => $existing->id, 'tenant_id' => $tenantId, @@ -57,6 +57,7 @@ public function run(): void 'updated_at' => now(), ]); } + continue; } @@ -84,6 +85,6 @@ public function run(): void $count++; } - $this->command->info(' ✓ users: ' . $count . '명 생성 (테넌트 연결 완료)'); + $this->command->info(' ✓ users: '.$count.'명 생성 (테넌트 연결 완료)'); } } diff --git a/database/seeders/Dummy/DummyWithdrawalSeeder.php b/database/seeders/Dummy/DummyWithdrawalSeeder.php index 3fa9dc2..ae8fd89 100644 --- a/database/seeders/Dummy/DummyWithdrawalSeeder.php +++ b/database/seeders/Dummy/DummyWithdrawalSeeder.php @@ -18,7 +18,8 @@ public function run(): void // 기존 데이터 있으면 스킵 $existing = Withdrawal::where('tenant_id', $tenantId)->count(); if ($existing > 0) { - $this->command->info(' ⚠ withdrawals: 이미 ' . $existing . '건 존재 (스킵)'); + $this->command->info(' ⚠ withdrawals: 이미 '.$existing.'건 존재 (스킵)'); + return; } @@ -48,9 +49,9 @@ public function run(): void ]; $amounts = [ - 'small' => [1000000, 5000000], + 'small' => [1000000, 5000000], 'medium' => [5000000, 30000000], - 'large' => [30000000, 80000000], + 'large' => [30000000, 80000000], ]; $count = 0; @@ -74,21 +75,21 @@ public function run(): void } Withdrawal::create([ - 'tenant_id' => $tenantId, + 'tenant_id' => $tenantId, 'withdrawal_date' => sprintf('%04d-%02d-%02d', $year, $month, $day), - 'client_id' => $client?->id, - 'client_name' => $client ? null : $clientName, + 'client_id' => $client?->id, + 'client_name' => $client ? null : $clientName, 'bank_account_id' => $primaryBankId, - 'amount' => $amount, - 'payment_method' => $methods[array_rand($methods)], - 'description' => $clientName . ' 지급', - 'created_by' => $userId, + 'amount' => $amount, + 'payment_method' => $methods[array_rand($methods)], + 'description' => $clientName.' 지급', + 'created_by' => $userId, ]); $count++; } } - $this->command->info(' ✓ withdrawals: ' . $count . '건 생성'); + $this->command->info(' ✓ withdrawals: '.$count.'건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/Dummy/DummyWorkSettingSeeder.php b/database/seeders/Dummy/DummyWorkSettingSeeder.php index 4428c15..93c11c2 100644 --- a/database/seeders/Dummy/DummyWorkSettingSeeder.php +++ b/database/seeders/Dummy/DummyWorkSettingSeeder.php @@ -17,6 +17,7 @@ public function run(): void $existing = WorkSetting::where('tenant_id', $tenantId)->first(); if ($existing) { $this->command->info(' ⚠ work_settings: 이미 존재 (스킵)'); + return; } @@ -36,4 +37,4 @@ public function run(): void $this->command->info(' ✓ work_settings: 1건 생성'); } -} \ No newline at end of file +} diff --git a/database/seeders/PositionSeeder.php b/database/seeders/PositionSeeder.php index a03104e..cf13178 100644 --- a/database/seeders/PositionSeeder.php +++ b/database/seeders/PositionSeeder.php @@ -71,6 +71,6 @@ public function run(): void ); } - $this->command->info('Positions seeded: ' . count($ranks) . ' ranks, ' . count($titles) . ' titles'); + $this->command->info('Positions seeded: '.count($ranks).' ranks, '.count($titles).' titles'); } -} \ No newline at end of file +} diff --git a/database/seeders/StockReceivingSeeder.php b/database/seeders/StockReceivingSeeder.php index cc1218b..48d5cef 100644 --- a/database/seeders/StockReceivingSeeder.php +++ b/database/seeders/StockReceivingSeeder.php @@ -226,4 +226,4 @@ private function randomRemark(): ?string return $remarks[array_rand($remarks)]; } -} \ No newline at end of file +}