6.7 KiB
6.7 KiB
입출고관리 화면 구현 가이드
화면명: 입출고관리 파일: 입출고관리.html 분류: 물류관리 구현 가능: ⚠️ 부분 (그룹화 테이블 필요)
1. 화면 개요
자재/제품의 입고 및 출고 내역을 통합 관리하는 화면입니다.
핵심 기능
- 입출고 내역 조회/검색
- 그룹화 기능 (입출고구분, 창고, 카테고리별)
- 엑셀 업로드/다운로드
2. 화면 레이아웃
┌─────────────────────────────────────────────────────────────────┐
│ [입출고구분▼][카테고리▼][창고▼][품목코드][품목명][기간][초기화][검색]│
│ [사용자옵션][업로드][다운로드]│
├─────────────────────────────────────────────────────────────────┤
│ 📋 입출고 내역 전체 150건 │
│ ───────────────────────────────────────────────────────────── │
│ Group by: [입출고구분▼] │
│ ───────────────────────────────────────────────────────────── │
│ │▼ 입고 (80) │
│ │ │IN-001|구매입고|2026-01-30|본사창고|P-001|원자재A|100|KG │
│ │ │IN-002|생산입고|2026-01-30|제1창고|P-002|제품A |50 |EA │
│ │▼ 출고 (70) │
│ │ │OUT-001|판매출고|2026-01-30|본사창고|P-003|제품B|30|EA │
└─────────────────────────────────────────────────────────────────┘
3. V2 컴포넌트 매핑
| HTML 영역 | V2 컴포넌트 | 상태 |
|---|---|---|
| 검색 섹션 | v2-table-search-widget |
✅ 가능 |
| 입출고 목록 (그룹화) | v2-table-list |
⚠️ 그룹화 미지원 |
4. 테이블 정의
columns: [
{ id: 'checkbox', type: 'checkbox', width: 50 },
{ id: 'inout_type', label: '입출고구분', width: 100 },
{ id: 'category', label: '카테고리', width: 120 },
{ id: 'doc_no', label: '전표번호', width: 120 },
{ id: 'process_date', label: '처리일자', width: 100 },
{ id: 'warehouse', label: '창고', width: 120 },
{ id: 'location', label: '위치', width: 100 },
{ id: 'item_code', label: '품목코드', width: 120 },
{ id: 'item_name', label: '품목명', width: 200 },
{ id: 'quantity', label: '수량', width: 100, align: 'right' },
{ id: 'unit', label: '단위', width: 60 },
{ id: 'lot_no', label: '로트번호', width: 120 },
{ id: 'customer', label: '거래처', width: 120 },
{ id: 'manager', label: '담당자', width: 100 },
{ id: 'remark', label: '비고', width: 200 }
]
5. 검색 조건
| 필드명 | 컴포넌트 | 옵션 |
|---|---|---|
| 입출고구분 | v2-select |
입고, 출고 |
| 카테고리 | v2-select |
구매입고, 생산입고, 반품입고, 판매출고, 생산출고 등 |
| 창고 | v2-select |
본사창고, 제1창고, 제2창고 |
| 품목코드 | v2-input |
- |
| 품목명 | v2-input |
- |
| 기간 | v2-date |
dateRange: true |
6. 그룹화 기능 (v2-grouped-table 필요)
groupByOptions: [
{ id: 'inout_type', label: '입출고구분' },
{ id: 'category', label: '카테고리' },
{ id: 'warehouse', label: '창고' },
{ id: 'item_code', label: '품목코드' },
{ id: 'process_date', label: '처리일자' },
{ id: 'customer', label: '거래처' }
]
7. 현재 구현 가능 범위
✅ 가능
- 검색 영역
- 일반 테이블 목록
⚠️ 부분 가능
- 그룹화 없이 필터로 대체
❌ 불가능
- 동적 그룹화
8. 간소화 구현 JSON
{
"screen_code": "INOUT_MAIN",
"screen_name": "입출고관리",
"components": [
{
"type": "v2-table-search-widget",
"position": { "x": 0, "y": 0, "w": 12, "h": 2 },
"config": {
"searchFields": [
{ "type": "select", "id": "inout_type", "placeholder": "입출고구분",
"options": [
{ "value": "IN", "label": "입고" },
{ "value": "OUT", "label": "출고" }
]
},
{ "type": "select", "id": "category", "placeholder": "카테고리",
"options": [
{ "value": "purchase", "label": "구매입고" },
{ "value": "production_in", "label": "생산입고" },
{ "value": "return_in", "label": "반품입고" },
{ "value": "sales", "label": "판매출고" },
{ "value": "production_out", "label": "생산출고" }
]
},
{ "type": "select", "id": "warehouse", "placeholder": "창고" },
{ "type": "input", "id": "item_code", "placeholder": "품목코드" },
{ "type": "input", "id": "item_name", "placeholder": "품목명" },
{ "type": "date", "id": "date_range", "placeholder": "처리일자", "dateRange": true }
],
"buttons": [
{ "label": "초기화", "action": "reset" },
{ "label": "검색", "action": "search", "variant": "primary" }
]
}
},
{
"type": "v2-table-list",
"position": { "x": 0, "y": 2, "w": 12, "h": 10 },
"config": {
"title": "입출고 내역",
"entityId": "inventory_transaction",
"showTotalCount": true,
"columns": [
{ "id": "inout_type", "label": "입출고구분", "width": 100 },
{ "id": "category", "label": "카테고리", "width": 120 },
{ "id": "doc_no", "label": "전표번호", "width": 120 },
{ "id": "process_date", "label": "처리일자", "width": 100 },
{ "id": "warehouse", "label": "창고", "width": 120 },
{ "id": "item_code", "label": "품목코드", "width": 120 },
{ "id": "item_name", "label": "품목명", "width": 200 },
{ "id": "quantity", "label": "수량", "width": 100, "align": "right" },
{ "id": "unit", "label": "단위", "width": 60 }
]
}
}
]
}
v2-grouped-table 개발 시 그룹화 기능 추가 가능