34 lines
2.0 KiB
SQL
Executable File
34 lines
2.0 KiB
SQL
Executable File
-- Таблица строк ОСВ по счёту 76.06 (лицевые счета жителей)
|
||
CREATE TABLE IF NOT EXISTS report_76_rows (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
report_id BIGINT NOT NULL REFERENCES financial_reports(id) ON DELETE CASCADE,
|
||
row_index INTEGER NOT NULL,
|
||
account_label TEXT NOT NULL,
|
||
account_ls TEXT,
|
||
saldo_start_debet NUMERIC(15, 2) DEFAULT 0,
|
||
turnover_debet NUMERIC(15, 2) DEFAULT 0,
|
||
turnover_credit NUMERIC(15, 2) DEFAULT 0,
|
||
saldo_end_debet NUMERIC(15, 2) DEFAULT 0,
|
||
saldo_end_credit NUMERIC(15, 2) DEFAULT 0,
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_report_76_rows_report_id ON report_76_rows(report_id);
|
||
COMMENT ON TABLE report_76_rows IS 'Строки ОСВ по счёту 76.06 — лицевые счета (жители) из загруженного отчёта';
|
||
|
||
-- Таблица сопоставления домов и лицевых счетов (для фильтра ОСВ 76 по дому и отображения в карточке дома)
|
||
CREATE TABLE IF NOT EXISTS building_personal_account_mappings (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
building_id VARCHAR(50) NOT NULL REFERENCES buildings(id) ON DELETE CASCADE,
|
||
account_ls TEXT NOT NULL,
|
||
account_label TEXT,
|
||
apartment TEXT,
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
UNIQUE(building_id, account_ls)
|
||
);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_building_personal_account_mappings_building ON building_personal_account_mappings(building_id);
|
||
CREATE INDEX IF NOT EXISTS idx_building_personal_account_mappings_account_ls ON building_personal_account_mappings(account_ls);
|
||
COMMENT ON TABLE building_personal_account_mappings IS 'Сопоставление домов и лицевых счетов (для ОСВ 76): фильтр по дому, отображение в карточке дома';
|