feat: 품목 삭제 로직 개선 및 중복 코드 예외 처리 보완
- 품목 삭제 시 모든 참조 테이블 사용 여부 체크 (Force Delete) - Product: BOM 구성품/상위품목, BOM 템플릿, 주문, 견적 - Material: BOM 구성품, BOM 템플릿, 입고, LOT - 사용 중인 품목 삭제 불가, 미사용 품목만 영구 삭제 - 일괄 삭제도 동일 로직 적용 - DuplicateCodeException 예외 처리 추가 - ApiResponse.handle()에서 정상 처리되도록 수정 - Handler.php에도 fallback 처리 추가 - i18n 에러 메시지 추가 (in_use, batch_in_use)
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Helpers;
|
||||
|
||||
use App\Exceptions\DuplicateCodeException;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||
@@ -168,6 +169,17 @@ public static function handle(
|
||||
|
||||
} catch (\Throwable $e) {
|
||||
|
||||
// 품목 코드 중복 예외 - duplicate_id, duplicate_code 포함
|
||||
if ($e instanceof DuplicateCodeException) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => $e->getMessage(),
|
||||
'error' => ['code' => 400],
|
||||
'duplicate_id' => $e->getDuplicateId(),
|
||||
'duplicate_code' => $e->getDuplicateCode(),
|
||||
], 400);
|
||||
}
|
||||
|
||||
// HttpException 계열은 상태코드/메시지를 그대로 반영
|
||||
if ($e instanceof HttpException) {
|
||||
return self::error(
|
||||
|
||||
Reference in New Issue
Block a user