mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
50 lines
1.4 KiB
SQL
50 lines
1.4 KiB
SQL
CREATE TABLE expenses (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
reference_number VARCHAR(50) UNIQUE NOT NULL,
|
|
supplier_id BIGINT NOT NULL,
|
|
category VARCHAR(50) NOT NULL CHECK (
|
|
category IN ('BOP', 'NON-BOP')
|
|
),
|
|
po_number VARCHAR(50) NULL,
|
|
document_path JSON,
|
|
realization_document_path JSON,
|
|
expense_date DATE NOT NULL,
|
|
realization_date DATE,
|
|
grand_total NUMERIC(15, 3) DEFAULT 0,
|
|
note TEXT,
|
|
created_by BIGINT,
|
|
created_at TIMESTAMPTZ DEFAULT now(),
|
|
updated_at TIMESTAMPTZ DEFAULT now(),
|
|
deleted_at TIMESTAMPTZ
|
|
);
|
|
|
|
CREATE SEQUENCE expenses_ref_seq INCREMENT BY 1 START WITH 1;
|
|
|
|
-- Tambahkan Foreign Key ke suppliers
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'suppliers') THEN
|
|
ALTER TABLE expenses
|
|
ADD CONSTRAINT fk_expenses_supplier_id
|
|
FOREIGN KEY (supplier_id) REFERENCES suppliers(id);
|
|
|
|
END IF;
|
|
|
|
END $$;
|
|
|
|
-- Tambahkan Foreign Key ke users (created_by)
|
|
DO $$
|
|
BEGIN
|
|
IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'users') THEN
|
|
ALTER TABLE expenses
|
|
ADD CONSTRAINT fk_expenses_created_by
|
|
FOREIGN KEY (created_by) REFERENCES users(id);
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Index
|
|
CREATE INDEX idx_expenses_supplier_id ON expenses (supplier_id);
|
|
|
|
CREATE INDEX idx_expenses_expense_date ON expenses (expense_date);
|
|
|
|
CREATE INDEX idx_expenses_deleted_at ON expenses (deleted_at); |