269 lines
7.3 KiB
Markdown
269 lines
7.3 KiB
Markdown
|
|
# 단가관리 분석 결과
|
|||
|
|
|
|||
|
|
> 분석 일시: 2024-12-18
|
|||
|
|
> 분석 대상: design/mes기획서_리액트 (디자인팀 기획 사이트)
|
|||
|
|
|
|||
|
|
## 분석 목적
|
|||
|
|
|
|||
|
|
디자인팀에서 제작한 기획 사이트의 단가관리 기능을 분석하여 API 개발에 필요한 스펙을 추출합니다.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## UI 스크린샷
|
|||
|
|
|
|||
|
|
### 1. 단가 목록 페이지
|
|||
|
|

|
|||
|
|
|
|||
|
|
**주요 요소:**
|
|||
|
|
|
|||
|
|
**상단 요약 카드 (4개):**
|
|||
|
|
| 항목 | 값 | 설명 |
|
|||
|
|
|------|-----|------|
|
|||
|
|
| 전체 품목 | 70 | 등록된 총 품목 수 |
|
|||
|
|
| 활성 단가 | 70 | 활성 상태인 단가 수 |
|
|||
|
|
| 거래처그룹 | 4 | 거래처 그룹 수 |
|
|||
|
|
| 품목유형 | 5 | 품목 유형 수 |
|
|||
|
|
|
|||
|
|
**탭 필터 (품목유형별):**
|
|||
|
|
| 탭 | 건수 |
|
|||
|
|
|-----|------|
|
|||
|
|
| 전체 | 70 |
|
|||
|
|
| 제품 | 0 |
|
|||
|
|
| 부품 | 36 |
|
|||
|
|
| 부자재 | 0 |
|
|||
|
|
| 원자재 | 15 |
|
|||
|
|
| 소모품 | 0 |
|
|||
|
|
|
|||
|
|
**테이블 컬럼:**
|
|||
|
|
| 컬럼 | 설명 |
|
|||
|
|
|------|------|
|
|||
|
|
| 번호 | 순번 |
|
|||
|
|
| 품목유형 | 서비스, 원자재, 부품, 반제품 등 |
|
|||
|
|
| 품목코드 | 품목 식별 코드 |
|
|||
|
|
| 품목명 | 품목 이름 |
|
|||
|
|
| 규격 | 규격 정보 |
|
|||
|
|
| 단위 | EA, SET, KG, M 등 |
|
|||
|
|
| 매입단가 | 구매 단가 |
|
|||
|
|
| 가공비 | 가공 비용 |
|
|||
|
|
| LOSS(%) | 손실률 |
|
|||
|
|
| 판매단가 | 판매 가격 |
|
|||
|
|
| 마진율 | (판매단가-매입단가)/판매단가 * 100 |
|
|||
|
|
| 적용일 | 단가 적용 시작일 |
|
|||
|
|
| 상태 | 활성/비활성 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 데이터 분석 (캡처된 품목 기준)
|
|||
|
|
|
|||
|
|
### 품목유형별 분포
|
|||
|
|
|
|||
|
|
| 품목유형 | 건수 | 주요 품목 |
|
|||
|
|
|----------|------|-----------|
|
|||
|
|
| 서비스 | 1 | 검사비 |
|
|||
|
|
| 원자재 | 15 | 하부BASE, 상부덮개, 마구리, 평철, 엘바, 하장바, 각파이프, 조인트바, 환봉 |
|
|||
|
|
| 부품 | 36 | 받침용앵글, 브라켓, 감기샤프트, 연동제어기, 전동개폐기 |
|
|||
|
|
| 반제품 | 18 | 연기차단재, 하단마감재, 케이스, 가이드레일 |
|
|||
|
|
|
|||
|
|
### 대표 품목 예시
|
|||
|
|
|
|||
|
|
**원자재:**
|
|||
|
|
| 품목코드 | 품목명 | 규격 | 단위 | 매입단가 | 판매단가 | 마진율 |
|
|||
|
|
|----------|--------|------|------|----------|----------|--------|
|
|||
|
|
| 하부BASE-코너형 | 하부BASE(코너형) | - | SET | 30,000 | 45,000 | 50% |
|
|||
|
|
| 각파이프-30×30L6000 | 각파이프 30×30 L:6000 | 30×30 | EA | 15,000 | 22,500 | 50% |
|
|||
|
|
|
|||
|
|
**부품:**
|
|||
|
|
| 품목코드 | 품목명 | 규격 | 단위 | 매입단가 | 판매단가 | 마진율 |
|
|||
|
|
|----------|--------|------|------|----------|----------|--------|
|
|||
|
|
| 전동개폐기-220V300KG유선 | 전동개폐기 300KG 220V 유선 | 300 | EA | 350,000 | 480,000 | 37% |
|
|||
|
|
| 감기샤프트-76.3×2.8TL3000 | 감기샤프트 76.3×2.8T L:3000 | 76 | EA | 55,000 | 80,000 | 45% |
|
|||
|
|
|
|||
|
|
**반제품:**
|
|||
|
|
| 품목코드 | 품목명 | 규격 | 단위 | 매입단가 | 판매단가 | 마진율 |
|
|||
|
|
|----------|--------|------|------|----------|----------|--------|
|
|||
|
|
| RC30 | 가이드레일(벽면형) C형 3000 | 3000 | EA | 18,000 | 27,000 | 50% |
|
|||
|
|
| CB30 | 케이스(후면코너부) 3000 | 3000 | EA | 20,000 | 30,000 | 50% |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 데이터 스키마
|
|||
|
|
|
|||
|
|
### Price (단가)
|
|||
|
|
```
|
|||
|
|
prices
|
|||
|
|
├── id (PK)
|
|||
|
|
├── tenant_id (FK)
|
|||
|
|
├── item_type - 품목유형 (제품, 부품, 부자재, 원자재, 소모품, 서비스, 반제품)
|
|||
|
|
├── item_code (UNIQUE) - 품목코드
|
|||
|
|
├── item_name - 품목명
|
|||
|
|
├── specification - 규격
|
|||
|
|
├── unit - 단위 (EA, SET, KG, M, ㎡ 등)
|
|||
|
|
├── purchase_price - 매입단가
|
|||
|
|
├── processing_cost - 가공비
|
|||
|
|
├── loss_rate - 손실률 (%)
|
|||
|
|
├── selling_price - 판매단가
|
|||
|
|
├── margin_rate - 마진율 (%) - 자동계산
|
|||
|
|
├── effective_date - 적용일
|
|||
|
|
├── status - 상태 (활성/비활성)
|
|||
|
|
├── customer_group_id - 거래처그룹 (특별단가용)
|
|||
|
|
├── note - 비고
|
|||
|
|
├── created_at
|
|||
|
|
├── updated_at
|
|||
|
|
└── deleted_at
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### PriceHistory (단가 변경이력)
|
|||
|
|
```
|
|||
|
|
price_histories
|
|||
|
|
├── id (PK)
|
|||
|
|
├── price_id (FK)
|
|||
|
|
├── previous_purchase_price
|
|||
|
|
├── previous_selling_price
|
|||
|
|
├── new_purchase_price
|
|||
|
|
├── new_selling_price
|
|||
|
|
├── changed_by
|
|||
|
|
├── changed_at
|
|||
|
|
└── reason - 변경사유
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 품목유형 (item_type)
|
|||
|
|
|
|||
|
|
| 유형 | 설명 | 예시 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 제품 | 완성품 | 방화스크린셔터, 방화슬랫셔터 |
|
|||
|
|
| 부품 | 조립 부품 | 전동개폐기, 감기샤프트, 브라켓 |
|
|||
|
|
| 반제품 | 중간 가공품 | 가이드레일, 케이스, 하단마감재 |
|
|||
|
|
| 원자재 | 원재료 | 철판, 파이프, 볼트 |
|
|||
|
|
| 부자재 | 보조재료 | 나사, 패킹, 접착제 |
|
|||
|
|
| 소모품 | 소모성 재료 | 장갑, 테이프, 라벨 |
|
|||
|
|
| 서비스 | 용역 | 검사비, 운송비, 설치비 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 단위 코드
|
|||
|
|
|
|||
|
|
| 단위 | 설명 | 사용 품목 |
|
|||
|
|
|------|------|-----------|
|
|||
|
|
| EA | 개 | 개별 품목 |
|
|||
|
|
| SET | 세트 | 세트 품목 |
|
|||
|
|
| KG | 킬로그램 | 중량 기준 |
|
|||
|
|
| M | 미터 | 길이 기준 |
|
|||
|
|
| ㎡ | 제곱미터 | 면적 기준 |
|
|||
|
|
| BOX | 박스 | 박스 단위 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 자동 계산
|
|||
|
|
|
|||
|
|
### 마진율 계산
|
|||
|
|
```javascript
|
|||
|
|
margin_rate = ((selling_price - purchase_price) / selling_price) * 100
|
|||
|
|
|
|||
|
|
// 가공비와 손실률 포함 시
|
|||
|
|
total_cost = purchase_price + processing_cost
|
|||
|
|
adjusted_cost = total_cost * (1 + loss_rate / 100)
|
|||
|
|
margin_rate = ((selling_price - adjusted_cost) / selling_price) * 100
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 손실률 적용
|
|||
|
|
```javascript
|
|||
|
|
// 실제 필요량 계산
|
|||
|
|
required_qty = order_qty * (1 + loss_rate / 100)
|
|||
|
|
|
|||
|
|
// 예: 100개 주문, 손실률 5%
|
|||
|
|
// required_qty = 100 * 1.05 = 105개
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## API 스펙
|
|||
|
|
|
|||
|
|
### 단가 CRUD
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
GET /api/prices - 단가 목록
|
|||
|
|
GET /api/prices/{id} - 단가 상세
|
|||
|
|
POST /api/prices - 단가 등록
|
|||
|
|
PUT /api/prices/{id} - 단가 수정
|
|||
|
|
DELETE /api/prices/{id} - 단가 삭제
|
|||
|
|
DELETE /api/prices - 단가 일괄 삭제
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 단가 조회 (견적/수주용)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
GET /api/prices/lookup - 품목코드로 단가 조회
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**Query Parameters:**
|
|||
|
|
| 파라미터 | 타입 | 설명 |
|
|||
|
|
|----------|------|------|
|
|||
|
|
| item_code | string | 품목코드 |
|
|||
|
|
| customer_group_id | number | 거래처그룹 (특별단가 적용) |
|
|||
|
|
|
|||
|
|
### 단가 이력
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
GET /api/prices/{id}/history - 단가 변경 이력
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 목록 조회 Query Parameters
|
|||
|
|
|
|||
|
|
| 파라미터 | 타입 | 설명 |
|
|||
|
|
|----------|------|------|
|
|||
|
|
| item_type | string | 품목유형 필터 |
|
|||
|
|
| status | string | 상태 필터 |
|
|||
|
|
| search | string | 검색어 (품목코드, 품목명, 규격) |
|
|||
|
|
| page | number | 페이지 번호 |
|
|||
|
|
| per_page | number | 페이지당 개수 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 거래처그룹 단가
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
customer_group_prices
|
|||
|
|
├── id (PK)
|
|||
|
|
├── price_id (FK)
|
|||
|
|
├── customer_group_id (FK)
|
|||
|
|
├── special_price - 특별단가
|
|||
|
|
├── discount_rate - 할인율 (%)
|
|||
|
|
├── effective_from - 적용 시작일
|
|||
|
|
├── effective_to - 적용 종료일
|
|||
|
|
├── status
|
|||
|
|
└── created_at
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**특별단가 적용 우선순위:**
|
|||
|
|
1. 거래처별 특별단가
|
|||
|
|
2. 거래처그룹 특별단가
|
|||
|
|
3. 기본 판매단가
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 품목코드 규칙
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
{품목명약어}-{규격}
|
|||
|
|
|
|||
|
|
예시:
|
|||
|
|
- 전동개폐기-220V300KG유선
|
|||
|
|
- 감기샤프트-76.3×2.8TL3000
|
|||
|
|
- RC30 (가이드레일 C형 3000)
|
|||
|
|
- CB30 (케이스 후면코너부 3000)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 통계 정보
|
|||
|
|
|
|||
|
|
| 항목 | 계산식 |
|
|||
|
|
|------|--------|
|
|||
|
|
| 전체 품목 | COUNT(*) |
|
|||
|
|
| 활성 단가 | COUNT(*) WHERE status = '활성' |
|
|||
|
|
| 거래처그룹 | COUNT(DISTINCT customer_group_id) |
|
|||
|
|
| 품목유형 | COUNT(DISTINCT item_type) |
|
|||
|
|
| 평균 마진율 | AVG(margin_rate) |
|