---
source: mes_react/src/ERP_QUOTATION_GUIDE.md
section: 비즈니스 로직 분석
created: 2025-11-12
bp_mes_phase: Phase A - Step A.1
related:
  - business_user_story_summary.md
  - api_item_analysis_summary.md
  - react_screen_spec_summary.md
tags: [quotation, bom, pricing, business-logic, automation]
---

# ERP 견적 시스템 사용 가이드 요약

**분석일:** 2025-11-12
**원본 문서:** 498줄
**핵심 내용:** 가변 크기 제품 견적 자동 계산 시스템

---

## Executive Summary

### 🎯 시스템 개요

가변 크기 제품(셔터)의 견적을 자동 계산하는 ERP 시스템으로, 4가지 핵심 자동화 기능을 제공:

1. **🔗 치수 자동 연결**: 상위 제품 치수 → 하위 제품 치수 자동 전달
2. **💰 단가 자동 연동**: 하위 품목 판매단가 → 상위 품목 원가 자동 반영
3. **📊 BOM 전개**: 계층 구조 기반 구성품 자동 계산
4. **💲 원가/판매가 자동 계산**: 치수 기반 실시간 견적 산출

---

## 6단계 Phase 구성

### Phase 1: 기초 데이터 설정

**메뉴:**
- `기준정보 관리 > 사원 관리`
- `영업관리 > 매출처 관리`

**목적:** 견적서 작성을 위한 기본 마스터 데이터 등록

**등록 항목:**
- 사원 정보 (사원코드, 사원명, 부서, 직급)
- 매출처 정보 (거래처코드, 거래처명, 사업자번호)

---

### Phase 2: 원자재 등록

**메뉴:** `생산관리 > 품목관리 (개선)`

**품목 유형:** 원자재 (RM)

**등록 정보:**
- 품목명, 단위, 구매단가
- 예시: RM-001 (알루미늄 압출재, 8,000원/M)

**특징:** BOM 계산의 최하위 품목, 가격만 정의

---

### Phase 3: 구매 부품 등록

**메뉴:** `생산관리 > 품목관리 (개선)`

**품목 유형:** 부품 (PT) - 구매 부품

**등록 정보:**
- 품목명, 구매단가, 마진율
- 판매단가 자동 계산: `판매단가 = 구매단가 × (1 + 마진율/100)`

**예시:**
```
PT-MOTOR-001 (셔터 모터)
- 구매단가: 120,000원
- 마진율: 50%
- 판매단가: 180,000원 (자동)
```

---

### Phase 4: 제작 부품 등록 (가변 크기)

**메뉴:** `생산관리 > 품목관리 (개선)`

**품목 유형:** 부품 (PT) - 제작 부품

**중요 설정:** ✅ "가변 크기 제품" 체크

#### Step 1: 치수 정의

**치수/규격 탭:**
- 치수명: L (길이)
- 단위: mm
- 기본값: 3000, 최소값: 500, 최대값: 6000

#### Step 2: BOM 등록

**자재 추가:**
- 하위 품목: RM-001 (알루미늄 압출재)
- 수량 (고정): 0
- **계산식 (변수): L/1000** ← 핵심!
  - L=3000일 때 → 3000/1000 = 3M

**자재 2:**
- 하위 품목: RM-003 (브래킷)
- 수량 (고정): 8

#### Step 3: 원가 설정

**원가 탭:**
- 자재비: BOM 기반 자동 계산 (표시만)
- 가공비: 5,000원
- 마진율: 30%

**원가 계산 예시 (L=3000mm):**
```
자재비 = (3000/1000) × 8,000 + 8 × 500
       = 24,000 + 4,000
       = 28,800원

총원가 = 자재비 + 가공비
       = 28,800 + 5,000
       = 33,800원

판매단가 = 총원가 × (1 + 30%)
         = 33,800 × 1.3
         = 43,940원
```

---

### Phase 5: 완제품 등록 (가변 크기 + 옵션)

**메뉴:** `생산관리 > 품목관리 (개선)`

**품목 유형:** 완제품 (FG)

#### Step 1: 기본 정보

- 품목명: 셔터 세트 (가변 크기)
- ✅ "가변 크기 제품" 체크

#### Step 2: 치수 및 옵션 정의

**치수 추가:**
- W (폭): 기본값 3000mm
- H (높이): 기본값 2500mm

**옵션 추가:**
- MOTOR (모터 포함): Y/N, 기본값 Y
- REMOTE (리모콘 포함): Y/N, 기본값 Y

#### Step 3: BOM 등록

**구성품:**
- PT-RAIL-VAR (가이드레일) × 2
- PT-CURTAIN-VAR (셔터 커튼) × 1
- PT-MOTOR-001 (모터) × 1, **조건: MOTOR='Y'** ← 조건부 BOM
- PT-REMOTE-001 (리모콘) × 1, **조건: REMOTE='Y'**

#### Step 4: 원가 설정

