# 자재/재고 (Material/Instock) 분석 ## 개요 - **디렉토리**: `/instock/` - **DB 테이블**: 자재 유형별 개별 테이블 (i_* 패턴) - **주요 기능**: LOT 관리, 입고 검사, 자재 추적, 재고 관리 ## 디렉토리 구조 ``` /instock/ ├── _request.php # 요청 파라미터 정의 ├── _row.php # 행 렌더링 ├── insert.php # 데이터 저장 ├── list.php # 자재 목록 ├── list_sheet.php # 시트 형태 목록 ├── statistics.php # 통계 ├── i_*.php # 자재 유형별 입력 폼 (23개) │ ├── i_EGI155.php # EGI155 자재 │ ├── i_GIplate.php # GI 판재 │ ├── i_SUSplate.php # SUS 판재 │ ├── i_SUScoil.php # SUS 코일 │ ├── i_angle.php # 앵글 │ ├── i_anglebottom.php # 앵글 바텀 │ ├── i_antifireglass.php # 방화 유리 │ ├── i_bendingcoil.php # 벤딩 코일 │ ├── i_bracket.php # 브라켓 │ ├── i_cerakwool.php # 세락울 │ ├── i_controller.php # 컨트롤러 │ ├── i_fiber.php # 파이버 │ ├── i_fireproofWire.php # 방화 와이어 │ ├── i_motor.php # 모터 │ ├── i_platesteel.php # 판강 │ ├── i_pole.php # 폴 │ ├── i_recpipe.php # 각관 │ ├── i_shaft.php # 샤프트 │ ├── i_sillica.php # 실리카 │ ├── i_slatcoil.php # 슬랫 코일 │ ├── i_wire.php # 와이어 │ ├── i_wireDaehan.php # 대한 와이어 │ └── i_Fireproof_sealings.php # 방화 씰링 ├── fetch_*.php # AJAX 데이터 조회 └── common/ # 공통 모듈 ``` ## DB 스키마 ### 자재 공통 테이블 구조 ```sql CREATE TABLE i_[자재유형] ( num INT AUTO_INCREMENT PRIMARY KEY, -- LOT 정보 lot_no VARCHAR(50), -- LOT 번호 inspection_date DATE, -- 검사일 lotDone DATE, -- LOT 완료일 -- 공급업체 정보 supplier VARCHAR(100), -- 공급업체 manufacturer VARCHAR(100), -- 제조사 -- 자재 정보 item_name VARCHAR(200), -- 품명 specification VARCHAR(200), -- 규격 unit VARCHAR(20), -- 단위 prodcode VARCHAR(50), -- 제품코드 -- 수량/가격 정보 received_qty DECIMAL(15,2), -- 입고수량 weight_kg DECIMAL(15,2), -- 중량(kg) purchase_price_excl_vat DECIMAL(15,0), -- 구매단가(부가세 제외) -- 참조/이력 material_no VARCHAR(50), -- 자재번호 remarks TEXT, -- 비고 -- 시스템 필드 searchtag TEXT, -- 검색태그 (자동생성) update_log TEXT, -- 수정이력 is_deleted TINYINT DEFAULT 0, -- 삭제플래그 INDEX idx_lot_no (lot_no), INDEX idx_supplier (supplier), INDEX idx_item_name (item_name) ); ``` ### 검색태그 생성 로직 ```php // insert.php에서 searchtag 자동 생성 $searchtag = $lot_no . ' ' . $inspection_date . ' ' . $supplier . ' ' . $item_name . ' ' . $specification . ' ' . $unit . ' ' . $received_qty . ' ' . $material_no . ' ' . $manufacturer . ' ' . $purchase_price_excl_vat . ' ' . $weight_kg . ' ' . $lotDone . ' ' . $prodcode . ' ' . $remarks; ``` ## 자재 유형별 특성 ### 1. 코일 자재 - **테이블**: `i_SUScoil`, `i_bendingcoil`, `i_slatcoil` - **특징**: 중량(kg) 기반 재고 관리 - **추가 컬럼**: 두께, 폭, 소재 ### 2. 판재 자재 - **테이블**: `i_GIplate`, `i_SUSplate`, `i_platesteel` - **특징**: 면적(m²) 또는 장 단위 관리 - **추가 컬럼**: 가로, 세로, 두께 ### 3. 부품 자재 - **테이블**: `i_motor`, `i_controller`, `i_bracket` - **특징**: 개수 단위 관리, 모델별 구분 - **추가 컬럼**: 모델명, 제조번호 ### 4. 구조재 - **테이블**: `i_angle`, `i_pole`, `i_shaft`, `i_recpipe` - **특징**: 길이(m) 단위 관리 - **추가 컬럼**: 길이, 단면규격 ## 비즈니스 로직 ### LOT 관리 1. **LOT 번호 생성**: `lotnum_generator.php` 2. **LOT 완료 처리**: `lotDone` 날짜 설정 3. **LOT 추적**: 출하 시 LOT 번호 연결 ### 입고 검사 1. 자재 입고 시 검사일(`inspection_date`) 기록 2. 합격 시 재고에 반영 3. 불합격 시 반품 처리 ### 가격 관리 - 구매단가는 부가세 제외 금액 저장 - 환율/원자재 가격 변동 반영 필요 ## SAM 마이그레이션 포인트 ### 1. 테이블 통합 ```sql -- 5130: 자재 유형별 개별 테이블 i_SUSplate, i_GIplate, i_motor, ... -- SAM: 단일 테이블 + 카테고리 materials ( id, tenant_id, category_id, -- categories 테이블 참조 lot_no, ... ) ``` ### 2. 카테고리 계층화 ```sql -- SAM: 4단계 카테고리 구조 material_categories ( id, parent_id, name, level, -- 1: 대분류, 2: 중분류, 3: 소분류, 4: 세분류 attributes JSON -- 카테고리별 추가 속성 정의 ) ``` ### 3. 속성 동적 관리 ```sql -- SAM: 카테고리별 동적 속성 material_attributes ( material_id, attribute_key, attribute_value, attribute_type -- string, number, date, etc. ) ``` ### 4. LOT 추적 강화 ```sql -- SAM: LOT 이력 테이블 lot_histories ( id, lot_id, action, -- created, inspected, used, returned quantity, reference_type, -- output, production reference_id, created_at ) ``` ## 관련 파일 참조 - `/instock/insert.php` - INSERT/UPDATE 로직 - `/instock/_request.php` - 요청 파라미터 정의 - `/instock/list.php` - 목록 조회 쿼리 - `/instock/fetch_inspection.php` - 검사 데이터 조회