ForgeFlow-ERP/backend/sql/add_special_warehouse_adjustment_patch.sql
2026-06-12 16:00:56 +08:00

50 lines
2.6 KiB
SQL

CREATE TABLE IF NOT EXISTS wh_special_adjustment (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_no VARCHAR(50) NOT NULL,
warehouse_id BIGINT NOT NULL,
warehouse_type VARCHAR(32) NOT NULL,
direction VARCHAR(32) NOT NULL,
reason VARCHAR(1000) NOT NULL,
status VARCHAR(32) NOT NULL,
operator_user_id BIGINT NULL,
adjusted_at DATETIME NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_wh_special_adjustment_no (adjustment_no),
KEY idx_wh_special_adjustment_warehouse (warehouse_id, adjusted_at),
KEY idx_wh_special_adjustment_direction (direction, adjusted_at),
CONSTRAINT fk_special_adjustment_warehouse FOREIGN KEY (warehouse_id) REFERENCES wh_warehouse(id),
CONSTRAINT fk_special_adjustment_operator FOREIGN KEY (operator_user_id) REFERENCES sys_user(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS wh_special_adjustment_line (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
adjustment_id BIGINT NOT NULL,
line_no INT NOT NULL,
item_id BIGINT NOT NULL,
warehouse_id BIGINT NOT NULL,
location_id BIGINT NULL,
lot_id BIGINT NOT NULL,
inventory_txn_id BIGINT NULL,
before_qty DECIMAL(18,6) NOT NULL DEFAULT 0,
change_qty DECIMAL(18,6) NOT NULL DEFAULT 0,
after_qty DECIMAL(18,6) NOT NULL DEFAULT 0,
before_weight_kg DECIMAL(18,6) NOT NULL DEFAULT 0,
change_weight_kg DECIMAL(18,6) NOT NULL DEFAULT 0,
after_weight_kg DECIMAL(18,6) NOT NULL DEFAULT 0,
unit_cost DECIMAL(18,4) NOT NULL DEFAULT 0,
line_reason VARCHAR(1000) NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
KEY idx_wh_special_adjustment_line_adjustment (adjustment_id),
KEY idx_wh_special_adjustment_line_item (item_id),
KEY idx_wh_special_adjustment_line_lot (lot_id),
KEY idx_wh_special_adjustment_line_txn (inventory_txn_id),
CONSTRAINT fk_special_adjustment_line_adjustment FOREIGN KEY (adjustment_id) REFERENCES wh_special_adjustment(id),
CONSTRAINT fk_special_adjustment_line_item FOREIGN KEY (item_id) REFERENCES md_item(id),
CONSTRAINT fk_special_adjustment_line_warehouse FOREIGN KEY (warehouse_id) REFERENCES wh_warehouse(id),
CONSTRAINT fk_special_adjustment_line_location FOREIGN KEY (location_id) REFERENCES wh_location(id),
CONSTRAINT fk_special_adjustment_line_lot FOREIGN KEY (lot_id) REFERENCES wh_stock_lot(id),
CONSTRAINT fk_special_adjustment_line_inventory_txn FOREIGN KEY (inventory_txn_id) REFERENCES wh_inventory_txn(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;