Files
sam-manage/app/Http/Controllers/Finance/BankAccountController.php
김보곤 fcebb5b219 fix:계좌관리 페이지 HX-Redirect 추가 및 잔액 계산 개선
- BankAccountController에 HX-Redirect 추가 (HTMX 네비게이션 시 스크립트 실행 보장)
- latestBalances() 수동입력 거래 포함 정확한 잔액 계산으로 개선
- N+1 쿼리 제거: 전체 거래를 한번에 조회 후 계좌별 그룹화 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 13:28:40 +09:00

74 lines
1.7 KiB
PHP

<?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;
class BankAccountController extends Controller
{
public function __construct(
private BankAccountService $bankAccountService
) {}
/**
* 계좌 목록 페이지
*/
public function index(Request $request): View|Response
{
// HTMX 부분 로드 시 전체 페이지 리로드 (스크립트 실행 보장)
if ($request->header('HX-Request')) {
return response('', 200)->header('HX-Redirect', route('finance.accounts.index'));
}
$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,
]);
}
}