fix:수동거래 수정 시 unique key 컬럼(deposit/withdraw/balance) 제외

수동 거래의 balance는 화면에서 재계산(recalcManualBalances)되어 표시되므로
DB의 원본값과 다름. 프론트에서 재계산된 balance를 보내면 다른 레코드와
unique key 충돌 발생. 수정 시 적요/예금주명 등 비-키 필드만 업데이트.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-10 16:52:44 +09:00
parent 587c21fa11
commit cc4cf64248

View File

@@ -1253,20 +1253,12 @@ public function updateManual(Request $request, int $id): JsonResponse
$transTime = $validated['trans_time'] ?? '000000';
$transDt = $validated['trans_date'] . $transTime;
// Query Builder 사용: Eloquent의 numeric dirty 감지 문제 방지
// (DB의 "515900.00" 문자열 vs validation 후 515900 정수 비교 시 dirty 오감지)
// 수동 거래 수정: unique key 컬럼(deposit/withdraw/balance)은 제외
// balance는 화면에서 재계산(recalcManualBalances)되므로 DB값 유지 필수
// (프론트에서 재계산된 balance를 보내면 다른 레코드와 unique key 충돌)
DB::table('barobill_bank_transactions')
->where('id', $transaction->id)
->update([
'bank_account_num' => $validated['bank_account_num'],
'bank_code' => $validated['bank_code'] ?? '',
'bank_name' => $validated['bank_name'] ?? '',
'trans_date' => $validated['trans_date'],
'trans_time' => $transTime,
'trans_dt' => $transDt,
'deposit' => $validated['deposit'],
'withdraw' => $validated['withdraw'],
'balance' => $validated['balance'] ?? 0,
'summary' => $validated['summary'] ?? '',
'cast' => $validated['cast'] ?? '',
'memo' => $validated['memo'] ?? '',