Erstzulassung war in der App nicht speicherbar

Einstellungen.tsx fuehrt fuer die Erstzulassung einen eigenen Entwurf neben
`entwurf`. Zwei Stellen kannten ihn nicht: speichern() stieg in der ersten
Zeile aus, und die Speicherleiste haengt allein an `entwurf` - wer nur die
Erstzulassung aenderte, bekam also gar keinen Speichern-Knopf zu sehen und
verlor den Wert beim Verlassen der Seite. Damit blieb auch die
Hauptuntersuchung leer, die daraus abgeleitet wird. Das Panel speichert an
dieser Stelle sofort und war nie betroffen.

Dazu:

* Platzhalter beider Felder war MM/JJJJ, obwohl ein voller Tag gemeint ist -
  jetzt TT.MM.JJJJ. Die Monatsform bleibt lesbar, damit gespeicherte Werte
  wie "08/2026" gueltig bleiben.
* Das Tagesmuster nimmt jetzt Punkt oder Bindestrich, in beiden Codebasen
  wortgleich. "01-03-2025" ergab vorher still nichts. Unmoegliche Daten
  werden weiterhin abgewiesen, die ISO-Form nicht verwechselt.

Geprueft am laufenden System ueber die ganze Kette: eintragen, speichern,
Profildatei, dann App-Service, Panel-Service und Panel-Mein-Audi mit
uebereinstimmend 15.06.2027. 299 Tests gruen, 0 Tracebacks.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-05 10:31:53 +02:00
parent ddcd9396b0
commit 44dcb3c9d9
8 changed files with 113 additions and 9 deletions
+58
View File
@@ -11664,3 +11664,61 @@ zweiten Neustart keine Meldung und kein Schreibvorgang.
Weitere ausgemusterte Felder gehoeren in `AUSGEMUSTERTE_PROFILFELDER`, nicht in
neuen Sondercode.
## CU. Die Erstzulassung war in der App gar nicht speicherbar (2026.9.5.12)
Gemeldet: *"Erstzulassung wird in den Einstellungen nicht richtig gespeichert
und in das Service Menü übernommen... Trägt man ein datum mit Punkt oder Strich
ein, wechselt zur Kontrolle ins Service Menü, so ist HU-Feld dort leer. Zurück
in den Einstellungen ist Erstzulassung leer"*.
### Die Ursache: ein zweiter Entwurf, den die Speicherleiste nicht kannte
`Einstellungen.tsx` fuehrt zwei Entwuerfe nebeneinander. `entwurf` haelt die
Einstellungen, `erstzulassung` einen eigenen fuer das Fahrzeugfeld - richtig
so, es gehoert nicht zu den Einstellungen. Nur haben zwei Stellen den zweiten
Entwurf vergessen:
if (!entwurf && !zusatz) return // speichern() stieg sofort aus
{entwurf && ( <div className="dm-speicherleiste"> ... )} // Leiste fehlte
Wer **nur** die Erstzulassung aenderte, bekam damit gar keinen
Speichern-Knopf zu sehen, und selbst ein Aufruf von `speichern()` haette in der
ersten Zeile abgebrochen. Der eingetippte Wert war schlicht nicht speicherbar
und beim Verlassen der Seite weg. Am laufenden System nachgewiesen: Feld nimmt
"15.06.2024" an, `speicherleisteSichtbar: false`, kein Speichern-Knopf im DOM.
**Das Panel war nie betroffen** - dort schreibt der `data-einrichten`-Handler
bei jeder Aenderung sofort ins Profil. Wieder eine Abweichung, die kein
Quelltextvergleich zeigt, sondern nur das Bedienen beider Oberflaechen.
Behoben: beide Bedingungen kennen jetzt den zweiten Entwurf, und "Verwerfen"
setzt ihn mit zurueck - sonst bliebe die Leiste danach stehen.
### Der Platzhalter log
Beide Felder schlugen `MM/JJJJ` vor, obwohl ein voller Tag gemeint ist und die
Ableitung der Hauptuntersuchung mit einem Tag genauer rechnet. Jetzt
`TT.MM.JJJJ`, in Panel und App. Die alte Monatsform bleibt lesbar - bereits
gespeicherte Werte wie "08/2026" duerfen nicht ungueltig werden, und
`genau: "monat"` traegt die Ungenauigkeit bis in die Anzeige (Abschnitt CR).
### Bindestrich statt Punkt
Der Eigentuemer hat "mit Punkt oder Strich" getippt. `01-03-2025` traf kein
Muster und ergab still nichts. Das Tagesmuster nimmt jetzt beide Trenner:
/^(\d{1,2})[.\-](\d{1,2})[.\-](\d{4})$/
In beiden Codebasen wortgleich. Die Ablehnung unmoeglicher Daten bleibt
(`31-02-2025` ergibt weiterhin nichts, `new Date(2025,1,31)` waere der 3. Maerz),
und die ISO-Form wird nicht verwechselt: `2025-03-01` bleibt Jahr-Monat-Tag.
Vier neue Tests in `format.test.ts`.
### Durchgehend geprueft
Am laufenden System, ganze Kette: App-Einstellungen, Platzhalter `TT.MM.JJJJ`,
`15-06-2024` eingetragen, Speicherleiste erscheint, "Gespeichert.", in
`fahrzeugprofil.json` steht `15-06-2024` - und danach zeigen App-Service,
Panel-Service und Panel-Mein-Audi uebereinstimmend **15.06.2027** (plus 36
Monate). Danach der urspruengliche Wert des Eigentuemers wiederhergestellt.