Steuerkram/migrations/032_anlage_nr_backfill.sql
fds2610-bot 49d145e251 Feature: Anlage-Links auf Bearbeitungsmaske, Backfill anlage_nr, README
- Anlage-Spalte in allen Buchungstabellen verlinkt jetzt auf /assets/{id}/edit
- bk.asset_id in UstvaCalculator und EuerCalculator-Queries ergänzt
- Fallback-Anzeige: Bezeichnung wenn anlage_nr leer ist
- Migration 032: anlage_nr für bestehende Anlagegüter nachgenerieren
- README: Feature Anlagevermögen dokumentiert
2026-04-12 18:51:54 +02:00

23 lines
890 B
SQL

-- Migration 032: Anlage-Nummern für bestehende Anlagegüter ohne Nummer nachgenerieren
-- Weist assets mit leerem anlage_nr Nummern im konfigurierten Format zu.
CREATE TEMPORARY TABLE IF NOT EXISTS _anlage_backfill_tmp AS
SELECT
a.id,
YEAR(COALESCE(a.anschaffungsdatum, NOW())) AS asset_year,
cs.anlage_nr_prefix AS prefix,
cs.anlage_nr_next + (ROW_NUMBER() OVER (ORDER BY a.id) - 1) AS seq_nr
FROM assets a
CROSS JOIN company_settings cs
WHERE a.anlage_nr = '' AND cs.id = 1;
UPDATE assets a
JOIN _anlage_backfill_tmp t ON a.id = t.id
SET a.anlage_nr = CONCAT(t.prefix, '-', t.asset_year, '-', LPAD(t.seq_nr, 4, '0'))
WHERE a.anlage_nr = '';
UPDATE company_settings
SET anlage_nr_next = anlage_nr_next + (SELECT COUNT(*) FROM _anlage_backfill_tmp)
WHERE id = 1 AND (SELECT COUNT(*) FROM _anlage_backfill_tmp) > 0;
DROP TEMPORARY TABLE IF EXISTS _anlage_backfill_tmp;