34 lines
2.0 KiB
MySQL
34 lines
2.0 KiB
MySQL
|
|
-- Таблица строк ОСВ по счёту 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): фильтр по дому, отображение в карточке дома';
|