**원가 탭:**
- 자재비: 하위 구성품 판매단가 합계 (자동)
- 공임비: 100,000원
- 설치비: 150,000원
- 마진율: 20%

---

### Phase 5-2: 치수 연결 설정 ⭐ (핵심 기능!)

**메뉴:** `생산관리 > BOM관리 (개선)`

**치수 자동 전달 설정:**

**매핑 1: 세트.W → 레일.L**
- 하위 품목: PT-RAIL-VAR
- 하위 치수: L
- 상위 치수: W

**매핑 2: 세트.W → 커튼.W**
- 하위 품목: PT-CURTAIN-VAR
- 하위 치수: W
- 상위 치수: W

**매핑 3: 세트.H → 커튼.H**
- 하위 품목: PT-CURTAIN-VAR
- 하위 치수: H
- 상위 치수: H

**동작 원리:**
```
견적 입력: 세트 W=3000, H=2500

↓ 자동 전달 (치수 매핑)

가이드레일 L = 3000
셔터 커튼 W = 3000, H = 2500

↓ 각 하위 품목 원가 자동 계산

상위 품목 자재비 = Σ(하위 판매단가)
```

---

### Phase 6: 견적서 작성 (실시간 계산)

**메뉴:** `영업관리 > 견적관리 (개선)`

#### Step 1: 견적서 기본 정보

- 견적번호: QT-2025-0001 (자동)
- 거래처명: ABC건설
- 담당자: 김영업
- 견적일자, 납기일자

#### Step 2: 품목 추가 및 견적 계산

**품목 선택:** FG-SHUTTER-SET-VAR

**치수 입력:**
- 폭 (W): 3000mm
- 높이 (H): 2500mm

**옵션 선택:**
- 모터 포함: Y
- 리모콘 포함: Y

**수량:** 1

**실시간 견적 계산 미리보기:**
```
┌─────────────────────────────────────┐
│ 구성품 목록 (BOM 전개)              │
├─────────────────────────────────────┤
│ • 가이드레일 (3.0m) × 2   87,880원 │
│ • 셔터 커튼 (7.5㎡) × 1  250,000원  │
│ • 셔터 모터 × 1          180,000원  │
│ • 리모콘 × 1              80,000원  │
├─────────────────────────────────────┤
│ 원가 내역                           │
├─────────────────────────────────────┤
│ 자재비:     597,880원               │
│ 공임비:     100,000원               │
│ 설치비:     150,000원               │
│ 총 원가:    847,880원               │
├─────────────────────────────────────┤
│ 견적 금액                           │
├─────────────────────────────────────┤
│ 판매단가:  1,017,456원 (마진 20%)   │
│ 부가세:      101,746원 (10%)        │
│ 총액:      1,119,202원              │
└─────────────────────────────────────┘
```

---

## 🎯 핵심 자동화 프로세스

### 1. 🔗 치수 자동 연결

**설정:** BOM관리 > 치수 연결 탭
```
세트.W → 레일.L
세트.W → 커튼.W
세트.H → 커튼.H
```

**실행:** 견적 작성 시
```
사용자 입력: 세트 W=4000, H=3000

↓ 시스템 자동 처리

레일.L = 4000
커튼.W = 4000
커튼.H = 3000
```

---

### 2. 💰 단가 자동 연동

**원리:** 하위 품목 판매단가 → 상위 품목 자재비

```
[하위 품목 계산]
가이드레일 (L=4000):
- 자재비: (4000/1000) × 8,000 = 32,000원
- 가공비: 5,000원
- 총원가: 37,000원
- 판매단가: 37,000 × 1.3 = 48,100원

[상위 품목 계산]
셔터 세트:
- 자재비 = 가이드레일 판매단가 × 2 + ...
         = 48,100 × 2 + ...
```

---

### 3. 📊 BOM 전개

**다단계 구조:**
```
FG-SHUTTER-SET-VAR (완제품)
├─ PT-RAIL-VAR (제작 부품)
│  ├─ RM-001 (원자재)
│  └─ RM-003 (원자재)
├─ PT-CURTAIN-VAR (제작 부품)
├─ PT-MOTOR-001 (구매 부품) [MOTOR='Y']
└─ PT-REMOTE-001 (구매 부품) [REMOTE='Y']
```

**조건부 처리:**
- MOTOR='Y' → 모터 포함
- MOTOR='N' → 모터 제외 (자재비 -180,000원)

---

## 💡 사용 팁

### 치수 변경 시 자동 재계산

견적 작성 시 치수를 변경하면:
1. 하위 품목 원가 재계산
2. 하위 품목 판매단가 갱신
3. 상위 품목 자재비 갱신
4. 최종 견적금액 자동 갱신

### 옵션 변경 시 BOM 재전개

옵션을 변경하면:
1. 조건부 구성품 포함/제외 판정
2. BOM 재전개
3. 자재비 재계산
4. 견적금액 자동 갱신

### 단가 이력 관리

