Commit Graph
107 Commits
Author SHA1 Message Date
ClaudeandClaude Sonnet 5.5 b556a459bb Kontrolle: Rechnungsdialog weist auf die fehlende Steuernummer hin
Nicht sperrender Hinweis (§ 34a UStDV), solange financeSettings.steuernummer leer ist;
die Einstellungen werden einmal geladen, bei einem Ladefehler erscheint kein Hinweis.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:17:29 +00:00
ClaudeandClaude Sonnet 5.5 dec7bea7d2 Kontrolle: Rechnungsdialog übernimmt das Zahlungsziel der gewählten AB
Bei Anzahlung, Schlussrechnung und Aufwand wird 'Zahlungsziel in Tagen' mit
auftrag.zahlungszielTage vorbelegt (sonst 14); eine Eingabe des Nutzers bleibt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 15:17:08 +00:00
ClaudeandClaude Sonnet 5.5 b7b3e834f8 Merge auftraege/w2-auftraege: Auftrags-UI (Strang W2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:48:55 +00:00
ClaudeandClaude Sonnet 5.5 6a5f943034 Rechnungsdialog: Zustand mit Reducer, Appwrite-Lesezugriffe und Hooks für Projektkonto, Vorschau und weitere Tickets
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:34:22 +00:00
ClaudeandClaude Sonnet 5.5 8b055a5d42 Auftragsbestaetigung: Listenlogik (Status, Aktionen, Meldungen, Fehlerklassen, Sperre) und PDF-Hilfe mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:33:28 +00:00
ClaudeandClaude Sonnet 5.5 0f1dbabd98 Rechnungsdialog: Anfragekörper, Vorschau-Status, Zeilentexte und Absenden mit Doppelklick-Sperre samt Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:33:21 +00:00
ClaudeandClaude Sonnet 5.5 e37c0a664e Rechnungsdialog: Logik für Projektwahl, Rechnungsarten, Auftragsbestätigungen und Arbeitsblätter mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:32:20 +00:00
ClaudeandClaude Sonnet 5.5 45dd73d8cc Auftragsbestaetigung: Dialoglogik (Parser, Validierung, Nutzlast, Zahlungsplan-Vorschau) mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:31:31 +00:00
ClaudeandClaude Sonnet 5.5 241f7cdec6 Projektkonto: Anzeigelogik für Zeilen, Rechnungsspalten und Abzeichen „abgerechnet“ mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:29:30 +00:00
ClaudeandClaude Sonnet 5.5 674cce26f0 Kundenart in der Kunden-Uebersicht und Steuernummer in den Finanz-Einstellungen (Helfer mit Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:28:49 +00:00
ClaudeandClaude Sonnet 5.5 e1c9b57249 Aufträge und Rechnungen: frische Kundenart und Rückmeldungen nach Rechnung und Auftrag (mit Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:24:47 +00:00
ClaudeandClaude Sonnet 5.5 312705efc4 Aufträge und Rechnungen: Laden und Ladezustand des Reiters als reine Funktionen (mit Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:24:20 +00:00
ClaudeandClaude Sonnet 5.5 e7bd146641 Kundenreiter „Rechnungen“ heißt jetzt „Aufträge und Rechnungen“ (id bleibt invoices)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:24:03 +00:00
ClaudeandClaude Sonnet 5.5 e116e804e3 Finanzen-API: Projektkonten, Auftragsbestätigungen (samt Projekt zuordnen), Rechnungsvorschau und abgerechnete Arbeitsblätter (Pfade rein und getestet)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:23:39 +00:00
ClaudeandClaude Sonnet 5.5 eaf9fce1bc Finanzen-Anfrage: Dateien lesen (as: 'blob'), z. B. das PDF einer Auftragsbestätigung
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-07 14:23:05 +00:00
ClaudeandClaude Opus 5.5 d2883018fc Kunden: Reiter "Abgesagt", Absage eintragen und Warnung vor Doppelten
- Kundenliste mit Reiter "Abgesagt" (vorher nur unter "Alle"), rotes Abzeichen,
  Suche auch nach Telefon
- Kundenseite: "Absage eintragen" fuer Leads (Grund freiwillig); Vermerk
  "Abgesagt am TT.MM.JJJJ (Name): Grund" oben in die Notizen, offene
  Akquise-Tickets auf "Abgesagt"; roter Hinweis "nicht erneut anrufen" und
  "Wieder als Lead fuehren"
- Neuer Lead (jetzt mit Telefon) und Neuer Kunde gleichen live mit allen
  Kunden ab (auch archivierte/abgesagte): Name ohne Rechtsform, E-Mail,
  Firmen-Domain (ohne Freemailer), Telefon; Abgesagte rot und zuerst,
  Knopf heisst dann "Trotzdem anlegen"
- Uebersicht wird nach Speichern neu aufgebaut (key), damit kein alter
  Notizstand den Vermerk ueberschreibt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 16:01:21 +00:00
ClaudeandClaude Opus 5.5 5d8130e8ef Tickets: Standardansicht zeigt alle Arten, auch Akquise-Tickets
Bisher startete die Liste mit dem Art-Filter "Auftraege", der Akquise-Tickets
ausschliesst. Neue Kunden bekommen ein Akquise-Ticket, das dann unter Tickets
nicht zu finden war. Standard ist jetzt "Alle Arten"; "Auftraege (ohne Akquise)"
bleibt als Filter waehlbar.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 15:42:02 +00:00
ClaudeandClaude Sonnet 5.5 bca99d4790 Serverpuls: Richtung, Vorzeichen und Stufen-Ton als Format-Helfer mit Test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:43:53 +00:00
ClaudeandClaude Sonnet 5.5 38beaead99 Admin: Pruefung des Mitarbeiter-Formulars als Lib mit Test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:41:26 +00:00
ClaudeandClaude Sonnet 5.5 313ead77f4 Rechtliches: Anzeige-Texte der Vertragsliste als Lib mit Test
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:41:26 +00:00
ClaudeandClaude Sonnet 5.5 e1932a2a48 Finanzen: Helfer fuer Vorzeichen-Rot und Meldungsklassen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:38:00 +00:00
ClaudeandClaude Sonnet 5.5 ea528486aa Design P6: chat.css neu (Praefix .woms-chat, Umschaltung bei 860 px), Fehlerzeile ohne Icon
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:45 +00:00
ClaudeandClaude Sonnet 5.5 b81e53eef5 Design P6: reine Helfer fuer Gutschrift-, Angebots- und Speicherzeilen mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:36:10 +00:00
ClaudeandClaude Sonnet 5.5 9da42d52c3 Projekte: Tonabbildung fuer Preview-, Analyse- und Projektstatus
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 5647412e34 Projekte: Reiter-Liste der sechs Ansichten als getestete Funktion
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 d2d4ad9cfb Projekte: Typ-, Hosting- und Aktionslogik als getestete Lib-Funktionen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:34:20 +00:00
ClaudeandClaude Sonnet 5.5 4b6ab7505a Kunden: Filter, Zaehler und Abzeichen als reine Funktionen (lib/customerList.js, Tests)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 14:31:42 +00:00
ClaudeandClaude Opus 5.5 35e2761e68 Merge origin/test (WOMS-Überarbeitung Planboard/Tickets) in feature/oeffnungszeiten
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 08:56:02 +00:00
ClaudeandClaude Sonnet 5.5 7a3bc2887e Planboard: Jahr im Zeitraum, Tagesköpfe einheitlich zweizeilig, Keine Termine lesbarer
- planboardSubtitle: das Ende des Zeitraums trägt das Jahr, der Anfang nur bei abweichendem Jahr; count ohne Wert zählt als 0
- dayLabels.full (aria-label der Spalte) mit Jahr
- ab 861 px steht der Wochentag in jedem Tageskopf über dem Datum (gleich hohe Köpfe, alle Termine beginnen auf einer Höhe)
- "Keine Termine" überall in --text-2, die Sonderregeln für Wochenende und Handy entfallen

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:36:46 +00:00
ClaudeandClaude Opus 5.5 f67192db52 Funktionen: K16-Warnung nennt bei den Öffnungszeiten keinen AVV
Die Warnung "K16 ging nicht raus" sprach von Leistungsbeschreibung und AVV. Öffnungszeiten live hat keinen AVV und
schickt keine Anhänge mit, die Warnung behauptet es dort jetzt nicht mehr: speicherStatus(antwort, key) liefert für
zeiten den Text K16_WARNUNG_OHNE_UNTERLAGEN, für alle anderen Funktionen unverändert K16_WARNUNG. Test für beide Wege.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:19:55 +00:00
ClaudeandClaude Opus 5.5 8319084930 Merge remote-tracking branch 'origin/test' into feature/oeffnungszeiten
Zusammenführung von TP2 und Webshop im Ticketsystem (origin/test 00fa229) mit Öffnungszeiten live. Die Funktionen
stehen in der Reihenfolge news, termine, shop, zeiten.

Konfliktdateien (6, erwartet war nur CustomerFunktionen.jsx; origin/test enthält seit der Vorbereitung auch die
beiden Webshop-Commits 0a2eab8 und 00fa229): scripts/setup-legal.mjs, src/components/customer/CustomerFunktionen.jsx,
src/lib/funktionenView.js, src/lib/teamApi.js, tests/setup-legal.test.mjs, tests/unit/funktionenView.test.mjs.

Entscheidungen: ersatzTicket-Behandlung der Zeiten und speicherStatus/K16_WARNUNG von TP2 bleiben beide in save()
(Abschalten der Zeiten zeigt abschaltMeldung, jede andere Aktion speicherStatus); Rechtliches-Karten Webshop (sort 10, 11)
vor der Karte der Öffnungszeiten (sort 12, DOCUMENTS hat 12 Einträge); siteKeyOf kennt termine, shop und zeiten; aktionen
behandelt shop und zeiten wie den Terminplaner (ticketbasiert, Abnahme der Zeiten mit hindernis); teamApi trägt Webshop-
und Zeiten-Aufrufe nebeneinander.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:19:42 +00:00
ClaudeandClaude Sonnet 5.5 a0149137ea Planboard: Anzeigelogik fuer Kopfzeile, Tageskopf und Terminzeile mit Tests
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 dd0bef52e8 Planboard: Tests halten Datums- und Terminlogik fest (Altwerte, Stornierte, ohne Uhrzeit)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Sonnet 5.5 ed8bdba015 Tickets: Abschlussfixes P2 - Termin ohne Umbruch in der Zeitspanne, Art in der Liste, Laden statt Leerzustand, Unterstuetzung entsperrt bei Fehler, Aufraeumen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:03:14 +00:00
ClaudeandClaude Opus 5.5 0b53fc825a Tickets: Zeit-Spalte (Bloecke, 3 parallel, 200 Zeilen), Ticket-Suche per woid oder ID, Anfrage-Zaehler
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:55 +00:00
ClaudeandClaude Opus 5.5 9fec381056 Tickets: Arbeitsblatt-Folgen und Zeilen-Logik als getestete Lib (Akquise-Ergebnis, Summen, Abo-Regel)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 32746727ed Tickets: Anzeige-Helfer fuer Termin, Faellig, Zustaendig und Status-Auswahl (Altdaten sicher)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 54fc44ed11 Tickets: ticketPath, Listenzustand in der URL (Reiter, Art, Dringend, Suche, limit), woid-Umleitung, Zeilenklick-Helfer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 988934552f Design: Dialog-Baustein (Esc, Sperre waehrend Speichern, Fokus, Bottom-Sheet)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 822387e4f7 Design: UI-Bausteine rendern die neuen Klassen (Button, Badge, Card, Kopf, Reiter, Stat)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Sonnet 5.5 5a0307c9d6 Design: Geruest mit Textmenue, Schublade fuers Handy, Logo; Footer und Einklappen entfallen
Weisses Geruest (.shell, feste Seitenleiste, Dokument-Scroll), Menue als Textliste mit Zaehlern und Serverpuls-Punkt, Schublade mit Scrim und Esc auf dem Handy, Logo-Komponente und Favicon. Footer, Einklappen (lib/sidebar.js) und das alte Menue-CSS (.side*, .app-*) sind entfernt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Haiku 4.5 bb110a734e Ticketstatus: statusTone fuer die neuen Badge-Toene
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-10-06 06:02:54 +00:00
ClaudeandClaude Opus 5.5 00fa229235 Shop Review B I-8: Webshop ohne Zahlung nur mit Zustimmung in Textform aktivieren
Das Textform-Formular (Haken, Datum, Weg, Chat-Vorlage) gilt wie beim Terminplaner auch
fuer den Webshop, wenn das Portal im Feld shop textformNoetig meldet. Kaestchentext und
Chat-Vorlage nennen die Unterlagen des Webshops, die Fassung und die Erklaerungen, die das
Portal im Nachweis speichert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 09:45:31 +00:00
ClaudeandClaude Opus 5.5 919d96f7a0 Öffnungszeiten: Status "Leisten live – Einbau läuft" nur bei einbau angestossen
In der Einrichtung nennt der Statustext "Leisten live – Einbau läuft" nur noch, wenn der Neubau angestossen ist.
Bei einbau manuell oder leer steht "Einbau läuft (Team setzt die Skript-Zeile von Hand)"; "wartet auf die Zeiten des Kunden" geht weiter vor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 09:10:45 +00:00
ClaudeandClaude Opus 5.5 0a2eab85d5 Webshop: Funktionen-Karte mit Anfrage annehmen/ablehnen, Stripe-Stand, Kennzahlen und Rechtliches-Karten
Webshop als Funktion im Reiter Funktionen (Aktionen wie beim Terminplaner), Panel je Projekt mit Anfrage,
Entscheidung mit Begruendung, Stripe-Status und Zahlen; Karten Leistungsbeschreibung und AVV Webshop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 08:47:19 +00:00
ClaudeandClaude Opus 5.5 3d67aa88cf Öffnungszeiten: Team-Panel, Ersatz-HTML und Rechtliches-Karte
Panel unter der Zeile Öffnungszeiten live (Header-Selektor, Kontakt-/Hinweis-Leiste aus, Speichern mit teamVersion,
Ersatz-HTML kopieren je Plan), Meldung zum Ersatz-Ticket nach dem Abschalten, Hindernis an aktionen, Statustext der Zeiten,
Team-API (GET ersatz, PATCH team), Karte Leistungsbeschreibung Öffnungszeiten live in setup-legal (Schlüssel höchstens 36 Zeichen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:12:04 +00:00
ClaudeandClaude Opus 5.5 4c3f67eadc Merge origin/test in feature/terminplaner-tp2 (Projekte: Anlegen, Archiv, Vorlage)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:12:04 +00:00
ClaudeandClaude Opus 5.5 878a530bd7 Terminplaner: Warnung im Dialog, wenn K16 mit den Unterlagen nicht rausging
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:05:44 +00:00
ClaudeandClaude Opus 5.5 994347408d Öffnungszeiten: Register und Texte im Ticketsystem
Funktionen-Reiter kennt "Öffnungszeiten live" (zeiten) hinter dem Terminplaner:
Bestätigungstexte, Site-Key, Aktionen je Zustand (Abnahme nur ohne Hindernis
"zeiten_fehlen"). Neues Modul zeitenView.js: Statustext (Einbau läuft / wartet
auf die Zeiten des Kunden / Abo-Ende mit Frist), navSelektorFehler (Spiegel
der Portal-Regel) und teamBody für PATCH .../zeiten/team. Protokoll-Label
für zeiten_gespeichert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 07:02:30 +00:00
ClaudeandClaude Sonnet 5.5 72eedeb59c Terminplaner: Abschalten-Dialog nennt Löschung nach 30 Tagen
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-05 06:36:12 +00:00