fix:입출금내역 저장 시 decimal:2 cast dirty 감지로 인한 unique 제약조건 위반 수정

Eloquent 모델의 decimal:2 cast가 balance를 dirty로 잘못 감지하여
UPDATE 시 balance가 포함되면서 unique 제약조건 위반 발생.
Query Builder(DB::table)로 변경하여 지정 필드만 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-10 16:35:04 +09:00
parent 13f2e1df73
commit f73e8a18a1

View File

@@ -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);