원자재 단가 변경 시:
1. 제작 부품 원가 재계산
2. 제작 부품 판매단가 갱신
3. 완제품 자재비 갱신
4. (옵션) 기존 견적서 갱신 여부 선택

---

## 🔄 프로세스 플로우

```
1. 기초 데이터 (Phase 1)
   └─> 사원, 매출처 등록

2. 원자재 (Phase 2)
   └─> RM-001, RM-003 등록

3. 구매 부품 (Phase 3)
   └─> PT-MOTOR-001 등록

4. 제작 부품 (Phase 4)
   └─> PT-RAIL-VAR 등록
       ├─ 치수 정의 (L)
       ├─ BOM 등록 (RM-001, RM-003)
       └─ 원가 설정 (가공비, 마진)

5. 완제품 (Phase 5)
   └─> FG-SHUTTER-SET-VAR 등록
       ├─ 치수/옵션 정의 (W, H, MOTOR, REMOTE)
       ├─ BOM 등록 (PT-RAIL-VAR, PT-MOTOR-001 등)
       ├─ 치수 연결 (W→L, W→W, H→H) ⭐
       └─ 원가 설정 (공임비, 설치비, 마진)

6. 견적 작성 (Phase 6)
   └─> 치수 입력 → 실시간 계산 → 견적서 생성
```

---

## 📊 데이터 구조

### 품목 코드 체계

- **RM-XXX**: 원자재 (Raw Material)
- **PT-XXX**: 부품 (Part) - 구매/제작
- **FG-XXX**: 완제품 (Finished Goods)

### 원가 계산 순서

```
원자재 → 제작 부품 → 완제품
(하위 → 상위 방향으로 계산)
```

### 판매단가 공식

```
제작 부품: (자재비 + 가공비) × (1 + 마진율)
완제품: (자재비 + 공임비 + 설치비) × (1 + 마진율)
```

---

## ⚠️ 주의사항

### 품목 등록 순서

반드시 하위 품목부터 등록:
1. 원자재 (RM)
2. 구매 부품 (PT-구매)
3. 제작 부품 (PT-제작)
4. 완제품 (FG)

### 가변 크기 제품

- 반드시 "가변 크기 제품" 체크박스 선택
- 치수/규격 탭에서 치수 정의 필수
- BOM에서 치수 연결 설정 필수

### 조건부 BOM

- 조건식 정확히 입력: `MOTOR='Y'`
- 옵션명과 일치해야 함
- 대소문자 구분 주의

---

## 백엔드 연동 요구사항 (API 관점)

### 필요한 API 엔드포인트

1. **품목 등록 API:**
   - `POST /api/v1/products` (완제품, 부품)
   - `POST /api/v1/materials` (원자재)
   - 치수 정의 필드 (`dimensions` JSON)
   - 옵션 정의 필드 (`options` JSON)

2. **BOM 관리 API:**
   - `POST /api/v1/boms` (BOM 생성)
   - `POST /api/v1/boms/{id}/components` (구성품 추가)
   - 계산식 필드 (`formula`)
   - 조건식 필드 (`condition`)

3. **치수 연결 API:**
   - `POST /api/v1/boms/{id}/dimension-mappings` (치수 매핑)
   - 상위-하위 치수 연결 로직

4. **가격 계산 API:**
   - `POST /api/v1/pricing/calculate` (실시간 견적 계산)
   - 입력: 품목ID, 치수값, 옵션값
   - 출력: BOM 전개, 원가 내역, 판매단가

5. **견적서 API:**
   - `POST /api/v1/quotes` (견적서 생성)
   - `POST /api/v1/quotes/{id}/items` (품목 추가)
   - 실시간 계산 통합

---

## 프론트엔드 연동 요구사항 (React 관점)

### 필요한 컴포넌트

1. **ItemForm (품목 등록 폼):**
   - 품목 유형 선택 (RM/PT/FG)
   - 가변 크기 체크박스
   - 치수 동적 추가/삭제
   - 옵션 동적 추가/삭제

2. **BomEditor (BOM 편집기):**
   - 구성품 트리 뷰
   - 수량/계산식 입력
   - 조건식 입력

3. **DimensionMappingEditor (치수 연결 편집기):**
   - 상위 치수 → 하위 치수 매핑 UI
   - 드래그 앤 드롭 또는 셀렉트 박스

4. **QuoteCalculator (견적 계산기):**
   - 치수 입력 폼
   - 옵션 선택
   - 실시간 계산 미리보기
   - BOM 전개 트리 뷰

---

## 관련 문서

- **USER_STORY_GUIDE.md**: 역할별 유저 스토리 (17개 스토리)
- **api_item_analysis_summary.md**: API 품목 분석 (가격 시스템, BOM)
- **react_screen_spec_summary.md**: 화면 설계 명세 (견적 관리, 품목 관리)

---

**문서 버전:** v1.0 요약본
**작성일:** 2025-11-12 (BP-MES Phase A.1)
**다음 문서:** business_user_story_summary.md
