Files
mkd/backend/migrations/create_report_76_tables.sql

34 lines
2.0 KiB
MySQL
Raw Permalink Normal View History

2026-02-04 00:17:04 +05:00
-- Таблица строк ОСВ по счёту 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): фильтр по дому, отображение в карточке дома';