Files
sam-docs/projects/quotation/phase-1-5130-analysis/README.md
hskwon 1066ea25b2 docs: Phase 5 API 문서 추가 (사용자 초대, 알림설정, 계정관리)
- erp-api-list.md: Phase 5 섹션 추가 (12개 API)
- erp-api-detail.md: Phase 5 상세 스펙 추가
  - 13. 사용자 초대 (5개): 목록, 발송, 수락, 취소, 재발송
  - 14. 알림 설정 (3개): 조회, 수정, 일괄수정
  - 15. 계정 관리 (4개): 탈퇴, 사용중지, 약관조회, 약관수정
2025-12-19 15:35:41 +09:00

4.8 KiB

Phase 1: 5130 견적 기능 분석

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


📋 분석 체크리스트

핵심 분석 (필수)

  • JS 수식 분석 (common/calculation.js)
  • PHP 단가 계산 로직 (fetch_unitprice.php)
  • 스크린 금액 계산 (get_screen_amount.php)
  • 슬랫 금액 계산 (get_slat_amount.php)
  • DB 스키마 분석 (estimate 테이블)

문서 작성

  • js-formulas.md - 수식 분석 (핵심!)
  • ui-analysis.md - 화면별 기능 분석
  • db-structure.md - 테이블/컬럼 구조
  • 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 핵심 - 모든 수식 상세 분석
ui-analysis.md 화면별 기능 분석
db-structure.md DB 테이블 구조
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 견적 수식 관리 상태 분석 예정


📚 참조