diff --git a/app/Http/Controllers/ApprovalController.php b/app/Http/Controllers/ApprovalController.php index 21ac1a42..4b75d2be 100644 --- a/app/Http/Controllers/ApprovalController.php +++ b/app/Http/Controllers/ApprovalController.php @@ -2,6 +2,8 @@ namespace App\Http\Controllers; +use App\Models\Finance\BankAccount; +use App\Models\Finance\CorporateCard; use App\Services\ApprovalService; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -36,8 +38,9 @@ public function create(Request $request): View|Response $forms = $this->service->getApprovalForms(); $lines = $this->service->getApprovalLines(); + [$cards, $accounts] = $this->getCardAndAccountData(); - return view('approvals.create', compact('forms', 'lines')); + return view('approvals.create', compact('forms', 'lines', 'cards', 'accounts')); } /** @@ -57,8 +60,9 @@ public function edit(Request $request, int $id): View|Response $forms = $this->service->getApprovalForms(); $lines = $this->service->getApprovalLines(); + [$cards, $accounts] = $this->getCardAndAccountData(); - return view('approvals.edit', compact('approval', 'forms', 'lines')); + return view('approvals.edit', compact('approval', 'forms', 'lines', 'cards', 'accounts')); } /** @@ -110,4 +114,22 @@ public function completed(Request $request): View|Response return view('approvals.completed'); } + + private function getCardAndAccountData(): array + { + $tenantId = session('selected_tenant_id'); + + $cards = CorporateCard::forTenant($tenantId) + ->active() + ->select('id', 'card_name', 'card_company', 'card_number', 'card_holder_name') + ->get(); + + $accounts = BankAccount::where('tenant_id', $tenantId) + ->active() + ->ordered() + ->select('id', 'bank_name', 'account_number', 'account_holder', 'is_primary') + ->get(); + + return [$cards, $accounts]; + } } diff --git a/resources/views/approvals/create.blade.php b/resources/views/approvals/create.blade.php index e2e70d0c..428b58a8 100644 --- a/resources/views/approvals/create.blade.php +++ b/resources/views/approvals/create.blade.php @@ -82,7 +82,11 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline- {{-- 지출결의서 전용 폼 --}} - @include('approvals.partials._expense-form', ['initialData' => []]) + @include('approvals.partials._expense-form', [ + 'initialData' => [], + 'cards' => $cards ?? collect(), + 'accounts' => $accounts ?? collect(), + ]) {{-- 액션 버튼 --}}
diff --git a/resources/views/approvals/edit.blade.php b/resources/views/approvals/edit.blade.php index 5ed73930..b0146824 100644 --- a/resources/views/approvals/edit.blade.php +++ b/resources/views/approvals/edit.blade.php @@ -124,6 +124,8 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline- @include('approvals.partials._expense-form', [ 'initialData' => $approval->content ?? [], 'initialFiles' => $existingFiles, + 'cards' => $cards ?? collect(), + 'accounts' => $accounts ?? collect(), ]) {{-- 액션 버튼 --}} diff --git a/resources/views/approvals/partials/_expense-form.blade.php b/resources/views/approvals/partials/_expense-form.blade.php index 0bad50d7..d3f6d0c2 100644 --- a/resources/views/approvals/partials/_expense-form.blade.php +++ b/resources/views/approvals/partials/_expense-form.blade.php @@ -3,15 +3,20 @@ Props: $initialData (array|null) - 기존 content JSON (edit 시) $initialFiles (array|null) - 기존 첨부파일 [{id, name, size, mime_type}] (edit 시) + $cards (Collection|null) - 법인카드 목록 + $accounts (Collection|null) - 회사 계좌 목록 --}} @php $initialData = $initialData ?? []; $initialFiles = $initialFiles ?? []; + $cards = $cards ?? collect(); + $accounts = $accounts ?? collect(); $userName = auth()->user()->name ?? ''; @endphp
+ {{-- 법인카드 선택 패널 --}} +
+
+ + +
+ +
+
+
+ + {{-- 송금 계좌 선택 패널 --}} +
+
+ + +
+ +
+
+
+ {{-- 세금계산서 --}}
@@ -207,7 +281,7 @@ class="border-2 border-dashed rounded-lg p-4 text-center transition-colors curso