-- ===================================================================== -- Altfälle aufräumen: abgebrochene Projekte, die noch in der laufenden -- Liste stehen (24.08.2026) -- -- Warum es diese Migration überhaupt braucht: -- -- Der Wunsch "wenn ich abbreche dan sollen die auch da weg" wurde erst -- am 24.08.2026 umgesetzt. Seitdem setzt der Abbruch neben dem Status -- auch archiviert = 1, und genau dieses Feld blendet das Projekt aus -- der laufenden Liste aus. -- -- Projekte, die VORHER abgebrochen wurden, haben den Status, aber nicht -- das Archiv-Kennzeichen. Sie stehen deshalb bis heute zwischen den -- offenen Aufträgen -- also genau das, was der Wunsch abstellen sollte. -- Konkret betrifft das P-2608-0001. -- -- Warum nicht von Hand in der Datenbank: -- -- Ein einzelner UPDATE per Hand repariert einen Fall und hinterlässt -- keine Spur. Diese Migration erwischt jeden Altfall, läuft überall -- gleich (Server, Testdatenbank, ein späterer Neuaufbau) und steht -- nachvollziehbar in der Versionsgeschichte. -- -- Warum archivieren und nicht löschen: -- -- Dieselbe Begründung wie beim Abbruch selbst: Zahlungen, Erstattung -- und Verlauf hängen daran, und bei einem Streit braucht man genau das. -- Über den Archiv-Umschalter in der Projektliste bleibt alles -- auffindbar. -- -- Bewusst NICHT angefasst: -- -- abbruch_am, abbruch_grund, abbruch_wer, abbruch_erstattung_cent. -- Diese Felder gab es beim damaligen Abbruch noch nicht, sie sind also -- leer. Sie nachträglich mit erfundenen Werten zu füllen wäre eine -- Behauptung über einen Vorgang, bei dem niemand mehr weiß, wie er -- wirklich ablief -- und ausgerechnet bei einem Streitfall wäre das die -- gefährlichste Stelle für eine Erfindung. Ein leeres Feld sagt -- ehrlich "unbekannt". Die Verwaltung kommt damit zurecht: Sie zeigt -- Datum, Grund und Erstattung nur an, wenn sie gefüllt sind. -- ===================================================================== UPDATE wd_projekte SET archiviert = 1, -- Die Uhr steht ab jetzt auch formal still. Ohne das bliebe -- wartet_auf auf einem Wert wie 'kunde' stehen, und jede -- Auswertung über offene Wartezustände zählte einen toten -- Vorgang mit. wartet_auf = 'niemand', aktualisiert_am = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE status = 'abgebrochen' AND (archiviert IS NULL OR archiviert = 0);