diff --git a/app/Http/Controllers/Barobill/EaccountController.php b/app/Http/Controllers/Barobill/EaccountController.php index ad952bab..42140628 100644 --- a/app/Http/Controllers/Barobill/EaccountController.php +++ b/app/Http/Controllers/Barobill/EaccountController.php @@ -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'] ?? '',