132 lines
2.8 KiB
Markdown
132 lines
2.8 KiB
Markdown
|
|
# Phase 3: mng 견적 기능 구현
|
||
|
|
|
||
|
|
> **목표:** 5130 수식을 mng에 적용, 품목 단가 연동 완료
|
||
|
|
> **구현일:** 2025-12-19
|
||
|
|
> **상태:** ✅ 완료
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 체크리스트
|
||
|
|
|
||
|
|
- [x] getItemPrice() 연동 구현
|
||
|
|
- [x] Price 모델 생성 (mng)
|
||
|
|
- [x] Seeder 확인 및 실행 방법 문서화
|
||
|
|
- [x] 구현 문서 작성
|
||
|
|
- [ ] Seeder 실행 (수동 필요)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 산출물
|
||
|
|
|
||
|
|
| 파일 | 설명 | 상태 |
|
||
|
|
|------|------|------|
|
||
|
|
| [README.md](./README.md) | 구현 요약 | ✅ |
|
||
|
|
| [implementation.md](./implementation.md) | 구현 상세 | ✅ |
|
||
|
|
| [table-mapping.md](./table-mapping.md) | 테이블 매핑 | ✅ |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 구현 요약
|
||
|
|
|
||
|
|
### 1. Price 모델 생성
|
||
|
|
|
||
|
|
**파일:** `mng/app/Models/Price.php`
|
||
|
|
|
||
|
|
- prices 테이블 연동 모델
|
||
|
|
- `getCurrentPrice()`: 현재 유효 단가 조회
|
||
|
|
- `getSalesPriceByItemCode()`: 품목 코드로 판매단가 조회
|
||
|
|
|
||
|
|
### 2. getItemPrice() 연동
|
||
|
|
|
||
|
|
**파일:** `mng/app/Services/Quote/FormulaEvaluatorService.php:324-335`
|
||
|
|
|
||
|
|
```php
|
||
|
|
private function getItemPrice(string $itemCode): float
|
||
|
|
{
|
||
|
|
$tenantId = session('selected_tenant_id');
|
||
|
|
|
||
|
|
if (!$tenantId) {
|
||
|
|
$this->errors[] = "테넌트 ID가 설정되지 않았습니다.";
|
||
|
|
return 0;
|
||
|
|
}
|
||
|
|
|
||
|
|
return \App\Models\Price::getSalesPriceByItemCode($tenantId, $itemCode);
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. Seeder 실행 방법
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# api 프로젝트에서 실행
|
||
|
|
cd /Users/hskwon/Works/@KD_SAM/SAM/api
|
||
|
|
|
||
|
|
# 카테고리 먼저
|
||
|
|
php artisan db:seed --class=QuoteFormulaCategorySeeder
|
||
|
|
|
||
|
|
# 수식 데이터
|
||
|
|
php artisan db:seed --class=QuoteFormulaSeeder
|
||
|
|
|
||
|
|
# 확인
|
||
|
|
php artisan tinker --execute="echo DB::table('quote_formula_categories')->count();"
|
||
|
|
php artisan tinker --execute="echo DB::table('quote_formulas')->count();"
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5130 vs 현재 Seeder 비교
|
||
|
|
|
||
|
|
### 5130 분석 항목 (19개)
|
||
|
|
|
||
|
|
1. 검사비
|
||
|
|
2. 주자재 (스크린/슬랫)
|
||
|
|
3. 조인트바
|
||
|
|
4. 모터
|
||
|
|
5. 연동제어기
|
||
|
|
6. 케이스
|
||
|
|
7. 케이스용 연기차단재
|
||
|
|
8. 케이스 마구리
|
||
|
|
9. 모터 받침용 앵글
|
||
|
|
10. 가이드레일
|
||
|
|
11. 레일용 연기차단재
|
||
|
|
12. 하장바
|
||
|
|
13. L바
|
||
|
|
14. 보강평철
|
||
|
|
15. 감기샤프트
|
||
|
|
16. 무게평철
|
||
|
|
17. 환봉
|
||
|
|
18. 각파이프
|
||
|
|
19. 앵글
|
||
|
|
|
||
|
|
### 현재 Seeder 포함 항목
|
||
|
|
|
||
|
|
- ✅ 오픈사이즈 (W0, H0)
|
||
|
|
- ✅ 제작사이즈 (W1, H1)
|
||
|
|
- ✅ 면적 (M)
|
||
|
|
- ✅ 중량 (K)
|
||
|
|
- ✅ 가이드레일
|
||
|
|
- ✅ 케이스
|
||
|
|
- ✅ 모터
|
||
|
|
- ✅ 제어기
|
||
|
|
- ✅ 마구리
|
||
|
|
- ✅ 검사비
|
||
|
|
|
||
|
|
### 추가 필요 항목 (Phase 4 또는 추후)
|
||
|
|
|
||
|
|
- 조인트바, 연기차단재, 하장바, L바 등 세부 항목
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 다음 단계
|
||
|
|
|
||
|
|
1. **Seeder 실행** - 관리자가 직접 실행
|
||
|
|
2. **Phase 4: API 개발** - 견적 계산 REST API 구현
|
||
|
|
3. **5130 세부 수식 추가** - 추후 작업
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 참조
|
||
|
|
|
||
|
|
- [Phase 1: 5130 분석](../phase-1-5130-analysis/README.md)
|
||
|
|
- [Phase 2: mng 분석](../phase-2-mng-analysis/README.md)
|
||
|
|
- [MASTER_PLAN.md](../MASTER_PLAN.md)
|