-- 迁移：FIFO 合同消耗结算（2026-06-12）
-- 下游结算按采购单先后顺序（order_date 升序）消耗合同行余量，同产品多批不同价自动拆段各按各价；
-- 结算量 > 全部剩余 → 拦截提示补录新采购单；合同行消耗满自动置 settlement_status='exhausted'（已结清）；
-- 取消批次精确回退 settled_quantity。解决补货多批价格错乱。
ALTER TABLE order_lines ADD COLUMN IF NOT EXISTS settled_quantity numeric DEFAULT 0;
ALTER TABLE order_lines ADD COLUMN IF NOT EXISTS settlement_status text DEFAULT 'unsettled';
UPDATE order_lines SET settled_quantity=0 WHERE settled_quantity IS NULL;
UPDATE order_lines SET settlement_status='unsettled' WHERE settlement_status IS NULL;
GRANT SELECT, INSERT, UPDATE, DELETE ON order_lines TO ledger_app;
