From 1f73c9a6e9580090e3c817b1b3cf69df1c10a080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 10 Feb 2026 21:43:01 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=9D=BC=EB=B0=98=EC=A0=84=ED=91=9C=20?= =?UTF-8?q?=EC=9D=80=ED=96=89=EA=B1=B0=EB=9E=98=20=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=9E=94=EC=95=A1=20=EC=B0=A8=EC=9D=B4=EB=A1=9C=20=EC=9D=B8?= =?UTF-8?q?=ED=95=9C=20=EC=A4=91=EB=B3=B5=20=ED=91=9C=EC=8B=9C=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Finance/JournalEntryController.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Finance/JournalEntryController.php b/app/Http/Controllers/Finance/JournalEntryController.php index cd03b184..358f353c 100644 --- a/app/Http/Controllers/Finance/JournalEntryController.php +++ b/app/Http/Controllers/Finance/JournalEntryController.php @@ -378,16 +378,23 @@ public function bankTransactions(Request $request): JsonResponse $accountNum = $request->input('accountNum', ''); // barobill_bank_transactions 테이블에서 직접 조회 - $query = BankTransaction::where('tenant_id', $tenantId) - ->whereBetween('trans_date', [$startDate, $endDate]) - ->orderByDesc('trans_date') - ->orderByDesc('trans_time'); + // 같은 거래가 잔액(balance)만 다르게 중복 저장된 경우 최신 건만 사용 + $dedupQuery = BankTransaction::where('tenant_id', $tenantId) + ->whereBetween('trans_date', [$startDate, $endDate]); if (!empty($accountNum)) { - $query->where('bank_account_num', str_replace('-', '', $accountNum)); + $dedupQuery->where('bank_account_num', str_replace('-', '', $accountNum)); } - $transactions = $query->get(); + $latestIds = $dedupQuery + ->selectRaw('MAX(id) as id') + ->groupBy('bank_account_num', 'trans_dt', 'deposit', 'withdraw') + ->pluck('id'); + + $transactions = BankTransaction::whereIn('id', $latestIds) + ->orderByDesc('trans_date') + ->orderByDesc('trans_time') + ->get(); // 로그 데이터 변환 $logs = $transactions->map(function ($tx) {