From 587c21fa11cfc5a50dc328d562a577e6103bc63a 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:48:28 +0900 Subject: [PATCH] =?UTF-8?q?fix:updateManual()=EB=8F=84=20Query=20Builder?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=84=ED=99=98=20(numeric=20dirty=20=EA=B0=90?= =?UTF-8?q?=EC=A7=80=20=EB=AC=B8=EC=A0=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 수동 거래 수정 시 Eloquent가 deposit/withdraw/balance를 dirty로 오감지 (DB "515900.00" vs validation 515900 비교). DB::table()로 변경하여 지정 필드만 정확히 업데이트. Co-Authored-By: Claude Opus 4.6 --- .../Barobill/EaccountController.php | 39 +++++++++++-------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/Barobill/EaccountController.php b/app/Http/Controllers/Barobill/EaccountController.php index 943743c1..ad952bab 100644 --- a/app/Http/Controllers/Barobill/EaccountController.php +++ b/app/Http/Controllers/Barobill/EaccountController.php @@ -1253,23 +1253,28 @@ public function updateManual(Request $request, int $id): JsonResponse $transTime = $validated['trans_time'] ?? '000000'; $transDt = $validated['trans_date'] . $transTime; - $transaction->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'] ?? '', - 'trans_office' => $validated['trans_office'] ?? '', - 'account_code' => $validated['account_code'] ?? null, - 'account_name' => $validated['account_name'] ?? null, - ]); + // Query Builder 사용: Eloquent의 numeric dirty 감지 문제 방지 + // (DB의 "515900.00" 문자열 vs validation 후 515900 정수 비교 시 dirty 오감지) + 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'] ?? '', + 'trans_office' => $validated['trans_office'] ?? '', + 'account_code' => $validated['account_code'] ?? null, + 'account_name' => $validated['account_name'] ?? null, + 'updated_at' => now(), + ]); return response()->json([ 'success' => true,