Files
sam-docs/projects/mes/quote-analysis/README.md
hskwon 4d61f22eb3 feat(mes): 판매관리 기능 분석 문서 추가
- 거래처관리: 목록/상세/등록 UI 분석, API 스펙 정의
- 견적관리: 견적 프로세스 분석, 자동계산 규칙 정의
- 현장관리: 현장 상태 흐름 분석, 진행률 계산 규칙
- 단가관리: 품목유형별 단가 구조 분석, 마진율 계산

포함된 스크린샷: 15개 (거래처 3, 견적 4, 현장 3, 단가 1)
2025-12-18 15:55:52 +09:00

6.8 KiB

견적관리 분석 결과

분석 일시: 2024-12-18 분석 대상: design/mes기획서_리액트 (디자인팀 기획 사이트)

분석 목적

디자인팀에서 제작한 기획 사이트의 견적관리 기능을 분석하여 API 개발에 필요한 스펙을 추출합니다.


UI 스크린샷

1. 견적 목록 페이지

견적 목록

주요 요소:

  • 상단 요약 카드 (4개):
    • 이번 달 견적 금액: 447M
    • 진행중 견적 금액: 96.9M
    • 이번 주 신규 견적: 15건
    • 이번 달 수주 전환율: 41.7%
  • 탭 필터: 전체, 최초작성, 수정중, 최종확정, 수주전환
  • 검색: 견적번호, 거래처, 현장명
  • 테이블 컬럼: 체크박스, 번호, 견적번호, 접수일, 상태, 제품명, 수량, 금액, 발주처, 현장명, 담당자, 비고

2. 견적 상세 페이지

견적 상세

주요 섹션:

  • 기본 정보:
    • 견적번호, 등록일, 작성자
    • 발주처, 현장명
    • 담당자, 연락처
    • 납기일, 상태
    • 비고
  • 자동 견적 산출 정보:
    • 층수, 부호
    • 제품카테고리, 제품명
    • 가로(mm), 세로(mm)
    • 설치유형, 모터전원, 제어기
    • 수량, 금액(자동계산)

헤더 버튼:

  • 견적서
  • 산출내역서
  • 발주서
  • 목록
  • 수정
  • 수주전환

3. 견적서 문서 모달

견적서 모달

문서 구성:

  • 문서 제목: QUOTATION
  • 수신처(Buyer) 정보: 회사명, 주소, 전화, 팩스, 담당자
  • 공급자(Supplier) 정보: 회사명, 사업자번호, 주소, 전화, 팩스, 대표자
  • 품목 테이블: 번호, 품목명, 규격, 단위, 수량, 단가, 금액, 비고
  • 합계 정보: 합계금액, 부가세, 총액
  • 특기사항

출력 옵션:

  • PDF 다운로드
  • 이메일 발송
  • FAX 발송
  • 카카오톡
  • 프린트

4. 견적 등록 폼

견적 등록

입력 섹션:

기본 정보:

필드명 타입 필수 비고
등록일 date 기본: 오늘
작성자 text 로그인 사용자
발주처 select/search 거래처 선택
현장명 text
담당자 text
연락처 text
납기일 date
비고 textarea

자동 견적 산출:

필드명 타입 필수 비고
층수 text B1, 1F 등
부호 text 도면 부호
제품카테고리 select 스크린, 슬랫 등
제품명 select 카테고리에 따라
가로(mm) number 개구폭
세로(mm) number 개구높이
설치유형 select 백면형, 양면형, 편면형
모터전원 select 220V, 380V
제어기 select 유선, 무선
수량 number 기본: 1

데이터 스키마

Quote (견적)

quotes
├── id (PK)
├── tenant_id (FK)
├── quote_no (UNIQUE) - 자동 채번
├── quote_date - 견적일
├── customer_id (FK) - 거래처
├── customer_name - 거래처명 (스냅샷)
├── site_name - 현장명
├── manager - 담당자
├── contact - 연락처
├── due_date - 납기일
├── status - 상태
├── total_amount - 총액
├── vat_amount - 부가세
├── grand_total - 합계(VAT포함)
├── note - 비고
├── special_note - 특기사항
├── created_by
├── created_at
├── updated_at
└── deleted_at

QuoteItem (견적 품목)

quote_items
├── id (PK)
├── quote_id (FK)
├── seq - 순번
├── floor - 층
├── location - 부호/위치
├── product_category - 제품카테고리
├── product_code - 품목코드
├── product_name - 품목명
├── open_width - 개구폭(mm)
├── open_height - 개구높이(mm)
├── prod_width - 제작폭(mm) - 자동계산
├── prod_height - 제작높이(mm) - 자동계산
├── install_type - 설치유형
├── motor_voltage - 모터전원
├── controller_type - 제어기 타입
├── qty - 수량
├── unit_price - 단가
├── amount - 금액
├── spec - 규격 (JSON)
├── created_at
└── updated_at

상태 흐름

최초작성 → 수정중 → 최종확정 → 수주전환
     ↑__________|
상태 설명 다음 가능 상태
최초작성 신규 등록 수정중, 최종확정
수정중 수정 진행 중 최초작성, 최종확정
최종확정 확정 완료 수주전환
수주전환 수주로 전환됨 - (최종)

자동 계산 규칙

// 제작 사이즈 자동 계산
prod_width = open_width + 140
prod_height = MAX(open_height + 400, 2950)

// 샤프트 자동 선정
shaft = open_width > 6000 ? 5인치 : 4인치

// 모터용량 자동 선정
capacity = open_width > 6000 ? 300kg : 160kg

// 금액 계산
amount = qty * unit_price
total_amount = SUM(items.amount)
vat_amount = total_amount * 0.1
grand_total = total_amount + vat_amount

API 스펙

견적 CRUD

GET    /api/quotes                   - 견적 목록
GET    /api/quotes/{id}              - 견적 상세
POST   /api/quotes                   - 견적 등록
PUT    /api/quotes/{id}              - 견적 수정
DELETE /api/quotes/{id}              - 견적 삭제
DELETE /api/quotes                   - 견적 일괄 삭제

견적 상태 변경

POST   /api/quotes/{id}/confirm      - 최종확정
POST   /api/quotes/{id}/revise       - 수정중으로 변경
POST   /api/quotes/{id}/to-order     - 수주전환

문서 출력

GET    /api/quotes/{id}/documents/quote        - 견적서
GET    /api/quotes/{id}/documents/calculation  - 산출내역서
GET    /api/quotes/{id}/documents/order-form   - 발주서

목록 조회 Query Parameters

파라미터 타입 설명
status string 상태 필터 (최초작성, 수정중, 최종확정, 수주전환)
search string 검색어 (견적번호, 거래처, 현장명)
from_date date 시작일
to_date date 종료일
page number 페이지 번호
per_page number 페이지당 개수

채번 규칙

견적번호: QT-YYMMDD-##
예시: QT-241218-01, QT-241218-02

통계 계산

항목 계산식
이번 달 견적 금액 SUM(grand_total) WHERE quote_date in current_month
진행중 견적 금액 SUM(grand_total) WHERE status IN ('최초작성', '수정중')
이번 주 신규 견적 COUNT(*) WHERE created_at in current_week
이번 달 수주 전환율 (수주전환 건수 / 전체 건수) * 100