# 비즈니스 리포트 양식 구성 TODO

> **최초 작성**: 2026-03-09
> **목적**: ERP 업무 단계별 필요 리포트 양식 정의 및 구현 추적
> **연결 시스템**: 리포트 디자이너 (`/admin/screenMng/reportList/designer/:reportId`) + `report_menu_mapping` 메뉴 연결

---

## 개요

리포트는 업무 플로우의 특정 단계가 아니라, **각 단계에서 생성된 데이터를 문서로 출력하는 횡단 기능**이다.
리포트 디자이너에서 양식을 설계하고, `report_menu_mapping`으로 해당 업무 메뉴에 연결하면, 사용자가 업무 화면에서 `v2-report-viewer`를 통해 리포트를 조회/인쇄/PDF 다운로드할 수 있다.

```
업무 화면 (메뉴) → v2-report-viewer → report_menu_mapping → report_master → 리포트 렌더링 → PDF/인쇄
```

---

## 구현 전제 조건

| 조건 | 상태 | 비고 |
|------|------|------|
| 리포트 디자이너 (Phase 1~6) | ✅ 완료 | 양식 설계 가능 |
| v2-report-viewer 컴포넌트 | ✅ 완료 | 화면에 배치 가능 |
| report_menu_mapping 테이블 | ✅ 완료 | 메뉴 연결 가능 |
| PDF 렌더링/다운로드 | ✅ 완료 | 미리보기 + PDF 출력 |
| 비주얼 쿼리 빌더 (Phase 6) | ✅ 완료 | 데이터 소스 연결 가능 |
| 카드 컴포넌트 고도화 (Phase 7) | 🔄 진행 중 | 카드형 리포트 양식에 필요 |

---

## 단계별 리포트 양식 TODO

### 1. 견적관리

| 항목 | 내용 |
|------|------|
| 리포트명 | 견적서 |
| 용도 | 고객에게 견적서 발송 (PDF 출력/이메일 첨부) |
| 데이터 소스 | `quote_header` + `quote_items` |
| 연결 메뉴 | 견적관리 |
| 양식 구성 | 회사 로고, 견적번호, 견적일, 유효기간, 거래처 정보, 품목 테이블 (품목코드/품명/규격/수량/단가/금액), 합계, 비고 |
| 선행 조건 | ❌ `quote_header`, `quote_items` 테이블 미생성 → 견적관리 화면 구현 후 작업 |
| 상태 | ⬜ 대기 |

---

### 2. 수주관리

| 항목 | 내용 |
|------|------|
| 리포트명 | 수주 확인서 |
| 용도 | 수주 내역 확인/인쇄 (고객 또는 내부 확인용) |
| 데이터 소스 | `sales_order_mng` JOIN `customer_mng` JOIN `item_info` |
| 연결 메뉴 | 수주관리 (Screen 156) |
| 양식 구성 | 회사 로고, 수주번호, 수주일, 납기일, 거래처 정보, 품목 테이블 (품목코드/품명/규격/수량/단가/금액), 합계, 담당자 |
| 선행 조건 | ✅ `sales_order_mng` 테이블 존재 |
| 상태 | ⬜ 대기 |

| 항목 | 내용 |
|------|------|
| 리포트명 | 수주 현황표 |
| 용도 | 기간별/거래처별 수주 현황 집계 |
| 데이터 소스 | `sales_order_mng` (GROUP BY 거래처/기간) |
| 연결 메뉴 | 수주관리 (Screen 156) |
| 양식 구성 | 조회 기간, 거래처별 수주 건수/금액 집계 테이블, 합계 |
| 선행 조건 | ✅ `sales_order_mng` 테이블 존재 |
| 상태 | ⬜ 대기 |

---

### 3. 생산계획

| 항목 | 내용 |
|------|------|
| 리포트명 | 생산계획 현황표 |
| 용도 | 계획 대비 실적 비교, 생산 일정 공유 |
| 데이터 소스 | `production_plan_mng` JOIN `item_info` |
| 연결 메뉴 | 생산계획관리 |
| 양식 구성 | 조회 기간, 품목별 계획수량/실적수량/달성률 테이블, 설비별 가동 현황, 합계 |
| 선행 조건 | ✅ `production_plan_mng` 테이블 존재 (범용 API 사용) |
| 상태 | ⬜ 대기 |

---

### 4. 작업지시

| 항목 | 내용 |
|------|------|
| 리포트명 | 작업지시서 |
| 용도 | 현장에 작업지시서 인쇄/배포 |
| 데이터 소스 | `work_order_mng` JOIN `work_order_material` JOIN `item_info` |
| 연결 메뉴 | 작업지시 |
| 양식 구성 | 작업지시번호, 작업일, 품목 정보, 지시수량, 공정명, 투입 자재 테이블 (자재코드/자재명/소요량/단위), 작업자, 비고 |
| 선행 조건 | ❌ `work_order_mng`, `work_order_material` 테이블 미생성 → 작업지시 화면 구현 후 작업 |
| 상태 | ⬜ 대기 |

---

### 5. 발주관리

| 항목 | 내용 |
|------|------|
| 리포트명 | 발주서 |
| 용도 | 공급업체에 발주서 발송 (PDF 출력/이메일 첨부) |
| 데이터 소스 | `purchase_order` JOIN `supplier_mng` |
| 연결 메뉴 | 발주관리 (Screen 1244) |
| 양식 구성 | 회사 로고, 발주번호, 발주일, 납기일, 공급업체 정보, 품목 테이블 (품목코드/품명/규격/수량/단가/금액), 합계, 담당자 |
| 선행 조건 | ✅ `purchase_order` 테이블 존재 |
| 상태 | ⬜ 대기 |

---

