Papierkorb & Datenverwaltung
Der hwr.manager verfügt über einen zentralen, mandantenweiten Papierkorb (/jobs/trash). Er schützt den Betrieb vor versehentlichem Datenverlust und ermöglicht es autorisierten Mitarbeitern, gelöschte Daten jederzeit einzusehen, lückenlos nachzuvollziehen wer die Löschung vorgenommen hat und Datensätze mit einem Klick wiederherzustellen oder DSGVO-konform endgültig zu entfernen.
1. Zweistufiges Löschkonzept: Soft-Delete vs. Hard-Delete
Abschnitt betitelt „1. Zweistufiges Löschkonzept: Soft-Delete vs. Hard-Delete“Um Ausfallzeiten oder Datenverluste im hektischen Baustellen- und Büroalltag zu verhindern, arbeitet das System mit einem zweistufigen Verfahren:
[Aktiver Datensatz] │ ▼ (Reguläres Löschen in Masken/Listen)[Papierkorb (Soft-Delete)] <──> [Wiederherstellung (Restore)] │ ▼ (Nur mit Berechtigung 'trash:delete' + Sicherheitsdialog)[Dauerhaft gelöscht (Hard-Delete)]-
Stufe 1 – Soft-Delete (Papierkorb):
- Wird ein Datensatz in einem Modul gelöscht (z. B. ein Auftrag, ein Kunde, ein Artikel oder ein Lager), wird dieser nicht sofort physisch aus der Datenbank entfernt.
- Stattdessen setzt das System automatisch einen Zeitstempel (
deleted_at) sowie die Benutzer-ID des ausführenden Mitarbeiters (deleted_by). - Der Datensatz verschwindet sofort aus allen regulären Auswahllisten, Dispositionsboards und Suchmasken, bleibt aber im Papierkorb erhalten.
-
Stufe 2 – Hard-Delete (Endgültige Bereinigung):
- Das endgültige, unwiderrufliche Löschen aus der Datenbank erfolgt ausschließlich im Papierkorb.
- Hierfür ist die explizite Berechtigung
trash:deleteerforderlich. - Jeder Löschvorgang muss über einen modalen Sicherheitsdialog bestätigt werden.
2. Unterstützte Datensatz-Typen
Abschnitt betitelt „2. Unterstützte Datensatz-Typen“Der Papierkorb bündelt gelöschte Objekte aus allen zentralen Funktionsbereichen der Plattform in einer gemeinsamen Übersicht:
| Bereich | Datensatztyp | Identifikator | Besonderheiten bei Wiederherstellung |
|---|---|---|---|
| Disposition | Aufträge | Auftragsnummer & Titel | Erscheint sofort wieder im Dispatch-Board und der Auftragsliste. |
| Service | Tickets | Ticketnummer & Betreff | Verknüpfungen mit Kunden und Portal-Timeline bleiben erhalten. |
| CRM | Anfragen | Anfragennummer & Titel | Status und Kundenbezug werden nahtlos reaktiviert. |
| Prüfwesen | Checklisten-Vorlagen | Vorlagenname | Steht Technikern in der mobilen App sofort wieder zur Verfügung. |
| Kundenstamm | Kunden | Kundennummer & Name | Reaktiviert Kundenstammblatt und Kontakthistorie. |
| Liegenschaften | Einsatzorte / Standorte | Standortnummer & Name | Adresse und Objektzuordnung werden wiederhergestellt. |
| Anlagenbau | Anlagen | Anlagennummer & Bezeichnung | Zuweisung zu Kunde und Standort bleibt intakt. |
| Logistik | Lager & Fahrzeuge | Lagernummer & Bezeichnung | Bestandszuordnungen werden wieder aktiv. |
| Lagerverwaltung | Lagerplätze | Lagerplatz-Code (z. B. A-01-02) | Verknüpfung mit übergeordnetem Lager bleibt bestehen. |
| Katalog | Artikel / Material | Artikelnummer (SKU) & Name | Lagerbestände und Preisstaffeln stehen wieder zur Verfügung. |
| Lieferanten | Lieferanten | Lieferantennummer & Name | Verknüpfte Kataloge und Ansprechpartner werden reaktiviert. |
| Kaufmännisch | Angebote | Angebotsnummer | Dokumentenentwürfe und Kalkulationen werden wiederhergestellt. |
3. Audit-Tracking: Wer hat was wann gelöscht?
Abschnitt betitelt „3. Audit-Tracking: Wer hat was wann gelöscht?“Der Papierkorb bietet vollständige Transparenz über alle Löschvorgänge im Betrieb:
- Gelöscht von: Anzeige von Name und Mitarbeiterkürzel des Benutzers, der den Datensatz gelöscht hat (ermittelt über die Relation
profiles!deleted_by). - Löschdatum & Uhrzeit: Sekundengenauer deutscher Zeitstempel der Löschung (
DD.MM.YYYY, HH:mm:ss). - Typ-Filterung: Schnelles Umschalten zwischen allen Datentypen oder gezieltes Filtern (z. B. nur Aufträge, nur Artikel oder nur Lager).
- Volltextsuche: Schnelle Suche nach Belegnummern, Kundennamen oder Artikelbezeichnungen im Suchfeld.
4. Rollen- und Rechteverwaltung
Abschnitt betitelt „4. Rollen- und Rechteverwaltung“Der Zugriff auf den Papierkorb wird über das Berechtigungssystem (Organisation -> Rollen & Rechte) gesteuert.
Die Berechtigungen im Detail
Abschnitt betitelt „Die Berechtigungen im Detail“| Berechtigung | Technischer Schlüssel | Kategorie | Funktion & Freigabe |
|---|---|---|---|
| Papierkorb einsehen | trash:view | admin | Sichtbarkeit des Menüpunkts Papierkorb in der Navigation, Zugriff auf die Tabelle aller gelöschten Elemente und Ausführen von Wiederherstellungen (Restore). |
| Papierkorb leeren / Hard-Delete | trash:delete | admin | Freischaltung der Buttons Endgültig löschen (pro Zeile) und Papierkorb leeren (für die gesamte Liste bzw. den aktiven Typfilter). |
Wer hat standardmäßig Zugriff?
Abschnitt betitelt „Wer hat standardmäßig Zugriff?“- Inhaber (
is_owner): Besitzt grundsätzlich vollen Zugriff auf alle Ansichten sowie die Berechtigung zum endgültigen Löschen. - Administratoren: Rollen mit den Rechten
admin:settingsoderadmin:userserhalten standardmäßig Zugriff auf die Papierkorbverwaltung. - Benutzerdefinierte Rollen: Disponenten, Lagerleiter oder Abteilungsleiter können gezielt mit
trash:viewausgestattet werden, damit sie versehentlich gelöschte Aufträge oder Artikel selbstständig wiederherstellen können, ohne das Recht zu haben, Datensätze dauerhaft aus der Datenbank zu vernichten.
5. Bedienung: Wiederherstellen & Endgültig löschen
Abschnitt betitelt „5. Bedienung: Wiederherstellen & Endgültig löschen“Datensatz wiederherstellen
Abschnitt betitelt „Datensatz wiederherstellen“- Öffne im Hauptmenü den Punkt Papierkorb (
/jobs/trash). - Nutze optional das Suchfeld oder den Typ-Filter, um den gewünschten Eintrag zu finden.
- Klicke in der Aktionsspalte auf die Schaltfläche Wiederherstellen.
- Das System setzt
deleted_atunddeleted_byaufNULLzurück. Der Eintrag verschwindet sofort aus dem Papierkorb und ist im ursprünglichen Modul wieder voll aktiv.
Datensatz endgültig löschen (Hard-Delete)
Abschnitt betitelt „Datensatz endgültig löschen (Hard-Delete)“- Klicke in der Zeile des gelöschten Datensatzes auf Endgültig löschen (nur sichtbar mit Berechtigung
trash:delete). - Bestätige die Sicherheitsabfrage im Dialogfeld:
“Möchten Sie diesen Datensatz wirklich unwiderruflich aus der Datenbank löschen? Diese Aktion kann nicht rückgängig gemacht werden.”
- Der Datensatz wird physisch aus der Datenbank entfernt (
DELETE FROM ... WHERE id = ...).
Papierkorb komplett leeren
Abschnitt betitelt „Papierkorb komplett leeren“- Klicke oben rechts im Header auf die rote Schaltfläche Papierkorb leeren.
- Falls ein Typ-Filter aktiv ist (z. B. Artikel), bezieht sich das Leeren gezielt auf alle Elemente dieses Typs. Ist kein Filter aktiv, werden alle gelöschten Elemente des Mandanten bereinigt.
- Bestätige den Sicherheitsdialog, um die dauerhafte Bereinigung durchzuführen.