Zum Inhalt springen

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)]
  1. 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.
  2. 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:delete erforderlich.
    • Jeder Löschvorgang muss über einen modalen Sicherheitsdialog bestätigt werden.

Der Papierkorb bündelt gelöschte Objekte aus allen zentralen Funktionsbereichen der Plattform in einer gemeinsamen Übersicht:

BereichDatensatztypIdentifikatorBesonderheiten bei Wiederherstellung
DispositionAufträgeAuftragsnummer & TitelErscheint sofort wieder im Dispatch-Board und der Auftragsliste.
ServiceTicketsTicketnummer & BetreffVerknüpfungen mit Kunden und Portal-Timeline bleiben erhalten.
CRMAnfragenAnfragennummer & TitelStatus und Kundenbezug werden nahtlos reaktiviert.
PrüfwesenChecklisten-VorlagenVorlagennameSteht Technikern in der mobilen App sofort wieder zur Verfügung.
KundenstammKundenKundennummer & NameReaktiviert Kundenstammblatt und Kontakthistorie.
LiegenschaftenEinsatzorte / StandorteStandortnummer & NameAdresse und Objektzuordnung werden wiederhergestellt.
AnlagenbauAnlagenAnlagennummer & BezeichnungZuweisung zu Kunde und Standort bleibt intakt.
LogistikLager & FahrzeugeLagernummer & BezeichnungBestandszuordnungen werden wieder aktiv.
LagerverwaltungLagerplätzeLagerplatz-Code (z. B. A-01-02)Verknüpfung mit übergeordnetem Lager bleibt bestehen.
KatalogArtikel / MaterialArtikelnummer (SKU) & NameLagerbestände und Preisstaffeln stehen wieder zur Verfügung.
LieferantenLieferantenLieferantennummer & NameVerknüpfte Kataloge und Ansprechpartner werden reaktiviert.
KaufmännischAngeboteAngebotsnummerDokumentenentwürfe und Kalkulationen werden wiederhergestellt.

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.

Der Zugriff auf den Papierkorb wird über das Berechtigungssystem (Organisation -> Rollen & Rechte) gesteuert.

BerechtigungTechnischer SchlüsselKategorieFunktion & Freigabe
Papierkorb einsehentrash:viewadminSichtbarkeit des Menüpunkts Papierkorb in der Navigation, Zugriff auf die Tabelle aller gelöschten Elemente und Ausführen von Wiederherstellungen (Restore).
Papierkorb leeren / Hard-Deletetrash:deleteadminFreischaltung der Buttons Endgültig löschen (pro Zeile) und Papierkorb leeren (für die gesamte Liste bzw. den aktiven Typfilter).
  • 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:settings oder admin:users erhalten standardmäßig Zugriff auf die Papierkorbverwaltung.
  • Benutzerdefinierte Rollen: Disponenten, Lagerleiter oder Abteilungsleiter können gezielt mit trash:view ausgestattet 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“
  1. Öffne im Hauptmenü den Punkt Papierkorb (/jobs/trash).
  2. Nutze optional das Suchfeld oder den Typ-Filter, um den gewünschten Eintrag zu finden.
  3. Klicke in der Aktionsspalte auf die Schaltfläche Wiederherstellen.
  4. Das System setzt deleted_at und deleted_by auf NULL zurück. Der Eintrag verschwindet sofort aus dem Papierkorb und ist im ursprünglichen Modul wieder voll aktiv.
  1. Klicke in der Zeile des gelöschten Datensatzes auf Endgültig löschen (nur sichtbar mit Berechtigung trash:delete).
  2. 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.”

  3. Der Datensatz wird physisch aus der Datenbank entfernt (DELETE FROM ... WHERE id = ...).
  1. Klicke oben rechts im Header auf die rote Schaltfläche Papierkorb leeren.
  2. 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.
  3. Bestätige den Sicherheitsdialog, um die dauerhafte Bereinigung durchzuführen.