### 6. 품질검사

| 항목 | 내용 |
|------|------|
| 리포트명 | 검사 성적서 |
| 용도 | 검사 결과 문서화 (고객 제출용/내부 보관용) |
| 데이터 소스 | `inspection` JOIN `item_info` |
| 연결 메뉴 | 검사정보관리 (Screen 1616) |
| 양식 구성 | 검사번호, 검사일, 검사유형(수입/공정/출하), 품목 정보, LOT번호, 검사수량, 합격수량, 불량수량, 판정결과, 검사자, 비고 |
| 선행 조건 | ✅ `inspection` 테이블 존재 |
| 상태 | ⬜ 대기 |

---

### 7. 출고관리

| 항목 | 내용 |
|------|------|
| 리포트명 | 출하명세서 |
| 용도 | 고객에게 출하 내역 전달 |
| 데이터 소스 | `shipment_header` JOIN `shipment_detail` JOIN `customer_mng` |
| 연결 메뉴 | 출고관리 (Screen 2296) |
| 양식 구성 | 회사 로고, 출하번호, 출하일, 거래처 정보, 품목 테이블 (품목코드/품명/규격/수량/단위), 합계, 비고 |
| 선행 조건 | ✅ `shipment_header`, `shipment_detail` 테이블 존재 |
| 상태 | ⬜ 대기 |

| 항목 | 내용 |
|------|------|
| 리포트명 | 거래명세서 |
| 용도 | 거래 내역 증빙 (세금계산서 보조) |
| 데이터 소스 | `shipment_header` JOIN `shipment_detail` JOIN `customer_mng` |
| 연결 메뉴 | 출고관리 (Screen 2296) |
| 양식 구성 | 공급자/공급받는자 정보, 거래일, 품목 테이블 (품명/규격/수량/단가/공급가액/세액), 합계 |
| 선행 조건 | ✅ `shipment_header`, `shipment_detail` 테이블 존재 |
| 상태 | ⬜ 대기 |

---

### 8. 세금계산서

| 항목 | 내용 |
|------|------|
| 리포트명 | 세금계산서 출력 |
| 용도 | 법적 증빙 문서 출력 |
| 데이터 소스 | `tax_invoice` JOIN `tax_invoice_item` |
| 연결 메뉴 | 세금계산서 관리 |
| 양식 구성 | 국세청 표준 양식 준수. 공급자/공급받는자 사업자정보, 작성일, 품목 테이블 (월일/품목/규격/수량/단가/공급가액/세액), 합계, 비고 |
| 선행 조건 | ✅ `tax_invoice`, `tax_invoice_item` 테이블 존재 + 전용 API 구현 완료 |
| 상태 | ⬜ 대기 |

---

## 우선순위 정리

### 즉시 착수 가능 (테이블 + API 준비 완료)

| 순위 | 리포트 | 연결 메뉴 | 사유 |
|------|--------|----------|------|
| 1 | 수주 확인서 | 수주관리 (Screen 156) | 가장 기본적인 영업 문서, 테이블 존재 |
| 2 | 발주서 | 발주관리 (Screen 1244) | 구매 업무 필수 문서, 테이블 존재 |
| 3 | 검사 성적서 | 검사정보관리 (Screen 1616) | 품질 증빙 문서, 테이블 존재 |
| 4 | 출하명세서 | 출고관리 (Screen 2296) | 출하 업무 필수 문서, 테이블 존재 |
| 5 | 거래명세서 | 출고관리 (Screen 2296) | 거래 증빙, 출하명세서와 데이터 소스 동일 |
| 6 | 수주 현황표 | 수주관리 (Screen 156) | 집계형 리포트, 수주 확인서와 데이터 소스 동일 |
| 7 | 세금계산서 출력 | 세금계산서 관리 | 전용 API 존재, 국세청 양식 준수 필요 |
| 8 | 생산계획 현황표 | 생산계획관리 | 테이블 존재, 집계형 리포트 |

### 선행 작업 필요 (테이블 미생성)

| 순위 | 리포트 | 선행 작업 |
|------|--------|----------|
| 9 | 견적서 | `quote_header`, `quote_items` 테이블 생성 + 견적관리 화면 구현 |
| 10 | 작업지시서 | `work_order_mng`, `work_order_material` 테이블 생성 + 작업지시 화면 구현 |

---

## 공통 양식 요소

모든 리포트에 공통으로 포함되는 요소:

| 요소 | 위치 | 내용 |
|------|------|------|
| 회사 로고 | 좌측 상단 | `company_mng.logo_url` |
| 회사 정보 | 우측 상단 | 회사명, 사업자번호, 대표자, 주소, 연락처 |
| 문서 번호 | 헤더 | 각 문서별 자동채번 |
| 발행일 | 헤더 | 출력 시점 또는 문서 작성일 |
| 페이지 번호 | 푸터 | "N / 전체" 형식 |
| 인쇄일시 | 푸터 | 출력 시점 타임스탬프 |

---

## 참고 문서

| 문서 | 경로 | 내용 |
|------|------|------|
| 리포트 디자이너 계획서 | `reportdocs/PLAN.md` | Phase 1~11 디자이너 기능 고도화 |
| 리포트 API | `backend-node/src/services/reportService.ts` | 리포트 CRUD + 메뉴 매핑 |
| 리포트 뷰어 컴포넌트 | `frontend/lib/registry/components/v2-report-viewer/` | 화면 배치용 V2 컴포넌트 |
| 리포트 디자이너 화면 | `frontend/app/(main)/admin/screenMng/reportList/designer/[reportId]/page.tsx` | 양식 설계 화면 |
| 리포트 타입 정의 | `frontend/types/report.ts` | 리포트 관련 TypeScript 타입 |
