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:
2025-12-11 19:01:07 +09:00
parent 07f0db17a7
commit 86ef841277
5 changed files with 237 additions and 42 deletions

View File

@@ -76,4 +76,15 @@
'has_clients' => 'Cannot delete the client group because it has associated clients.',
'code_exists_in_deleted' => 'The same code exists in deleted data. Please permanently delete that code first or use a different code.',
// Item management related
'item' => [
'not_found' => 'Item not found.',
'already_deleted' => 'Item has already been deleted.',
'in_use_as_bom_component' => 'Cannot delete item as it is used as a BOM component. (Usage: :count items)',
'in_use' => 'Cannot delete item that is currently in use. (Usage: :usage)',
'batch_in_use' => 'Cannot delete items because some are in use. (Items: :codes, :count items)',
'invalid_item_type' => 'Invalid item type.',
'duplicate_code' => 'Duplicate item code.',
],
];