2025-12-19 10:26:06 +09:00
|
|
|
# 견적 기능 개발 진행 현황
|
|
|
|
|
|
|
|
|
|
> **마스터 플랜:** [MASTER_PLAN.md](./MASTER_PLAN.md)
|
|
|
|
|
> **공통 정책:** [PROJECT_DEVELOPMENT_POLICY.md](../../guides/PROJECT_DEVELOPMENT_POLICY.md)
|
2025-12-22 15:53:31 +09:00
|
|
|
> **최종 업데이트:** 2025-12-19 (Phase 4 DB 기반 재작성 완료)
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
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
|
|
|
## 전체 진행률
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
| Phase | 상태 | 진행률 | 시작일 | 완료일 |
|
|
|
|
|
|-------|------|--------|--------|--------|
|
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
|
|
|
| Phase 1: 5130 분석 | ✅ 완료 | 100% | 2025-12-19 | 2025-12-19 |
|
2025-12-19 15:44:56 +09:00
|
|
|
| Phase 2: mng 분석 | ✅ 완료 | 100% | 2025-12-19 | 2025-12-19 |
|
2025-12-19 16:02:48 +09:00
|
|
|
| Phase 3: 구현 | ✅ 완료 | 100% | 2025-12-19 | 2025-12-19 |
|
2025-12-22 15:53:31 +09:00
|
|
|
| Phase 4: API 개발 | 🔄 진행 | 60% | 2025-12-19 | - |
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🔄 현재 작업
|
|
|
|
|
|
2025-12-19 16:22:22 +09:00
|
|
|
**현재 Phase:** Phase 4 진행 중
|
2025-12-22 15:53:31 +09:00
|
|
|
**완료된 작업:** mng 패턴 적용 - DB 기반 견적 산출 서비스 재작성
|
|
|
|
|
**다음 작업:** 견적 API 통합 테스트 및 Swagger 문서화
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
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
|
|
|
## ✅ Phase 1: 5130 견적 기능 분석 (완료)
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 체크리스트
|
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
|
|
|
- [x] UI/화면 분석 (list.php, write_form.php 등)
|
|
|
|
|
- [x] JS 수식 분석 (calculation.js, fetch_unitprice.php)
|
|
|
|
|
- [x] PHP 계산 로직 분석 (get_screen_amount.php, get_slat_amount.php)
|
|
|
|
|
- [x] DB 구조 분석 (estimate, BDmodels, price_* 테이블)
|
|
|
|
|
- [x] 비즈니스 로직 문서화
|
|
|
|
|
- [x] README.md 작성
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 산출물
|
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
|
|
|
- [x] [README.md](./phase-1-5130-analysis/README.md) - 분석 체크리스트 및 요약
|
|
|
|
|
- [x] [js-formulas.md](./phase-1-5130-analysis/js-formulas.md) - **핵심** 수식 분석 (19개 항목)
|
|
|
|
|
- [x] [ui-analysis.md](./phase-1-5130-analysis/ui-analysis.md) - 화면별 기능 분석
|
|
|
|
|
- [x] [db-structure.md](./phase-1-5130-analysis/db-structure.md) - 테이블/컬럼 구조
|
|
|
|
|
- [x] [business-logic.md](./phase-1-5130-analysis/business-logic.md) - 비즈니스 로직 정리
|
|
|
|
|
|
|
|
|
|
### 핵심 발견 사항
|
|
|
|
|
|
|
|
|
|
#### 견적 유형 (2가지)
|
|
|
|
|
| 유형 | 주요 특징 |
|
|
|
|
|
|------|----------|
|
|
|
|
|
| 스크린 | 면적 기반 (높이+550), 실리카/와이어 소재 |
|
|
|
|
|
| 슬랫(철재) | 면적 기반 (높이+50), 방화슬랫 소재 |
|
|
|
|
|
|
|
|
|
|
#### 계산 항목 (18개)
|
|
|
|
|
검사비, 주자재, 조인트바, 모터, 제어기, 케이스, 케이스연기차단재, 마구리, 앵글, 가이드레일, 레일연기차단재, 하장바, L바, 보강평철, 샤프트, 무게평철, 환봉, 각파이프
|
|
|
|
|
|
|
|
|
|
#### 옵션 체크박스 (5개)
|
|
|
|
|
| 옵션 | 영향 항목 |
|
|
|
|
|
|------|----------|
|
|
|
|
|
| 절곡 | 케이스, 레일, 연기차단재, 하장바, L바, 보강평철 |
|
|
|
|
|
| 모터 | 모터 가격 |
|
|
|
|
|
| 보증 | 보증기간 |
|
|
|
|
|
| 슬랫 | 주자재(슬랫), 조인트바 |
|
|
|
|
|
| 부자재 | 샤프트, 각파이프, 앵글 |
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-12-19 15:44:56 +09:00
|
|
|
## ✅ Phase 2: mng 견적 수식 관리 분석 (완료)
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 체크리스트
|
2025-12-19 15:44:56 +09:00
|
|
|
- [x] 현재 구현 상태 분석 (quote-formulas)
|
|
|
|
|
- [x] 오류/문제점 목록화
|
|
|
|
|
- [x] 5130과의 차이점 분석
|
|
|
|
|
- [x] 개선 방향 도출
|
|
|
|
|
- [x] README.md 작성
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 산출물
|
2025-12-19 15:44:56 +09:00
|
|
|
- [x] [README.md](./phase-2-mng-analysis/README.md) - 분석 요약
|
|
|
|
|
- [x] [current-state.md](./phase-2-mng-analysis/current-state.md) - 현재 구현 상태
|
|
|
|
|
- [x] [issues.md](./phase-2-mng-analysis/issues.md) - 문제점 및 개선사항
|
2025-12-19 10:26:06 +09:00
|
|
|
|
2025-12-19 15:44:56 +09:00
|
|
|
### 핵심 발견 사항
|
|
|
|
|
|
|
|
|
|
#### 구현 상태 요약
|
|
|
|
|
| 구성요소 | 개수 | 상태 |
|
|
|
|
|
|----------|------|------|
|
|
|
|
|
| DB 테이블 | 5개 | ✅ 완료 |
|
|
|
|
|
| Models | 5개 | ✅ 완료 |
|
|
|
|
|
| Services | 2개 | ✅ 완료 |
|
|
|
|
|
| Controllers | 3개 | ✅ 완료 |
|
|
|
|
|
| Views | 9개 | ✅ 완료 |
|
|
|
|
|
|
|
|
|
|
#### 핵심 이슈 (Phase 3에서 해결)
|
|
|
|
|
| 우선순위 | 이슈 | 설명 |
|
|
|
|
|
|---------|------|------|
|
|
|
|
|
| 🔴 Critical | 품목 단가 조회 | getItemPrice() TODO 상태 |
|
|
|
|
|
| 🔴 Critical | 수식 데이터 미입력 | 테이블 비어있음 |
|
|
|
|
|
| 🟡 Important | eval() 사용 | 보안 취약점 |
|
|
|
|
|
|
|
|
|
|
#### 5130 vs mng 비교
|
|
|
|
|
| 항목 | 5130 | mng | 평가 |
|
|
|
|
|
|------|------|-----|------|
|
|
|
|
|
| 수식 저장 | JS 하드코딩 | DB 동적관리 | ✅ mng 우수 |
|
|
|
|
|
| 카테고리 분류 | 없음 | 13개 지원 | ✅ mng 우수 |
|
|
|
|
|
| 품목 단가 연동 | 직접 조회 | TODO 상태 | 🔴 미완성 |
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-12-19 16:02:48 +09:00
|
|
|
## ✅ Phase 3: mng 견적 기능 구현 (완료)
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 체크리스트
|
2025-12-19 16:02:48 +09:00
|
|
|
- [x] 테이블 매핑 (5130 → SAM)
|
|
|
|
|
- [x] getItemPrice() 연동 구현
|
|
|
|
|
- [x] Price 모델 생성 (mng)
|
|
|
|
|
- [x] Seeder 확인 및 실행 방법 문서화
|
|
|
|
|
- [x] README.md 작성
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 산출물
|
2025-12-19 16:02:48 +09:00
|
|
|
- [x] [README.md](./phase-3-implementation/README.md) - 구현 요약
|
|
|
|
|
- [x] [table-mapping.md](./phase-3-implementation/table-mapping.md) - 테이블 매핑
|
|
|
|
|
- [x] [implementation.md](./phase-3-implementation/implementation.md) - 구현 상세
|
|
|
|
|
|
|
|
|
|
### 핵심 구현 내용
|
|
|
|
|
|
|
|
|
|
#### getItemPrice() 연동
|
|
|
|
|
**파일:** `mng/app/Services/Quote/FormulaEvaluatorService.php:324-335`
|
|
|
|
|
- prices 테이블 연동 완료
|
|
|
|
|
- 품목 코드 → 판매단가 조회 구현
|
|
|
|
|
|
|
|
|
|
#### Price 모델
|
|
|
|
|
**파일:** `mng/app/Models/Price.php`
|
|
|
|
|
- getCurrentPrice(): 현재 유효 단가 조회
|
|
|
|
|
- getSalesPriceByItemCode(): 품목 코드로 단가 조회
|
|
|
|
|
|
|
|
|
|
#### Seeder 실행 방법
|
|
|
|
|
```bash
|
|
|
|
|
cd /Users/hskwon/Works/@KD_SAM/SAM/api
|
|
|
|
|
php artisan db:seed --class=QuoteFormulaCategorySeeder
|
|
|
|
|
php artisan db:seed --class=QuoteFormulaSeeder
|
|
|
|
|
```
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-12-19 16:22:22 +09:00
|
|
|
## 🔄 Phase 4: 견적 API 개발 (진행 중)
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
### 체크리스트
|
2025-12-19 16:22:22 +09:00
|
|
|
- [x] api 프로젝트 prices 테이블 연동
|
|
|
|
|
- [x] Price 모델에 getCurrentPrice(), getSalesPriceByItemCode() 추가
|
|
|
|
|
- [x] QuoteCalculationService prices 조회로 변경
|
2025-12-22 15:53:31 +09:00
|
|
|
- [x] mng 패턴 적용 - Quote 수식 모델 생성
|
|
|
|
|
- [x] FormulaEvaluatorService DB 기반 확장
|
|
|
|
|
- [x] QuoteCalculationService DB 기반 재작성
|
2025-12-19 16:22:22 +09:00
|
|
|
- [ ] 견적 API 통합 테스트
|
2025-12-19 10:26:06 +09:00
|
|
|
- [ ] Swagger 문서화
|
|
|
|
|
- [ ] React 연동 스펙
|
|
|
|
|
- [ ] README.md 작성
|
|
|
|
|
|
|
|
|
|
### 산출물
|
|
|
|
|
- [ ] phase-4-api/README.md
|
|
|
|
|
- [ ] phase-4-api/api-spec.md
|
|
|
|
|
|
2025-12-19 16:22:22 +09:00
|
|
|
### 완료된 작업 (2025-12-19)
|
|
|
|
|
|
2025-12-22 15:53:31 +09:00
|
|
|
#### 1. api 프로젝트 prices 테이블 연동
|
2025-12-19 16:22:22 +09:00
|
|
|
|
|
|
|
|
**수정된 파일:**
|
|
|
|
|
- `api/app/Models/Products/Price.php`
|
|
|
|
|
- 상수 추가: STATUS_*, ITEM_TYPE_*
|
|
|
|
|
- getCurrentPrice(): 현재 유효 단가 조회
|
|
|
|
|
- getSalesPriceByItemCode(): 품목 코드로 단가 조회
|
|
|
|
|
|
2025-12-22 15:53:31 +09:00
|
|
|
**Git 커밋:**
|
|
|
|
|
- `4d3085e` feat: 견적 산출 서비스 prices 테이블 연동
|
|
|
|
|
|
|
|
|
|
#### 2. mng 패턴 적용 - DB 기반 견적 산출 재작성
|
|
|
|
|
|
|
|
|
|
**추가된 파일:**
|
|
|
|
|
- `api/app/Models/Quote/QuoteFormula.php` - 수식 정의 모델
|
|
|
|
|
- `api/app/Models/Quote/QuoteFormulaCategory.php` - 카테고리 모델
|
|
|
|
|
- `api/app/Models/Quote/QuoteFormulaItem.php` - 품목 출력 모델
|
|
|
|
|
- `api/app/Models/Quote/QuoteFormulaRange.php` - 범위별 값 모델
|
|
|
|
|
- `api/app/Models/Quote/QuoteFormulaMapping.php` - 매핑 값 모델
|
|
|
|
|
|
|
|
|
|
**수정된 파일:**
|
|
|
|
|
- `api/app/Models/Products/Price.php`
|
|
|
|
|
- items 테이블 연동 (products/materials 대체)
|
|
|
|
|
- ITEM_TYPE 상수 업데이트 (FG/PT/RM/SM/CS)
|
|
|
|
|
|
|
|
|
|
- `api/app/Services/Quote/FormulaEvaluatorService.php`
|
|
|
|
|
- executeAll(): 카테고리별 수식 실행 (mng 패턴)
|
|
|
|
|
- evaluateRangeFormula(): QuoteFormula 기반 범위 평가
|
|
|
|
|
- evaluateMappingFormula(): QuoteFormula 기반 매핑 평가
|
|
|
|
|
- getItemPrice(): prices 테이블 연동
|
|
|
|
|
|
2025-12-19 16:22:22 +09:00
|
|
|
- `api/app/Services/Quote/QuoteCalculationService.php`
|
2025-12-22 15:53:31 +09:00
|
|
|
- 하드코딩된 품목 코드/로직 제거
|
|
|
|
|
- quote_formulas 테이블 기반 동적 계산
|
|
|
|
|
- getFormulasByCategory(): DB에서 수식 조회
|
|
|
|
|
- getInputSchema(): DB 기반 입력 스키마 생성
|
|
|
|
|
|
|
|
|
|
**핵심 변경:**
|
|
|
|
|
- 기존: 하드코딩된 품목 코드 (SCR-FABRIC-001 등)
|
|
|
|
|
- 변경: quote_formula_items 테이블에서 동적 조회
|
2025-12-19 16:22:22 +09:00
|
|
|
|
|
|
|
|
**Git 커밋:**
|
2025-12-22 15:53:31 +09:00
|
|
|
- `0d49e4c` refactor: 견적 산출 서비스 DB 기반으로 재작성
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🏷️ Git 태그
|
|
|
|
|
|
|
|
|
|
| 태그 | 설명 | 생성일 |
|
|
|
|
|
|------|------|--------|
|
|
|
|
|
| - | - | - |
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📝 정책 결정 기록
|
|
|
|
|
|
|
|
|
|
| 날짜 | 항목 | 결정 내용 | 근거 |
|
|
|
|
|
|------|------|----------|------|
|
|
|
|
|
| 2025-12-19 | DB 작업 위치 | api 프로젝트에서만 | mng 마이그레이션 방지 |
|
|
|
|
|
| 2025-12-19 | 신규 테이블 정책 | options JSON 적용 | Hybrid EAV 전략 |
|
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
|
|
|
| 2025-12-19 | 견적 유형 | 스크린/슬랫 2가지 | 5130 기존 구조 유지 |
|
|
|
|
|
| 2025-12-19 | 체크박스 옵션 | JSON으로 통합 저장 | 확장성 고려 |
|
2025-12-22 15:53:31 +09:00
|
|
|
| 2025-12-19 | 품목 테이블 | items 테이블 사용 | products/materials 통합 완료 |
|
|
|
|
|
| 2025-12-19 | 견적 산출 방식 | mng 패턴 (DB 기반) | 하드코딩 제거, 동적 수식 관리 |
|
|
|
|
|
| 2025-12-19 | tenant_id 없을 때 | 예외 발생 (fallback 금지) | 데이터 무결성 보장 |
|
2025-12-19 10:26:06 +09:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## ⚠️ 이슈/블로커
|
|
|
|
|
|
|
|
|
|
_현재 이슈 없음_
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📚 참조 문서
|
|
|
|
|
|
|
|
|
|
- [MASTER_PLAN.md](./MASTER_PLAN.md) - 마스터 플랜
|
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
|
|
|
- [phase-1-5130-analysis/](./phase-1-5130-analysis/) - Phase 1 분석 결과
|
|
|
|
|
- [docs/projects/mes/v1-analysis/quotation-analysis.md](../mes/v1-analysis/quotation-analysis.md) - MES 견적 분석
|
|
|
|
|
- [docs/projects/legacy-5130/03_ESTIMATE.md](../legacy-5130/03_ESTIMATE.md) - 5130 레거시 분석
|