From cc4cf64248c184d2be451f352c921dbda23d6743 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Tue, 10 Feb 2026 16:52:44 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=88=98=EB=8F=99=EA=B1=B0=EB=9E=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=20=EC=8B=9C=20unique=20key=20=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC(deposit/withdraw/balance)=20=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수동 거래의 balance는 화면에서 재계산(recalcManualBalances)되어 표시되므로 DB의 원본값과 다름. 프론트에서 재계산된 balance를 보내면 다른 레코드와 unique key 충돌 발생. 수정 시 적요/예금주명 등 비-키 필드만 업데이트. Co-Authored-By: Claude Opus 4.6 --- .../Controllers/Barobill/EaccountController.php | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) 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'] ?? '',