- Phase 3 구현 문서 작성 (README, implementation, table-mapping) - PROGRESS.md 업데이트 (Phase 3 완료 상태) - getItemPrice() 연동, Price 모델 생성 기록
Phase 3: mng 견적 기능 구현
목표: 5130 수식을 mng에 적용, 품목 단가 연동 완료 구현일: 2025-12-19 상태: ✅ 완료
체크리스트
- getItemPrice() 연동 구현
- Price 모델 생성 (mng)
- Seeder 확인 및 실행 방법 문서화
- 구현 문서 작성
- Seeder 실행 (수동 필요)
산출물
| 파일 | 설명 | 상태 |
|---|---|---|
| README.md | 구현 요약 | ✅ |
| implementation.md | 구현 상세 | ✅ |
| table-mapping.md | 테이블 매핑 | ✅ |
구현 요약
1. Price 모델 생성
파일: mng/app/Models/Price.php
- prices 테이블 연동 모델
getCurrentPrice(): 현재 유효 단가 조회getSalesPriceByItemCode(): 품목 코드로 판매단가 조회
2. getItemPrice() 연동
파일: mng/app/Services/Quote/FormulaEvaluatorService.php:324-335
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 실행 방법
# 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개)
- 검사비
- 주자재 (스크린/슬랫)
- 조인트바
- 모터
- 연동제어기
- 케이스
- 케이스용 연기차단재
- 케이스 마구리
- 모터 받침용 앵글
- 가이드레일
- 레일용 연기차단재
- 하장바
- L바
- 보강평철
- 감기샤프트
- 무게평철
- 환봉
- 각파이프
- 앵글
현재 Seeder 포함 항목
- ✅ 오픈사이즈 (W0, H0)
- ✅ 제작사이즈 (W1, H1)
- ✅ 면적 (M)
- ✅ 중량 (K)
- ✅ 가이드레일
- ✅ 케이스
- ✅ 모터
- ✅ 제어기
- ✅ 마구리
- ✅ 검사비
추가 필요 항목 (Phase 4 또는 추후)
- 조인트바, 연기차단재, 하장바, L바 등 세부 항목
다음 단계
- Seeder 실행 - 관리자가 직접 실행
- Phase 4: API 개발 - 견적 계산 REST API 구현
- 5130 세부 수식 추가 - 추후 작업