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:
@@ -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'] ?? '',
|
||||
|
||||
Reference in New Issue
Block a user