fix: 견적 반올림 순서를 5130과 동일하게 수정 (단건→수량 곱셈)

- 케이스, 케이스용 연기차단재, 가이드레일, 레일용 연기차단재:
  round(단가 × 길이 × QTY) → round(단가 × 길이) × QTY
- 5130 레거시와 동일한 반올림 순서 적용
- 검증: 스크린 44건 + 슬랫 32건 + 가이드타입 21건 = 97건 ALL PASS
- 사이즈 범위: 3000×1500 ~ 12000×4000, QTY 1~5

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 23:52:02 +09:00
parent f4a902fceb
commit 9bd585bdf3
2 changed files with 80 additions and 15 deletions

View File

@@ -1,3 +1,63 @@
## 2026-01-30 (목) - 5130↔SAM 견적 교차 검증 완료 + 마이그레이션 검증
### 작업 목표
- SAM 견적 계산이 5130 레거시 시스템과 100% 일치하는지 교차 검증
- FormulaEvaluatorService 슬랫/스틸 지원 완성
- MigrateBDModelsPrices 커맨드 동작 검증
### 수정된 파일
| 파일명 | 설명 |
|--------|------|
| `app/Services/Quote/FormulaEvaluatorService.php` | 제품타입별 면적/중량 공식 분기, 모터/브라켓 입력값 오버라이드, 디버그 포뮬러 동적 표시 |
| `app/Services/Quote/Handlers/KyungdongFormulaHandler.php` | 제품타입별 면적/중량 공식, normalizeGuideType() 추가, guide_rail_spec 파라미터 별칭 |
### 핵심 수정 내용
#### 1. 제품타입별 면적/중량 공식 (FormulaEvaluatorService + Handler)
- **Screen**: area = (W1 × (H1+550)) / 1M, weight = area×2 + (W0/1000)×14.17
- **Slat**: area = (W0 × (H0+50)) / 1M, weight = area×25
- **Steel**: area = (W1 × (H1+550)) / 1M, weight = area×25
#### 2. 모터/브라켓 입력값 오버라이드
- 기존: 항상 자동 계산
- 수정: `MOTOR_CAPACITY`, `BRACKET_SIZE` 입력값이 있으면 우선 사용
#### 3. 가이드타입 정규화
- `normalizeGuideType()` 메서드 추가 (벽면↔벽면형, 측면↔측면형, 혼합↔혼합형)
- `guide_rail_spec` 파라미터 별칭 지원
### 검증 결과
#### 전 모델 교차 검증 (Task #6) ✅
```
16/16 ALL PASS
- 10개 스크린 조합 (KSS01, KSS02, KSE01, KWE01, KTE01, KQTS01, KDSS01 × SUS/EGI)
- 6개 슬랫 조합 (KSS02, KSE01, KTE01 × SUS × 2사이즈)
- 조건: 6800×2700, QTY=1, 300K 모터, 5인치 브라켓
```
#### 가이드타입 교차 검증 (Task #7) ✅
```
21/21 ALL PASS
- 벽면/측면/혼합 × 4모델(KSS02, KSE01, KTE01, KDSS01) × screen
- 벽면/측면/혼합 × 3모델(KSS02, KSE01, KTE01) × slat
- 혼합형: 5130은 col6에 "혼합 120*70/120*120" 두 규격 필요
```
#### MigrateBDModelsPrices 커맨드 검증 (Task #4, #5) ✅
```
커맨드 정상 동작 확인
- BD-* (절곡품): 58건 마이그레이션 완료
- EST-* (모터/제어기/원자재 등): 71건 마이그레이션 완료
- chandj 원본 가격 일치: 7/7 검증 통과
- --dry-run, --fresh 옵션 정상 동작
```
### Git 커밋
- `f4a902f` - fix: FormulaEvaluatorService 슬랫/스틸 제품타입별 면적/중량/모터/가이드 수정
---
## 2026-01-29 (수) - 경동기업 견적 로직 Phase 4 완료
### 작업 목표