## 재고 보정 기능 - 재고 보정 테이블 추가 (stock_adjustments, stock_adjustment_details) - 보정 타입: LOSS(감모), FOUND(발견), RECOUNT(재고조사), DAMAGE(파손), EXPIRE(유통기한) - 보정 번호 자동 생성: ADJ-YYYYMMDD-XXXX ## API 엔드포인트 - GET /api/stock-adjustments - 보정 내역 조회 - GET /api/stock-adjustments/<id> - 보정 상세 조회 - POST /api/stock-adjustments - 보정 생성 ## 재고 원장 연동 - 보정 내역이 stock_ledger에 자동 기록 (ADJUST 타입) - 입출고 원장에서 보정 내역 필터링 가능 - 참고번호: ADJ-20260215-0001 ## 사용자 추적 - created_by 필드로 보정 담당자 기록 - 향후 계정 시스템 연동 준비 한약재 loss 관리 및 재고조사 기능 완비! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
36 lines
1.8 KiB
SQL
36 lines
1.8 KiB
SQL
-- 재고 보정 테이블 추가
|
|
-- 재고 조정/보정 내역을 기록
|
|
|
|
CREATE TABLE IF NOT EXISTS stock_adjustments (
|
|
adjustment_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
adjustment_date DATE NOT NULL,
|
|
adjustment_no TEXT, -- 보정 번호 (ADJ-YYYYMMDD-XXXX)
|
|
adjustment_type TEXT NOT NULL CHECK(adjustment_type IN ('LOSS', 'FOUND', 'RECOUNT', 'DAMAGE', 'EXPIRE')),
|
|
-- LOSS: 감모(손실), FOUND: 발견, RECOUNT: 재고조사, DAMAGE: 파손, EXPIRE: 유통기한
|
|
notes TEXT,
|
|
created_by TEXT, -- 보정 담당자 (나중에 계정 연동)
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- 재고 보정 상세 (로트별)
|
|
CREATE TABLE IF NOT EXISTS stock_adjustment_details (
|
|
detail_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
adjustment_id INTEGER NOT NULL,
|
|
herb_item_id INTEGER NOT NULL,
|
|
lot_id INTEGER NOT NULL,
|
|
quantity_before REAL NOT NULL, -- 보정 전 재고
|
|
quantity_after REAL NOT NULL, -- 보정 후 재고
|
|
quantity_delta REAL NOT NULL, -- 증감량
|
|
reason TEXT, -- 보정 사유
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (adjustment_id) REFERENCES stock_adjustments(adjustment_id),
|
|
FOREIGN KEY (herb_item_id) REFERENCES herb_items(herb_item_id),
|
|
FOREIGN KEY (lot_id) REFERENCES inventory_lots(lot_id)
|
|
);
|
|
|
|
-- 인덱스 생성
|
|
CREATE INDEX IF NOT EXISTS idx_stock_adjustments_date ON stock_adjustments(adjustment_date);
|
|
CREATE INDEX IF NOT EXISTS idx_adjustment_details_herb ON stock_adjustment_details(herb_item_id);
|
|
CREATE INDEX IF NOT EXISTS idx_adjustment_details_lot ON stock_adjustment_details(lot_id);
|