# Phase 1: 5130 견적 기능 분석

> **목표:** 5130 레거시 견적 시스템 완전 분석 및 문서화
> **분석 일자:** 2025-12-19
> **상태:** 🔄 진행 중

---

## 📋 분석 체크리스트

### 핵심 분석 (필수)
- [x] JS 수식 분석 (`common/calculation.js`)
- [x] PHP 단가 계산 로직 (`fetch_unitprice.php`)
- [x] 스크린 금액 계산 (`get_screen_amount.php`)
- [x] 슬랫 금액 계산 (`get_slat_amount.php`)
- [x] DB 스키마 분석 (`estimate` 테이블)

### 문서 작성
- [x] js-formulas.md - 수식 분석 (핵심!)
- [x] ui-analysis.md - 화면별 기능 분석
- [x] db-structure.md - 테이블/컬럼 구조
- [x] business-logic.md - 비즈니스 로직 정리

---

## 📁 분석 대상 파일

### 핵심 파일
| 파일 | 크기 | 설명 |
|------|------|------|
| `common/calculation.js` | 182줄 | 프론트엔드 행 계산 로직 |
| `fetch_unitprice.php` | 875줄 | **핵심** - 단가 조회 및 수식 함수 |
| `get_screen_amount.php` | 583줄 | 스크린 견적 계산 |
| `get_slat_amount.php` | 541줄 | 슬랫(철재) 견적 계산 |
| `write_form.php` | 103KB | 견적서 작성 UI |

### 디렉토리 구조
```
5130/estimate/
├── common/
│   ├── calculation.js      # 행 계산 JS
│   ├── lastJS.php          # 페이지 공통 JS
│   ├── common_screen.php   # 스크린 공통
│   └── common_slat.php     # 슬랫 공통
├── list.php                # 견적 목록
├── write_form.php          # 견적서 작성
├── estimate.php            # 견적서 메인
├── estimateSlat.php        # 슬랫 견적
├── estimateUnit.php        # 단가 견적
├── fetch_unitprice.php     # 단가 조회 API
├── get_estimate_amount.php # 견적 금액 라우터
├── get_screen_amount.php   # 스크린 금액 계산
├── get_slat_amount.php     # 슬랫 금액 계산
├── insert.php              # 견적 저장
└── generate_serial_pjnum.php # 번호 생성
```

---

## 🔍 핵심 발견 사항

### 1. 견적 유형 (2가지)
| 유형 | 파일 | 주요 특징 |
|------|------|----------|
| **스크린** | `get_screen_amount.php` | 면적(m²) 기반, 실리카/와이어 소재 |
| **슬랫(철재)** | `get_slat_amount.php` | 면적 기반, 방화 슬랫 소재 |

### 2. 계산 항목 (18개 항목)
1. 검사비 (인정검사비)
2. 주자재 (스크린/슬랫)
3. 조인트바 (슬랫 전용)
4. 모터
5. 연동제어기 (매립형/노출형/뒷박스)
6. 케이스
7. 케이스용 연기차단재
8. 케이스 마구리
9. 모터 받침용 앵글
10. 가이드레일
11. 레일용 연기차단재
12. 하장바
13. L바 (스크린 전용)
14. 보강평철 (스크린 전용)
15. 감기샤프트
16. 무게평철 (스크린 전용)
17. 환봉 (스크린 전용)
18. 각파이프
19. 앵글

### 3. 체크박스 옵션 (5개)
| 옵션 | 변수명 | 영향 항목 |
|------|--------|----------|
| 절곡 | `steel` | 케이스, 가이드레일, 연기차단재, 하장바, L바, 보강평철 |
| 모터 | `motor` | 모터 가격 포함 여부 |
| 보증 | `warranty` | 보증기간 |
| 슬랫 | `slatcheck` | 주자재(슬랫), 조인트바 |
| 부자재 | `partscheck` | 샤프트, 각파이프, 앵글 |

### 4. 단가 테이블 (7개)
| 테이블 | 용도 |
|--------|------|
| `price_raw_materials` | 주자재 단가 (스크린, 슬랫) |
| `price_motor` | 모터/제어기 단가 |
| `price_shaft` | 샤프트 단가 |
| `price_pipe` | 각파이프 단가 |
| `price_angle` | 앵글 단가 |
| `BDmodels` | 케이스, 가이드레일, 부자재 단가 |
| `item_list` | 품목 마스터 |

---

## 📊 상세 문서

| 문서 | 설명 |
|------|------|
| [js-formulas.md](./js-formulas.md) | **핵심** - 모든 수식 상세 분석 |
| [ui-analysis.md](./ui-analysis.md) | 화면별 기능 분석 |
| [db-structure.md](./db-structure.md) | DB 테이블 구조 |
| [business-logic.md](./business-logic.md) | 비즈니스 로직 정리 |

---

## ⚠️ 주의 사항

### 코드 특성
1. **레거시 PHP + jQuery** - ES6 문법 없음
2. **동적 테이블명** - 일부 쿼리에서 테이블명 동적 설정
3. **JSON 기반 데이터** - `itemList` 컬럼에 JSON으로 상세 데이터 저장
4. **컬럼명 규칙** - `col1`, `col2`, ... 형태의 범용 컬럼

### SAM 이관 시 고려사항
1. 단가 테이블 구조 재설계 필요
2. `BDmodels` 테이블 → SAM 품목기준관리 연동
3. 체크박스 옵션 → 견적 옵션 테이블 설계
4. 수식 로직 → Service 클래스로 분리

---

## 📝 다음 단계

Phase 2로 이동하여 현재 mng 견적 수식 관리 상태 분석 예정

---

## 📚 참조

- [MASTER_PLAN.md](../MASTER_PLAN.md)
- [PROGRESS.md](../PROGRESS.md)
- [docs/projects/legacy-5130/03_ESTIMATE.md](../../legacy-5130/03_ESTIMATE.md)