From e4f698654b49cdb63fa0d84f04e307e030b49865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sat, 21 Mar 2026 11:29:56 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[bending]=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C=20code=20=EB=B3=80=EA=B2=BD=20=ED=97=88=EC=9A=A9=20+?= =?UTF-8?q?=20=EC=A4=91=EB=B3=B5=20=EC=BD=94=EB=93=9C=20=EA=B2=80=EC=82=AC?= =?UTF-8?q?=20(422=20=EB=B0=98=ED=99=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/BendingItemService.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/app/Services/BendingItemService.php b/app/Services/BendingItemService.php index 5bb6f147..d539e6dc 100644 --- a/app/Services/BendingItemService.php +++ b/app/Services/BendingItemService.php @@ -83,7 +83,25 @@ public function update(int $id, array $data): BendingItem { $item = BendingItem::findOrFail($id); - // code는 수정 불가 (고유 품목코드) + // code 변경 시 중복 검사 + if (array_key_exists('code', $data) && $data['code'] && $data['code'] !== $item->code) { + $exists = BendingItem::withoutGlobalScopes() + ->where('code', $data['code']) + ->where('id', '!=', $id) + ->exists(); + if ($exists) { + throw new \Illuminate\Validation\ValidationException( + validator([], []), + response()->json([ + 'success' => false, + 'message' => "코드 '{$data['code']}'가 이미 존재합니다.", + 'errors' => ['code' => ["코드 '{$data['code']}'는 이미 사용 중입니다. 다른 코드를 입력하세요."]], + ], 422) + ); + } + $item->code = $data['code']; + } + $columns = [ 'item_name', 'item_sep', 'item_bending', 'material', 'item_spec', 'model_name', 'model_UA',