Files
website-secure/scripts/016-supplier-pos.sql
T
2026-06-01 15:36:16 +01:00

31 lines
1.3 KiB
SQL

-- Supplier Purchase Orders
CREATE TABLE IF NOT EXISTS supplier_pos (
id SERIAL PRIMARY KEY,
po_number VARCHAR(30) NOT NULL UNIQUE,
supplier_id INTEGER NOT NULL REFERENCES suppliers(id) ON DELETE CASCADE,
planning_id INTEGER REFERENCES planning_history(id) ON DELETE SET NULL,
order_date DATE NOT NULL DEFAULT CURRENT_DATE,
status VARCHAR(20) NOT NULL DEFAULT 'draft',
notes TEXT,
total_value NUMERIC(12,2) NOT NULL DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);
-- Supplier Purchase Order line items
CREATE TABLE IF NOT EXISTS supplier_po_items (
id SERIAL PRIMARY KEY,
supplier_po_id INTEGER NOT NULL REFERENCES supplier_pos(id) ON DELETE CASCADE,
component_id INTEGER REFERENCES components(id) ON DELETE SET NULL,
part_number VARCHAR(100),
component_name VARCHAR(255),
supplier_part_number VARCHAR(100),
quantity INTEGER NOT NULL DEFAULT 0,
unit_price NUMERIC(12,4) NOT NULL DEFAULT 0,
line_total NUMERIC(12,2) NOT NULL DEFAULT 0,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_supplier_pos_supplier ON supplier_pos(supplier_id);
CREATE INDEX IF NOT EXISTS idx_supplier_pos_planning ON supplier_pos(planning_id);
CREATE INDEX IF NOT EXISTS idx_supplier_po_items_po ON supplier_po_items(supplier_po_id);