-- ============================================================================ -- 모모유통 v2 — 매입발주/입고/정산 메뉴 분리 -- - 매입발주 입고 시 불량/파손 수량 분리 -- - 출고관리 상태값 재정의 (REQUESTED → APPROVED(=출고완료) → PAID → INVOICED) -- - 매입처에 추가 정보 -- ============================================================================ BEGIN; -- 매입발주 입고 라인에 정상/불량/파손 수량 분리 ALTER TABLE momo_procurement_items ADD COLUMN IF NOT EXISTS received_normal NUMERIC(15,2) DEFAULT 0, ADD COLUMN IF NOT EXISTS received_defect NUMERIC(15,2) DEFAULT 0, ADD COLUMN IF NOT EXISTS defect_memo VARCHAR(500); -- 입고 처리 헤더 (1매입발주 → N입고) CREATE TABLE IF NOT EXISTS momo_inbounds ( objid TEXT PRIMARY KEY, inbound_no VARCHAR(50) UNIQUE, proc_objid TEXT, -- 매입발주 참조 (없어도 단독 입고 가능) vendor_objid TEXT, wh_objid TEXT NOT NULL, inbound_date DATE NOT NULL DEFAULT CURRENT_DATE, status VARCHAR(20) DEFAULT 'COMPLETED', -- COMPLETED | CANCELLED total_amount NUMERIC(15,2) DEFAULT 0, memo TEXT, is_del CHAR(1) DEFAULT 'N', regdate TIMESTAMP DEFAULT NOW(), regid TEXT ); CREATE INDEX IF NOT EXISTS idx_momo_inbounds_date ON momo_inbounds(inbound_date); CREATE INDEX IF NOT EXISTS idx_momo_inbounds_proc ON momo_inbounds(proc_objid); CREATE TABLE IF NOT EXISTS momo_inbound_items ( objid TEXT PRIMARY KEY, inbound_objid TEXT NOT NULL, item_objid TEXT NOT NULL, qty_normal NUMERIC(15,2) NOT NULL DEFAULT 0, -- 입고 정상 수량 → 재고에 + qty_defect NUMERIC(15,2) NOT NULL DEFAULT 0, -- 불량/파손 (재고 미반영) cost_price NUMERIC(15,2) NOT NULL DEFAULT 0, defect_reason VARCHAR(200), -- 파손/유통기한임박/불량 등 total_amount NUMERIC(15,2) NOT NULL DEFAULT 0, seq INT ); CREATE INDEX IF NOT EXISTS idx_momo_inbound_items ON momo_inbound_items(inbound_objid); -- 매입처에 주소/이메일 추가 ALTER TABLE momo_vendors ADD COLUMN IF NOT EXISTS email VARCHAR(200), ADD COLUMN IF NOT EXISTS address VARCHAR(300), ADD COLUMN IF NOT EXISTS regdate TIMESTAMP DEFAULT NOW(); -- 품목에 소비기한 / 본사+지사 구분 (엑셀 요청 7,8번) -- attributes JSONB 에 자유 키 저장 가능. 별도 컬럼 추가는 생략. -- 매입처 시드 (없으면) INSERT INTO momo_vendors (objid, vendor_name, contact, phone) VALUES ('VND_DEFAULT_001', '도매처A (기본)', '담당자', '02-0000-0000'), ('VND_DEFAULT_002', '도매처B (기본)', '담당자', '02-0000-0000') ON CONFLICT (objid) DO NOTHING; COMMIT;