Bautagebuch
Das Bautagebuch ist das zentrale Dokumentationssystem für alle Arbeiten auf der Baustelle. Es verbindet die Dokumentation durch Mitarbeiter (Worker-App) mit der Verwaltung und Genehmigung durch das Büro.
Zwei Perspektiven
Mitarbeiter (Worker-App)
Mitarbeiter erstellen Tagesberichte über den Dokumentation-Wizard in der Worker-App. Der 7-Schritte-Wizard führt durch:
- Projekt/Aufgabe auswählen
- Arbeitszeiten erfassen
- Fotos aufnehmen
- Sprachnotizen aufzeichnen (KI-Transkription)
- Material dokumentieren
- Unterschrift-Typ wählen (Selbst oder Extern)
- Unterschrift leisten
Büro / Projektleitung (Bautagebuch-Controlling)
Die zentrale Bautagebuch-Verwaltung (Hauptmenü → Bautagebuch) bietet:
- Projektübergreifende Übersicht aller Einträge mit Echtzeit-Statusanzeige
- Projekt-Combobox mit Suche, Typfilter (Großprojekte / Kleinprojekte) und "Alle Projekte"-Option
- Filter nach Status, Eintragstyp, Zeitraum und Budget-Position
- Detail-Dialog mit Fotos, Sprachaufnahmen, Maschinen, Materialien und Unterschriften
- Nachträge als Unter-Zeilen unter dem Originaleintrag gruppiert
- KI-Berichte als eigener Tab für KI-Zusammenfassungen und PDF-Exporte
- PDF-Export pro Projekt (Gesamt, Wochen-, Monats- oder Zeitraumbericht)
Die URL /diary leitet automatisch weiter: Worker gelangen zur Worker-App (/worker/diary), alle anderen Rollen zur Verwaltungsansicht (/bautagebuch). Einzelne Einträge (/diary/[id]) werden für Worker zur Detailansicht, für Manager zur Genehmigungszentrale weitergeleitet.
Eintragstypen
| Eintragstyp | Beschreibung | Erstellt von |
|---|---|---|
| Arbeitsschein | Standard-Bautagebucheintrag mit Zeiten, Fotos, Material | Mitarbeiter (Worker-App) |
| Arbeitsnachweis Extern | Dokumentation mit externer Unterschrift (Bauleiter vor Ort) | Mitarbeiter (Worker-App) |
| Nachtrag | Ergänzung zu einem bestehenden Eintrag (innerhalb 24h) | Mitarbeiter (Worker-App) |
Genehmigungsprozess
Status-Workflow
Mitarbeiter erstellt Eintrag (Worker-App)
↓
┌─────────┴─────────┐
↓ ↓
Selbst-Signatur Externe Signatur
↓ + Co-Signatur
↓ ↓
Status: "Ausstehend" Status: "Genehmigt"
↓ (sofort, kein Review)
Büro/PL prüft
↓
┌───┼───────────┐
↓ ↓ ↓
Ge- Korrektur Ab-
neh- anfordern lehnen
migen ↓ ↓
↓ Zurück an Dokumentiert,
Kosten MA keine Buchung
gebucht ↓
MA korrigiert
+ signiert erneut
↓
┌───┴───┐
↓ ↓
Akzep- Wider-
tiert spruch
↓ ↓
Erneut Manager
in GZ löst auf
Status-Übersicht
| Status | Badge-Farbe | Bedeutung |
|---|---|---|
| Entwurf (draft) | -- | Noch nicht unterschrieben |
| Ausstehend (pending) | Gelb | Unterschrieben, wartet auf Prüfung |
| Eingereicht (submitted) | Gelb | Externe Signatur vorhanden, wartet auf Worker-Co-Sign |
| Genehmigt (approved) | Grün | Erfolgreich freigegeben, Kosten gebucht |
| Abgelehnt (rejected) | Rot | Nicht akzeptiert, keine Buchung |
| Korrektur angefragt (correction_requested) | Gelb | Zurück beim Mitarbeiter |
| Widerspruch (disputed) | Lila | Mitarbeiter hat Korrektur abgelehnt |
Detaillierte Informationen zum Genehmigungsprozess finden Sie unter Genehmigungszentrale.
Bautagebuch-Controlling (Verwaltungsansicht)
Die Verwaltungsansicht unter /bautagebuch ist der zentrale Arbeitsplatz für Manager, Projektleiter und Backoffice.
Tab: Einträge
Die Eintragsliste zeigt alle Bautagebucheinträge mit folgenden Informationen:
| Spalte | Inhalt |
|---|---|
| Datum | Arbeitstag und Uhrzeit des ersten Arbeitseinsatzes |
| Projekt | Zugeordnetes Projekt |
| Titel | Überschrift und Kurzbeschreibung des Eintrags |
| Typ | Arbeitsschein oder Extern |
| Status | Ausstehend / Genehmigt / Abgelehnt |
| Autor | Name des Mitarbeiters |
| Medien | Anzahl Fotos, Sprachaufnahmen und Maschinen |
Nachträge (Amendments)
Nachträge werden als eingerückte Unter-Zeilen direkt unter dem Originaleintrag angezeigt. Am Originaleintrag erscheint ein Badge wie "+1 Nachtrag". Nachträge sind farblich abgesetzt (bernsteinfarben) und mit einem Pfeil-Symbol gekennzeichnet.
Statistiken
Unterhalb der Tabelle zeigt eine Schnellstatistik:
- Gesamtanzahl Einträge
- Anzahl Fotos und Sprachaufnahmen
- Anzahl eingesetzter Maschinen
- Offene und genehmigte Einträge (im Header)
Detail-Dialog
Ein Klick auf einen Eintrag öffnet einen Dialog mit:
- Beschreibung des Eintrags (Volltext)
- Anwesende Mitarbeiter als Badges
- Unterschriften mit eingebetteten Signatur-Grafiken und Zeitstempeln
- Fotos mit Lightbox-Ansicht zum Vergrö ßern
- Sprachaufnahmen mit Transkription und Audio-Player
- Maschinen mit Betriebsstunden
- Zusammenfassung (Priorität, Eintragstyp, Status, Medien-Zähler)
Tab: KI-Berichte
Der KI-Berichte-Tab ist verfügbar, wenn ein einzelnes Projekt ausgewählt ist. Er bietet:
Berichtstypen
| Typ | Format | Beschreibung |
|---|---|---|
| KI-Zusammenfassung | Markdown | KI analysiert alle Einträge und erstellt professionelle Zusammenfassung |
| Wochenbericht | Alle Einträge einer Kalenderwoche | |
| Monatsbericht | Alle Einträge eines Monats | |
| Gesamtbericht | Alle Einträge des Projekts | |
| Zeitraumbericht | Einträge eines frei wählbaren Zeitraums |
Schnellaktionen
Vier vordefinierte Schnellaktionen auf Karten:
- KI: Diese Woche -- KI-Zusammenfassung der aktuellen Woche
- KI: Dieser Monat -- KI-Zusammenfassung des aktuellen Monats
- Gesamtexport -- Komplettes PDF des Projekts
- PDF: Aktueller Monat -- Monats-PDF mit Fotos
KI-Zusammenfassungen
Die KI analysiert Bautagebuch-Einträge und erstellt:
- Fortschrittsübersicht
- Materialauswertung
- Personalübersicht
- Empfehlungen
Zusammenfassungen werden als Markdown gespeichert und können jederzeit als PDF exportiert werden.
PDF-Exporte
PDF-Exporte enthalten:
- Firmenlogo
- Alle Einträge mit eingebetteten Unterschriften
- Materialien und Wetterdaten
- Optional: Foto-Timeline (chronologisch am Ende)
- Optional: Inline-Fotos bei jedem Eintrag
Bei großen Projekten läuft die Erstellung als Hintergrund-Job (Inngest). Der Download startet automatisch, sobald das PDF fertig ist.
Vorschau-Statistiken
Beim Erstellen eines neuen Berichts zeigt eine Vorschau:
- Anzahl Einträge im gewählten Zeitraum
- Anzahl Fotos, Materialien und beteiligte Mitarbeiter
Filter und Suche
Hauptfilter (immer sichtbar)
| Filter | Optionen |
|---|---|
| Projekt | Alle Projekte / Einzelnes Projekt (mit Suche und Typfilter) |
| Status | Alle / Ausstehend / Genehmigt / Abgelehnt |
Erweiterte Filter (aufklappbar)
| Filter | Optionen |
|---|---|
| Eintragstyp | Alle / Arbeitsschein / Extern |
| Von / Bis | Datumsbereich |
| Budget-Position | Einträge einer bestimmten LV-Position |
Projektauswahl
Die Projektauswahl bietet:
- Suchfeld zum schnellen Finden von Projekten
- Typfilter: Alle / Großprojekte / Kleinprojekte
- Projektanzahl pro Typ
- Auto-Auswahl bei nur einem verfügbaren Projekt
PDF-Export (Schnellexport)
Neben den KI-Berichten gibt es einen Schnellexport-Button in der Eintragsansicht (bei ausgewähltem Projekt).
Exporttypen
| Typ | Beschreibung |
|---|---|
| Gesamtauszug | Alle Einträge des Projekts |
| Wochenauszug | Einträge einer bestimmten Kalenderwoche |
| Monatsauszug | Einträge eines bestimmten Monats |
| Datumsbereich | Frei wählbarer Zeitraum |
Optionen
- Fotos bei Einträgen anzeigen: Thumbnail-Galerie direkt unter jedem Eintrag
- Foto-Timeline am Ende: Chronologische Übersicht aller Fotos am Ende des PDFs
- Im Projekt speichern: Hintergrund-Export (zuverlässiger bei großen Projekten) oder Direkt-Download
Bautagebuch-Audit (Admin)
Unter Admin → Bautagebuch-Audit (/admin/diary-audit) finden Administratoren eine Überwachungsansicht für blockierte Einträge.
Überwachte Kategorien
| Kategorie | Schwellenwert | Beschreibung |
|---|---|---|
| Korrektur ausstehend | > 7 Tage | Worker hat Korrektur nicht bearbeitet |
| Streitfall | > 14 Tage | Worker hat Korrektur abgelehnt, Widerspruch ungelöst |
| Warte auf Genehmigung | > 3 Tage | Manager hat nicht genehmigt |
| Korrektur-Schleife | > 2 Korrekturrunden | Eintrag wurde mehrfach korrigiert |
Funktionen
- Summary-Karten mit Anzahl pro Kategorie (klickbar als Filter)
- Suche nach Titel, Mitarbeiter oder Projekt
- Tabelle mit Status, Titel, Mitarbeiter, blockiert seit (in Tagen), Anzahl Korrekturen, Grund
- Erinnerungs-Badge wenn automatische Erinnerung gesendet wurde
- Eskalations-Badge bei eskalierten Einträgen
- Direktlinks zum Eintrag und zur Genehmigungszentrale
- Auto-Refresh alle 60 Sekunden
Das System sendet automatisch Erinnerungen an Mitarbeiter bei ausstehenden Korrekturen und eskaliert an Administratoren bei überschrittenen Schwellenwerten.
Korrektur-Workflow
Ablauf
- Manager identifiziert Problem im Eintrag
- Manager fordert Korrektur an (mit Grund und optionalen Vorschlägen)
- Mitarbeiter erhält Benachrichtigung
- Mitarbeiter kann:
- Korrektur übernehmen und erneut signieren
- Korrektur ablehnen (Widerspruch einlegen)
- Bei Widerspruch kann der Manager:
- Original akzeptieren (Worker hatte Recht)
- Neue Korrektur senden (mit angepassten Vorschlägen)
- Final ablehnen (Eintrag wird endgültig abgelehnt)
Korrektur-Limits
- Maximum 3 Korrektur-Runden pro Eintrag
- Nach Erreichen des Limits wird der Eintrag an die Administration eskaliert
- Eskalierte Einträge erscheinen im Bautagebuch-Audit
Immutabilitätsregeln
Nach der Genehmigung gelten strenge Regeln zum Schutz der Datenintegrität:
| Was | Änderbar? | Anmerkung |
|---|---|---|
| Arbeitszeiten | Nein | Vom Mitarbeiter unterschrieben (§16 ArbZG) |
| Beschreibung/Inhalt | Nein | Inhalt ist nach Genehmigung fixiert |
| Material (Inhalt) | Nein | Nur über den Korrektur-Workflow |
| Stundensätze | Ja | Preise können jederzeit angepasst werden |
| Materialkosten | Ja | Preise können jederzeit angepasst werden |
Bei extern unterschriebenen Einträgen (Arbeitsnachweis Extern) ist zusätzlich der gesamte Arbeitsinhalt gesperrt -- Materialien, Maschinen und Fotos können vom Manager nicht ergänzt werden, nur Preise bleiben editierbar.
Kosten-Übernahme ins Budget
Genehmigte Bautagebuch-Einträge fließen automatisch ins Herzstück (Budget):
Was wird gebucht?
| Kostenart | Berechnung | Ziel |
|---|---|---|
| Personalkosten | Arbeitsstunden x Stundensatz | projectExpenses (Typ: labor) |
| Materialkosten | Menge x Stückpreis | projectExpenses (Typ: material) |
Stundensatz-Ermittlung
Der Stundensatz wird in folgender Reihenfolge ermittelt:
- Vom Manager bei Genehmigung manuell angegeben
- Aus der zugeordneten Budget-Position (wenn Einheit "Stunde")
- Aus dem Standard-Stundensatz des Mitarbeiters (Profil-Einstellung)
ArbZG-Compliance-Prüfung
Bei der Genehmigung prüft das System automatisch die Einhaltung des Arbeitszeitgesetzes:
- §3 ArbZG: Maximale Arbeitszeit von 10 Stunden/Tag
- §4 ArbZG: Mindestpausenzeiten
- §5 ArbZG: Mindestruhezeit von 11 Stunden zwischen Schichten
- §3 ArbZG: Maximale Wochenarbeitszeit (48h Durchschnitt über 24 Wochen)
Bei Verstößen wird die Genehmigung blockiert und eine detaillierte Fehlermeldung mit Gesetzesreferenz angezeigt.
Nachträge und Kosten
Nachträge (Amendments) sind textliche Ergänzungen zum Originaleintrag. Sie erzeugen keine separaten Personalkosten, um Doppelbuchungen zu vermeiden. Die Arbeitszeit des Originals bleibt maßgeblich.
Für wen?
| Rolle | Bautagebuch-Controlling | KI-Berichte | PDF-Export | Bautagebuch-Audit | Einträge erstellen |
|---|---|---|---|---|---|
| Admin | Alle Projekte | Ja | Ja | Ja | Nein |
| Backoffice | Zugewiesene Projekte | Ja | Ja | Ja | Nein |
| Projektleiter | Zugewiesene Projekte | Ja | Ja | Nein | Nein |
| Mitarbeiter | Kein Zugriff (Weiterleitung zu Worker-App) | Nein | Nein | Nein | Ja (Worker-App) |
Zusammenhaenge mit anderen Modulen
Das Bautagebuch ist kein isoliertes Dokumentationssystem. Es ist der zentrale Dateneingang fuer das gesamte Kostensystem der Anwendung. Jeder Eintrag durchlaeuft einen mehrstufigen Lebenszyklus, der am Ende Kosten im Budget erzeugt und Compliance-Dokumente archiviert. Nachfolgend wird der komplette Datenfluss Schritt fuer Schritt erklaert.
Kompletter Datenfluss: Vom Eintrag bis zur Kostenbuchung
Schritt 1 -- Eingang: Worker erstellt Eintrag
Der Mitarbeiter erstellt einen Eintrag ueber den Dokumentation-Wizard in der Worker-App (7 Schritte). Dabei werden folgende Daten erfasst:
- Arbeitszeiten: Beginn, Ende, Pause (pro Arbeitseinheit)
- Material: Name, Menge, Einheit, Preis (optional, wird haeufig erst vom Manager zugewiesen)
- Maschinen: Aus dem Maschinenpark via QR-Code-Scan -- Betriebsstunden werden manuell eingegeben
- Fotos: Direkt aus der Kamera oder Galerie
- Sprachnotizen: Mit KI-Transkription
- Unterschrift: Selbst-Signatur oder externe Signatur (Schritt 6+7)
Je nach Signatur-Typ erhaelt der Eintrag einen unterschiedlichen Status:
- Selbst-Signatur: Status wird "Ausstehend" (pending) -- der Eintrag muss in der Genehmigungszentrale geprueft werden
- Externe Signatur: Status wird "Genehmigt" (approved) -- der Eintrag ist sofort genehmigt, weil eine externe Person (z.B. Bauleiter) vor Ort unterschrieben hat
Schritt 2 -- Genehmigung: Manager prueft in der Genehmigungszentrale
Eintraege mit Selbst-Signatur erscheinen in der Genehmigungszentrale. Der Manager (Admin, Backoffice oder Projektleiter) prueft Arbeitszeiten, Fotos, Material und Maschinen. Bei der Genehmigung legt der Manager den Stundensatz und die Materialpreise fest und ordnet den Eintrag einer Budget-Position im Herzstueck zu.
Schritt 3 -- Y-Split: Zwei parallele Ergebnisse nach Genehmigung
Nach der Genehmigung passieren zwei Dinge gleichzeitig (der sogenannte Y-Split):
Die Genehmigung loest automatisch die Kostenbuchung aus. Das System berechnet:
- Personalkosten = Arbeitszeit (Stunden) x Stundensatz (EUR/h)
- Der Stundensatz wird in dieser Reihenfolge ermittelt (3-Tier-Fallback):
- Vom Manager bei Genehmigung manuell festgelegt
- Aus der Budget-Position (wenn die Einheit "Stunde" ist, wird der Einheitspreis als Stundensatz verwendet)
- Aus dem Standard-Stundensatz des Mitarbeiters (Benutzer-Profil:
defaultHourlyRate)
- Bei einem bereits zuvor genehmigten Eintrag, der durch den Korrektur-Workflow zurueckkam, bleibt der urspruengliche Stundensatz erhalten
- Der Stundensatz wird in dieser Reihenfolge ermittelt (3-Tier-Fallback):
- Materialkosten = Menge x Stueckpreis (fuer jede Materialposition einzeln)
- Maschinenkosten = Betriebsstunden x Stundensatz der Maschine (aus dem Maschinenpark-Katalog)
Diese Kosten werden als einzelne Datensaetze in die Tabelle projectExpenses geschrieben (Typ: labor, material). Gleichzeitig wird das Aggregat-Feld actualCost auf der zugehoerigen Budget-Aufgabe (projectBudgetTasks) aktualisiert. Das Herzstueck (Soll-Ist-Vergleich) zeigt die neuen IST-Kosten sofort an.
Wichtig: projectExpenses (Einzelposten) und actualCost (Aggregat) sind Spiegel desselben Kostenflusses -- sie duerfen niemals addiert werden.
Parallel zur Kostenbuchung wird ein PDF-Arbeitszeitnachweis gemaess ss16 ArbZG generiert. Das System prueft dabei automatisch:
- ss3 ArbZG: Hoechstarbeitszeit (max. 10 Stunden/Tag, max. 48h Wochendurchschnitt ueber 24-Wochen-Referenzzeitraum)
- ss4 ArbZG: Mindestpausenzeiten
- ss5 ArbZG: Mindestruhezeit (11 Stunden zwischen Schichten)
- ss9 ArbZG: Feiertage
Bei Verstoessen wird die Genehmigung blockiert mit einer detaillierten Fehlermeldung inkl. Gesetzesreferenz. Das PDF wird 2 Jahre archiviert und dann DSGVO-konform geloescht.
Schritt 4 -- Budget-Aggregation im Herzstueck
Nachdem die Kosten in projectExpenses geschrieben wurden, laeuft die Budget-Synchronisation (syncBudgetFromDiaryEntry). Diese Funktion:
- Liest alle Expenses, die zu einer Budget-Aufgabe gehoeren
- Summiert Personal-, Material- und Maschinenkosten
- Schreibt das Ergebnis als
actualCostauf die Budget-Aufgabe - Die Aggregation kaskadiert: Aufgabe -> Gewerk -> Budget-Struktur -> Projekt-Gesamtkosten
Das Herzstueck zeigt dann den Soll-Ist-Vergleich: Geplante Kosten (aus dem Budget-Import) vs. tatsaechliche Kosten (aus genehmigten Bautagebucheintraegen und Zeiteintraegen).
Verbindung zum Dashboard
Offene Genehmigungen (Status "Ausstehend") werden als Badge-Zahl in der Sidebar angezeigt. Diese Zahl wird ueber die API /api/manager/approvals geladen und zeigt die Gesamtanzahl aller ungepruefen Eintraege an. Im Dashboard-Widget "Offene Genehmigungen" erscheint eine zusammenfassende Uebersicht.
Verbindung zur Einsatzplanung
Wenn ein Einsatz in der Einsatzplanung veroeffentlicht und der Worker seine Arbeit in der Worker-App dokumentiert, wird der Bautagebucheintrag mit dem taskAssignmentId des Einsatzes verknuepft. Nach der Genehmigung des Bautagebucheintrags wird der Einsatz-Status automatisch auf "abgeschlossen" gesetzt.
Verbindung zu Rechnungen
Genehmigte Kosten im Herzstueck bilden die Basis fuer Ausgangsrechnungen. Der Leistungsstand (IST-Kosten vs. SOLL-Kosten) bestimmt, welche Betraege abrechenbar sind. Die projectExpenses werden fuer die Rechnungserstellung herangezogen.
Korrektur-Workflow und Kosten
Wenn ein bereits genehmigter Eintrag zur Korrektur zurueckgeschickt wird:
- Der alte Eintrag bleibt erhalten (Immutabilitaet), aber sein Status wechselt
- Die bereits gebuchten Kosten (
projectExpenses) werden bei der erneuten Genehmigung automatisch geloescht und neu berechnet (nicht doppelt gebucht) - Die Funktion
deleteDiaryLinkedExpensesentfernt alle Expenses, die mit dem Eintrag verknuepft sind - Nach der erneuten Genehmigung werden die Kosten komplett neu berechnet basierend auf den korrigierten Werten
- Die Budget-Aggregation (
syncBudgetTask) wird fuer alle betroffenen Budget-Aufgaben ausgefuehrt
Bei Preisaenderungen (Stundensatz oder Materialpreise) an einem bereits genehmigten Eintrag werden die alten Expenses ebenfalls geloescht und mit den neuen Preisen neu erstellt -- ohne den gesamten Genehmigungsprozess erneut zu durchlaufen.
Nachtraege im Bautagebuch
Ein Nachtrag (Amendment) ist ein Bautagebucheintrag, der sich auf einen bestehenden Elterneintrag bezieht (parentEntryId). Nachtraege sind textliche Ergaenzungen und erzeugen keine separaten Personalkosten, um Doppelbuchungen zu vermeiden. Die Arbeitszeit des Originaleintrags bleibt massgeblich.
Davon zu unterscheiden sind Nachtrag-Budget-Positionen: Wenn bei der Genehmigung eine neue Nachtrag-Position im Budget erstellt wird (Positionsnummer "NT-001" etc.), fliessen die Kosten des Eintrags in diese separate Nachtrag-Budget-Struktur -- nicht in den Hauptauftrag. Das Herzstueck zeigt Nachtrags-Kosten separat an.
Maschinenpark-Verbindung
Wenn ein Worker im Dokumentation-Wizard eine Maschine per QR-Code scannt, werden die Maschinendaten aus dem Maschinenpark-Katalog gezogen (Name, Typ, Status, Stundensatz). Der Worker gibt die Betriebsstunden manuell ein. Nach der Genehmigung werden die Maschinenkosten berechnet als:
Betriebsstunden x Stundensatz der Maschine (aus Katalog) = Maschinenkosten
Diese Kosten fliessen in die Budget-Aggregation ein (machineCost im syncBudgetTask). Nur Maschinen mit einer gültigen machineId (Katalog-Verknuepfung) und einem hourlyRate > 0 werden bei der Kostenberechnung beruecksichtigt.
Verwandte Themen
- Dokumentation-Wizard (Worker-App) -- So erstellen Mitarbeiter Eintraege
- Genehmigungszentrale -- Pruefung und Genehmigung im Detail
- Genehmigungszentrale: Y-Split -- Die zwei Ergebnis-Pfade nach Genehmigung
- Genehmigungszentrale: Nachtraege -- Nachtrag-Workflow
- Genehmigungszentrale: Signaturen -- Selbst- vs. Externe Signatur
- Herzstueck -- Soll-Ist-Vergleich -- Budget-Auswirkungen genehmigter Eintraege
- Maschinenpark -- Maschinenkatalog mit QR-Codes und Stundensaetzen
- Einsatzplanung -- Einsaetze planen und als Bautagebucheintraege dokumentieren
- Foto-Zeitstrahl -- Chronologische Foto-Dokumentation