c786fbabd7
- set_movement(콤보 단위 출고 원장) 테이블 신설 + 마이그레이션 SQL - create_set_out: 낱개 OUT 과 함께 콤보 OUT 1행 기록(같은 트랜잭션) - 콤보 재고 = 최근 재고조사 콤보수량 − 재고조사일 이후 콤보 출고 - 재고현황 콤보 패널: 조사/출고/재고 3열 표시 - reset_all_data 에 set_movement 삭제 포함 배포: malaysia_stock_db_set_movement.sql 적용(테이블+GRANT) 후 코드 배포. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27 lines
1.7 KiB
SQL
27 lines
1.7 KiB
SQL
-- ════════════════════════════════════════════════════════════
|
|
-- 마이그레이션: 콤보(세트) 출고 원장 set_movement 추가
|
|
-- 기존 운영 malaysia_stock_db 에 적용(신규 설치는 init 에 이미 포함).
|
|
-- superuser/owner 로 실행. 멱등(IF NOT EXISTS).
|
|
-- ════════════════════════════════════════════════════════════
|
|
CREATE TABLE IF NOT EXISTS set_movement (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
movement_date DATE NOT NULL,
|
|
warehouse_code TEXT NOT NULL REFERENCES warehouses(warehouse_code),
|
|
set_code TEXT NOT NULL CHECK (set_code LIKE 'MY-%'),
|
|
movement_type TEXT NOT NULL DEFAULT 'OUT' CHECK (movement_type IN ('OUT', 'ADJUST')),
|
|
qty INTEGER NOT NULL,
|
|
ref_type TEXT NOT NULL DEFAULT '',
|
|
ref_no TEXT NOT NULL DEFAULT '',
|
|
memo TEXT NOT NULL DEFAULT '',
|
|
created_by TEXT NOT NULL DEFAULT '',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
CHECK ((movement_type = 'OUT' AND qty > 0) OR movement_type = 'ADJUST')
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_set_mv_wh_set ON set_movement (warehouse_code, set_code);
|
|
CREATE INDEX IF NOT EXISTS idx_set_mv_date ON set_movement (movement_date);
|
|
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON set_movement TO malaysia_app;
|
|
GRANT USAGE, SELECT ON SEQUENCE set_movement_id_seq TO malaysia_app;
|
|
|
|
SELECT 'set_movement ready' AS status;
|