-- 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;