Files
sam-manage/app/Http/Controllers/Finance/BankAccountController.php

74 lines
1.7 KiB
PHP
Raw Normal View History

2026-01-20 20:21:06 +09:00
<?php
namespace App\Http\Controllers\Finance;
use App\Http\Controllers\Controller;
use App\Services\BankAccountService;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
2026-01-20 20:21:06 +09:00
class BankAccountController extends Controller
{
public function __construct(
private BankAccountService $bankAccountService
) {}
/**
* 계좌 목록 페이지
*/
public function index(Request $request): View|Response
2026-01-20 20:21:06 +09:00
{
// HTMX 부분 로드 시 전체 페이지 리로드 (스크립트 실행 보장)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('finance.accounts.index'));
}
2026-01-20 20:21:06 +09:00
$summary = $this->bankAccountService->getSummary();
return view('finance.accounts.index', [
'summary' => $summary,
]);
}
/**
* 계좌 등록 페이지
*/
public function create(): View
{
return view('finance.accounts.create');
}
/**
* 계좌 수정 페이지
*/
public function edit(int $id): View
{
$account = $this->bankAccountService->getAccountById($id);
if (! $account) {
abort(404, '계좌를 찾을 수 없습니다.');
}
return view('finance.accounts.edit', [
'account' => $account,
]);
}
/**
* 계좌 상세/거래내역 페이지
*/
public function show(int $id): View
{
$account = $this->bankAccountService->getAccountById($id);
if (! $account) {
abort(404, '계좌를 찾을 수 없습니다.');
}
return view('finance.accounts.show', [
'account' => $account,
]);
}
}