# 입고등록 — 원자재로트번호 자동채번 적용 요청

**날짜:** 2026-03-17
**요청자:** R&D실 (백엔드)
**대상:** React 프론트엔드

---

## 변경 요약

입고등록 화면의 **원자재로트번호** 필드를 **읽기 전용(자동채번)**으로 변경한다.

---

## 대상 화면

```
URL: /material/receiving-management/new/mode-new
     /material/receiving-management/[id]?mode=edit
컴포넌트: ReceivingDetail.tsx
```

---

## 변경 내용

### 원자재로트번호 (`lot_no`) 필드

| 항목 | 변경 전 | 변경 후 |
|------|--------|--------|
| 입력 방식 | 사용자 직접 입력 (프론트 `generateLotNo()` 호출) | **읽기 전용** (API 자동 생성) |
| 신규 등록 시 | 프론트에서 랜덤 생성 후 전송 | `lot_no` 미전송 → API가 자동 채번 |
| 저장 후 표시 | — | API 응답의 `lot_no` 값을 표시 |
| 수정 모드 | 편집 가능 | **읽기 전용** (기존 값 표시) |

### UI 처리

```
✅ input 요소에 readOnly 또는 disabled 속성 적용
✅ 배경색을 회색(비활성) 처리하여 자동생성임을 시각적으로 표현
✅ 신규 등록 시 placeholder: "저장 시 자동 생성" 또는 빈 값
✅ 저장 후 API 응답에서 lot_no를 받아 화면에 표시
❌ 프론트의 generateLotNo() 함수 호출 제거 (또는 미사용 처리)
```

### API 동작

```
POST /api/v1/receivings (신규 등록)
  → lot_no 미전송 시 API가 채번규칙 기반 자동 생성
  → 응답: { "data": { "lot_no": "260317-01", ... } }

PUT /api/v1/receivings/{id} (수정)
  → lot_no 변경 불가 (프론트에서 전송하지 않음)

POST /api/v1/receivings/{id}/process (입고처리)
  → lot_no 미전송 시 API가 자동 생성
  → 응답에 최종 lot_no 포함
```

### 채번 형식

```
YYMMDD-NN (일별 시퀀스, 01부터 시작)
예: 260317-01, 260317-02, ...
    260318-01 (다음날 리셋)
```

> 채번 형식은 MNG 채번규칙 관리에서 테넌트별로 변경 가능. 프론트는 형식에 의존하지 않고 API 응답값을 그대로 표시하면 된다.

---

## 참고

- API 변경 커밋: `feat: [receiving] 원자재로트번호 채번규칙 연동`
- 채번규칙 문서: `docs/rules/numbering-rules.md`
