diff --git a/INDEX.md b/INDEX.md index 959a505..a4531e5 100644 --- a/INDEX.md +++ b/INDEX.md @@ -258,6 +258,7 @@ DB 도메인별: | [20260318_receiving_item_search_fix.md](dev/changes/20260318_receiving_item_search_fix.md) | 입고등록 품목검색 필터/페이징 수정 (per_page/itemType 파라미터 호환성) | | [20260318_item_fields_htmx_redirect_fix.md](changes/20260318_item_fields_htmx_redirect_fix.md) | 품목기준 필드관리 HTMX 네비게이션 switchTab 오류 수정 | | [20260318_item_management_delete_scope_fix.md](changes/20260318_item_management_delete_scope_fix.md) | 품목관리 삭제 시 loadItemList 스코프 오류 수정 | +| [20260318_item-management-bom-tree.md](changes/20260318_item-management-bom-tree.md) | 품목관리 BOM 트리 3단계 구조 + 수식 산출 BOM 저장 기능 | --- diff --git a/changes/20260318_item-management-bom-tree.md b/changes/20260318_item-management-bom-tree.md new file mode 100644 index 0000000..67b9822 --- /dev/null +++ b/changes/20260318_item-management-bom-tree.md @@ -0,0 +1,84 @@ +# 품목관리 BOM 트리 기능 개선 + +**날짜:** 2026-03-18 +**작업자:** Claude Code + +## 변경 개요 + +품목관리 화면의 BOM(Bill of Materials) 트리 기능을 전면 개선하여 3단계 계층 구조(FG → 카테고리 → PT)로 표시하고, 수식 산출 결과를 BOM으로 저장하는 기능을 추가했다. + +--- + +## 수정된 파일 + +| 파일 | 변경 내용 | +|------|----------| +| `mng/app/Services/ItemManagementService.php` | `saveBomFromFormula()`, `getBendingBomTree()` 메서드 추가, `buildBomNode()` 카테고리 그룹 노드 생성 | +| `mng/app/Http/Controllers/Api/Admin/ItemManagementApiController.php` | `saveBom()`, `bendingBomTree()` 엔드포인트 추가 | +| `mng/routes/api.php` | `POST /{id}/save-bom`, `GET /bending-bom-tree` 라우트 추가 | +| `mng/resources/views/item-management/index.blade.php` | BOM 탭 통합, 3단계 트리 UI, BOM 저장 버튼 | + +--- + +## 상세 변경 사항 + +### 1. BOM 탭 통합 + +- 기존 "정적 BOM" + "절곡 BOM" 2개 탭 → **"BOM"** 단일 탭으로 통합 +- "수식 산출" 탭은 FG 품목 선택 시에만 표시 (기존 유지) +- FG 선택 시 수식 산출 탭으로 자동 전환하지 않음 (현재 탭 유지) + +### 2. BOM 트리 3단계 구조 + +BOM 데이터에 `category` 필드가 있으면 자동으로 중간 그룹 노드를 생성한다: + +``` +▼ FG KSS02 스크린 SUS마감 측면형 + ▼ 주자재 (1건) + PT 스크린 실리카 x10.65 + ▼ 모터 (1건) + PT 모터 150K(S) (220V) x1 + ▼ 절곡품 (9건) + PT 케이스 500*380 x3.22 + ... + ▼ 부자재 (4건) + PT 감기샤프트 5인치 6m x1 + ... +``` + +- chevron 아이콘 기반 접힘/펼침 토글 +- 카테고리 노드 회색 배경, 건수 표시 +- 절곡 품목(SF-BND) amber 배경 강조 +- 품목 코드는 hover 시에만 표시 + +### 3. 수식 산출 → BOM 저장 + +수식 산출 결과 합계 옆에 **"BOM 저장"** 버튼을 추가했다: + +- 클릭 시 산출된 전체 품목을 FG의 `bom` JSON 필드에 저장 +- 저장 데이터 구조: `[{child_item_id, child_item_code, quantity, unit, category}]` +- 저장 후 자동으로 BOM 탭 전환 + 트리 표시 + +### 4. FG 18건 BOM 일괄 등록 + +tenant 287(프론트_테스트회사)의 FG 품목 18건에 수식 산출(W:3000, H:3000) 결과를 BOM으로 일괄 저장했다. 각 FG에 17건의 PT 품목이 BOM으로 등록되었다. + +--- + +## API 엔드포인트 + +| Method | Path | 설명 | +|--------|------|------| +| `POST` | `/api/admin/items/{id}/save-bom` | 수식 산출 결과를 FG BOM으로 저장 | +| `GET` | `/api/admin/items/bending-bom-tree` | 절곡 품목 트리 조회 | + +--- + +## 관련 문서 + +- `rules/item-policy.md` — 품목 정책 +- `features/quotes/README.md` — 견적 시스템, BOM 계산 + +--- + +**최종 업데이트**: 2026-03-18