feat: add Buchhaltung data reset (Transaktionen, Konten, Bankkonten) to admin DataManagementTab
This commit is contained in:
@@ -197,6 +197,47 @@ class CleanupService {
|
||||
logger.info(`Cleanup: truncated issues (${count} rows) and reset sequence`);
|
||||
return { count, deleted: true };
|
||||
}
|
||||
|
||||
async resetBuchhaltungTransaktionen(confirm: boolean): Promise<CleanupResult> {
|
||||
if (!confirm) {
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_transaktionen');
|
||||
return { count: rows[0].count, deleted: false };
|
||||
}
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_transaktionen');
|
||||
const count = rows[0].count;
|
||||
await pool.query('TRUNCATE buchhaltung_transaktionen CASCADE');
|
||||
try { await pool.query('ALTER SEQUENCE buchhaltung_transaktionen_id_seq RESTART WITH 1'); } catch { /* sequence may not exist */ }
|
||||
logger.info(`Cleanup: truncated buchhaltung_transaktionen (${count} rows) and reset sequence`);
|
||||
return { count, deleted: true };
|
||||
}
|
||||
|
||||
async resetBuchhaltungKonten(confirm: boolean): Promise<CleanupResult> {
|
||||
if (!confirm) {
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_konten');
|
||||
return { count: rows[0].count, deleted: false };
|
||||
}
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_konten');
|
||||
const count = rows[0].count;
|
||||
await pool.query('TRUNCATE buchhaltung_transaktionen CASCADE');
|
||||
await pool.query('TRUNCATE buchhaltung_konten CASCADE');
|
||||
try { await pool.query('ALTER SEQUENCE buchhaltung_konten_id_seq RESTART WITH 1'); } catch { /* sequence may not exist */ }
|
||||
try { await pool.query('ALTER SEQUENCE buchhaltung_transaktionen_id_seq RESTART WITH 1'); } catch { /* sequence may not exist */ }
|
||||
logger.info(`Cleanup: truncated buchhaltung_konten (${count} rows) and reset sequence`);
|
||||
return { count, deleted: true };
|
||||
}
|
||||
|
||||
async resetBuchhaltungBankkonten(confirm: boolean): Promise<CleanupResult> {
|
||||
if (!confirm) {
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_bankkonten');
|
||||
return { count: rows[0].count, deleted: false };
|
||||
}
|
||||
const { rows } = await pool.query('SELECT COUNT(*)::int AS count FROM buchhaltung_bankkonten');
|
||||
const count = rows[0].count;
|
||||
await pool.query('TRUNCATE buchhaltung_bankkonten CASCADE');
|
||||
try { await pool.query('ALTER SEQUENCE buchhaltung_bankkonten_id_seq RESTART WITH 1'); } catch { /* sequence may not exist */ }
|
||||
logger.info(`Cleanup: truncated buchhaltung_bankkonten (${count} rows) and reset sequence`);
|
||||
return { count, deleted: true };
|
||||
}
|
||||
}
|
||||
|
||||
export default new CleanupService();
|
||||
|
||||
Reference in New Issue
Block a user