diff --git a/app/Http/Controllers/Barobill/EaccountController.php b/app/Http/Controllers/Barobill/EaccountController.php index adb94227..1b51e9f0 100644 --- a/app/Http/Controllers/Barobill/EaccountController.php +++ b/app/Http/Controllers/Barobill/EaccountController.php @@ -949,14 +949,18 @@ public function save(Request $request): JsonResponse ->first(); if ($existing) { - // 계정과목 + 적요/예금주명 업데이트 (balance는 키값이므로 제외) - $existing->update([ - 'summary' => $data['summary'], - 'cast' => $data['cast'], - 'trans_office' => $data['trans_office'], - 'account_code' => $data['account_code'], - 'account_name' => $data['account_name'], - ]); + // Query Builder 사용: Eloquent의 decimal:2 cast가 balance를 + // dirty로 잘못 감지하여 unique 제약조건 위반을 일으키는 문제 방지 + DB::table('barobill_bank_transactions') + ->where('id', $existing->id) + ->update([ + 'summary' => $data['summary'], + 'cast' => $data['cast'], + 'trans_office' => $data['trans_office'], + 'account_code' => $data['account_code'], + 'account_name' => $data['account_name'], + 'updated_at' => now(), + ]); $updated++; } else { BankTransaction::create($data);