— GenioFlow · Master-Workflow

Master-Workflow Arbeitsvertrag: Anstellungs-Lebenszyklus für Hausmeister & Servicekräfte mit Probezeit-Guard und PDF-Render-Pipeline.

Verwaltungen, die eigene Hausmeister oder Reinigungskräfte beschäftigen, brauchen mehr als eine Mitarbeiter-Liste. Sie brauchen einen rechtssicheren Anstellungs-Workflow: Vertragsentwurf aus Vorlage, Probezeit-Tracking, Lohn- und Stundenanpassung, Abmahnung als Voraussetzung für Kündigung, gestaffelte Fristen nach § 622 BGB und im Streitfall die Kündigungsschutzklage. ImmoGenio modelliert das als Master-Workflow mit sechs verketteten Maschinen — vom ersten Vertragsentwurf bis zum letzten Arbeitstag.

2–3 Std/Vertragsanlage manuell mit Word-Vorlage, Lohnabrechnungs-Mail und Excel-Personalakte 20 Min/Vertragsanlage im Workflow — PDF aus Vorlage gerendert, Probezeit-Frist automatisch tracked
  • 5-State-Master-Workflow: vertragsanbahnung → laufendes_arbeitsverhaeltnis → gekuendigt → beendet, plus Abbruch-Pfad.
  • Sub-Workflow Vertragsabschluss mit Review-Schritt: Entwurf → unterschriftsreif → Freigabe → Unterzeichnung Arbeitgeber → Unterzeichnung Arbeitnehmer.
  • „Vertragsentwurf bearbeiten"-Schleife auch aus der Unterzeichnungsphase — für späte Änderungswünsche des Arbeitnehmers.
  • PDF-Render-Pipeline (Puppeteer + Vorlagenbibliothek): Vertragsdaten + Counterparty-Auflösung Arbeitnehmer/Arbeitgeber automatisch eingespielt, freie Parameter über Editor-Panel.
  • Probezeit-Sonderfall (§ 622 Abs. 3 BGB): 2-Wochen-Frist statt 4 Wochen — als Async-Guard serverseitig erzwungen, abhängig vom Eingangsdatum der Kündigung.
  • Kündigungs-Fristen § 622 Abs. 2 BGB: gestaffelt nach Betriebszugehörigkeit (1 bis 7 Monate) — Berechnung als Async-Guard, Frist-Verletzung blockiert Übergang.
  • Operative Sub-Workflows: Lohnanpassung, Stundenanpassung, Abmahnung — manuell startbar, non-blocking, voller Audit-Trail in der Personalakte.
  • Versionierte Multi-Dokumente-Pipeline mit zehn Kategorien (Entwurf, Signaturen, Abmahnung, Kündigung, Arbeitszeugnis, Lohnabrechnung, Stundenzettel) — jede Version revisionssicher mit Workflow-Anker.
  • Qualifizierte elektronische Signatur (QES) via Skribble parallel zum Papier-Pfad — Webhook schließt den Signatur-Schritt automatisch ab.
  • Monats-Stundenzettel aus Hausmeister-Erledigungen mit Brutto-Hochrechnung und versioniertem PDF-Export in die Personalakte.
  • SEPA-Credit-Transfer (pain.001) für Gehaltszahlungen — eine Zahlung pro Monat und Vertrag, Lifecycle Entwurf → XML erzeugt → Exportiert → Gebucht.
  • WEG-Anstellung: Bei Aktivierung pflicht-verlinkter Eigentümerbeschluss mit Status-Validierung; optional Lohnkosten-Position automatisch im Wirtschaftsplan (idempotenter Upsert).

So einfach funktioniert es

  1. 01

    Vertragsanbahnung mit Auto-Start

    Master startet in `vertragsanbahnung`. Sub `arbeitsvertragsabschluss` läuft automatisch — Vorlagenwahl, PDF-Render, Review-Schritt, Doppel-Signatur.

  2. 02

    Laufendes Arbeitsverhältnis mit operativen Subs

    Master in `laufendes_arbeitsverhaeltnis`. Lohn- und Stundenanpassung sowie Abmahnungen laufen als manuelle Sub-Workflows, voll auditiert.

  3. 03

    Beendigung mit Frist-Guard

    Kündigung triggert Sub `arbeitsvertrag_kuendigung`. Probezeit-Status, KSchG-Begründung und Frist-Staffelung serverseitig erzwungen, Kündigungsschutzklage als optionaler Pfad.

Der vollständige Zustandsraum

Fünf produktive Zustände bilden den Anstellungs-Lebenszyklus ab. Probezeit wird nicht als eigener State, sondern als Datenfeld am Vertrag geführt — sie ist eine Eigenschaft der Anstellung, kein Lebenszyklus-Schritt:

child_completed:arbeitsvertragsabschluss

child_cancelled:arbeitsvertragsabschluss

kuendigung_eingegangen

child_cancelled:arbeitsvertrag_kuendigung

child_completed:arbeitsvertrag_kuendigung

vertragsanbahnung

laufendes_arbeitsverhaeltnis

abgebrochen

gekuendigt

beendet

Die Vertragsdaten leben in einer dedizierten Entität arbeitsvertraege mit FK auf den Arbeitnehmer. Das erlaubt Anschlussverträge derselben Person sowie die Koexistenz mit terminierten Vorgänger-Workflows. Probezeit-Ende wird als generated column berechnet — Datenkonsistenz auf DB-Ebene erzwungen.

Sub-Workflow arbeitsvertragsabschluss mit Review-Schritt

Der wichtigste Sub-Workflow ist die Vertragserstellung. Sie läuft in fünf Zuständen und enthält eine Review-Schleife, die rückwärts erreichbar bleibt:

entwurf_erstellt (PDF gerendert)

entwurf_freigegeben

entwurf_bearbeiten

arbeitgeber_signiert

entwurf_bearbeiten

arbeitnehmer_signiert

vertragsentwurf

entwurf_unterschriftsreif

unterzeichnung_arbeitgeber

unterzeichnung_arbeitnehmer

arbeitsvertrag_abgeschlossen

Zwei Eigenheiten gegenüber einem üblichen Vertrags-Workflow:

  • Review-State zwischen Render und Signatur. Nach dem PDF-Render landet der Workflow in entwurf_unterschriftsreif — der Verwalter sichtet das Ergebnis, bevor die Signaturkette startet. Tippfehler oder falsche Stundenlöhne werden hier abgefangen, nicht erst im signierten Vertrag.
  • „Vertragsentwurf bearbeiten” auch aus der Unterzeichnungsphase. Wenn der Arbeitnehmer beim Lesen noch Änderungen wünscht, kann der Verwalter aus unterzeichnung_arbeitgeber zurück nach vertragsentwurf springen. Vorlagen, Parameter, Wochenstunden, Lohn — alles editierbar; das alte PDF wird beim nächsten Render überschrieben.

PDF-Render-Pipeline

Der Editor läuft als Fullscreen-Overlay über dem Workflow-Drawer mit Param-Panel links und WYSIWYG-Editor rechts. Beim Klick auf „Vertrag speichern” rendert der Server die finale PDF aus drei Datenquellen:

arbeitsvertraege-Datensatz

Merge-Pipeline

Arbeitnehmer-Stammdaten

Tenant = Arbeitgeber

Vorlagen-Parameter aus Editor

Handlebars-Render

Puppeteer PDF-Render

dateien-Tabelle + FK auf Vertrag

Die Counterparty-Auflösung läuft komplett automatisch: {{arbeitnehmer.name}}, {{arbeitnehmer.geburtsdatum}}, {{arbeitnehmer.adresse}}, {{arbeitgeber.name}}, {{arbeitgeber.adresse}} und ähnliche Handlebars-Variablen werden aus den Stammdaten + den Tenant-Briefkopf-Einstellungen befüllt. Vertragsdaten wie {{vertrag.beginn}}, {{vertrag.monatslohn_brutto}}, {{vertrag.stunden_woche}} kommen aus der Vertrags-Tabelle. Freie Parameter wie Urlaubstage oder Steuerklasse werden im Editor-Param-Panel gepflegt und überschreiben Defaults.

Beispiel: Hausmeister H., Midijob 1.200 € / Monat, 8 Std/Woche

Herr H. wird als Hausmeister für drei Liegenschaften eingestellt, Midijob im Übergangsbereich. So sieht der Lebenszyklus aus der Master-Perspektive aus:

Sub arbeitsvertrag_kuendigung (Jahr 4)Sub abmahnung (Jahr 3)Sub lohnanpassung (Jahr 2)Sub arbeitsvertragsabschlussMaster arbeitsvertragSub arbeitsvertrag_kuendigung (Jahr 4)Sub abmahnung (Jahr 3)Sub lohnanpassung (Jahr 2)Sub arbeitsvertragsabschlussMaster arbeitsvertrag2026-06 — Master startet in "vertragsanbahnung"2027-07 — Verwalter erhöht Stundenlohn2028-04 — Hausmeister-Verstoß, Abmahnung2029-09 — Kündigung durch Arbeitgeber, verhaltensbedingtchild_started:arbeitsvertragsabschluss1vertragsentwurf → entwurf_unterschriftsreif (Review)2entwurf_freigegeben → unterzeichnung_arbeitgeber3arbeitgeber_signiert → unterzeichnung_arbeitnehmer4child_completed:arbeitsvertragsabschluss5Transition zu "laufendes_arbeitsverhaeltnis"6child_started:lohnanpassung7child_completed:lohnanpassung (wirksam)8child_started:abmahnung9child_completed:abmahnung (zugestellt)10child_started:arbeitsvertrag_kuendigung11pruefen_und_bestaetigen (Async-Guard: Frist eingehalten)12bestaetigt → vollzogen13child_completed:arbeitsvertrag_kuendigung14Finale Transition zu "beendet"15

Drei Jahre Anstellung, vier Sub-Workflows, ein durchgängiger Audit-Trail. Die Personalakte ist im Workflow-Cockpit als Zeitachse sichtbar — inklusive Abmahnung als Voraussetzung für die spätere verhaltensbedingte Kündigung.

Probezeit-Frist als Async-Guard

Der wichtigste Frist-Mechanismus ist der Probezeit-Guard. Beim Auslösen einer Kündigung berechnet der Server vor dem Zustandsübergang zwei Werte:

  • probezeitAktiv — wahr, wenn das Eingangsdatum der Kündigung kleiner-gleich probezeit_ende_am ist. Dann gilt die 2-Wochen-Frist nach § 622 Abs. 3 BGB.
  • arbeitgeberFristEingehalten — bei Arbeitgeber-Kündigung außerhalb der Probezeit gestaffelt nach Betriebszugehörigkeit (< 2 Jahre → 1 Monat, 2–4 Jahre → 1 Monat, 5–7 Jahre → 2 Monate, 8–9 Jahre → 3 Monate, 10–11 Jahre → 4 Monate, 12–14 Jahre → 5 Monate, 15–19 Jahre → 6 Monate, ab 20 Jahre → 7 Monate, jeweils zum Monatsende).

Beide Werte werden vor dem actor.send-Call ins Event-Payload geschrieben. Verletzt das geplante Arbeitsende die Frist, wird der Zustandsübergang pruefen_und_bestaetigen blockiert und der Verwalter sieht einen Hinweis: „Die arbeitsrechtliche Kündigungsfrist (§ 622 BGB) ist noch nicht eingehalten. Bitte prüfen Sie das Arbeitsende-Datum, die Kündigungsart und die Betriebszugehörigkeit oder lehnen Sie die Kündigung ab.”

Technisch erzwungene Compliance

Der Arbeitsvertrags-Workflow erzwingt drei Compliance-Eigenschaften, die in der täglichen Personalverwaltung häufig schwierig sind: Frist-Sicherheit (kein verfrühter Vertragsende-Termin durch Fristfehler), Vorlagen-Treue (jedes Vertragsdokument entsteht aus der zentralen Vorlagenbibliothek mit revisionssicherem Render-Stand) und Abmahnungs-Voraussetzungen (vor einer verhaltensbedingten Kündigung sind dokumentierte Abmahnungen im selben Workflow sichtbar — keine isolierten Excel-Listen).

Migration M261 legt die Workflow-Definitionen für alle sechs Maschinen an, M263 die Sub-Workflow-Bindings (Vertragsabschluss, Lohnanpassung, Stundenanpassung, Abmahnung, Kündigung), M264 die PDF-Datei-Referenz am Vertrag und M265 den Review-State entwurf_unterschriftsreif. Die operative Personalakte ergänzt sich aus dem aufgabe_status-Workflow für tagesaktuelle Tätigkeiten — die Trennung zwischen Anstellungs- und Aufgaben-Workflow bleibt sauber.

Phase 2 — Dokumente, Signatur, Stundenzettel, Gehalt, WEG

Auf der Master-Maschine aus Phase 1 setzen fünf produktive Erweiterungen auf, die ohne Eingriff in die XState-Maschinen umgesetzt wurden — alle bestehenden Tests bleiben grün, das Verhalten der Maschinen unverändert.

Versionierte Multi-Dokumente-Pipeline

Die ursprüngliche Skalar-Spalte am Vertrag wird durch eine eigene Tabelle ersetzt, in der pro Vertrag beliebig viele Dokumente versioniert abgelegt werden. Jedes Dokument hat eine Kategorie (Entwurf, Signatur Arbeitgeber, Signatur Arbeitnehmer, unterzeichneter Vertrag, Abmahnung, Kündigung, Arbeitszeugnis, Lohnabrechnung, Stundenzettel, sonstiges), eine eigene version_nr-Sequenz pro Kategorie und einen Workflow-Anker. Im Workflow-Drawer ist die Entwurfs-Historie als Liste mit Download-Links sichtbar — jede Re-Edit-Schleife produziert eine neue Version, das alte PDF bleibt erhalten. Ein Skribble-Envelope-Bezug ist bereits im Schema verankert, sodass spätere Signaturen direkt einer Dokumenten-Version zugeordnet werden können.

archive

archive

archive

Entwurf v1

Re-Edit

Entwurf v2

Freigabe

Signatur Arbeitgeber v1

Signatur Arbeitnehmer v1

Unterzeichneter Vertrag

Abmahnung v1, v2 …

Stundenzettel je Monat

Lohnabrechnung je Monat

Qualifizierte elektronische Signatur via Skribble

Beide Signatur-States akzeptieren parallel zum Papier-Pfad eine elektronische Signatur. Klick auf „Per Skribble unterschreiben lassen” lädt das aktuelle Vertrags-PDF, erstellt einen Skribble-Envelope mit AES-Signaturstufe und versendet ihn an die hinterlegte E-Mail (Arbeitgeber-E-Mail aus den Mandanten-Einstellungen, Arbeitnehmer-E-Mail aus den Stammdaten). Der Webhook-Empfänger schließt den Workflow-Schritt automatisch ab, sobald Skribble den Status completed meldet. Voraussetzung für den Produktiv-Betrieb sind die Skribble-API-Zugangsdaten in den Mandanten-Secrets.

Monats-Stundenzettel aus Hausmeister-Erledigungen

Hausmeister-Erledigungen können seit Phase 2 mit dauer_minuten und einer Verknüpfung zum Arbeitnehmer erfasst werden. Eine Datenbank-View aggregiert pro Monat die Summe der Minuten und die Anzahl der Einsätze. Im Workflow-Drawer pro Vertrag erscheint ein Stundenzettel-Tab mit Monatswähler, Erledigungs-Liste und Brutto-Hochrechnung (Stunden × Stundenlohn, ohne SV/LSt). Der „Stundenzettel als PDF”-Button rendert einen DIN-5008-Brief mit Tabelle der Einsätze und legt ihn versioniert in der Dokumenten-Pipeline ab. Die Trennung zur echten Gehaltsabrechnung nach § 108 GewO ist bewusst — diese ist Compliance-Projekt für eine Folge-Phase.

SEPA-Credit-Transfer für Gehaltszahlungen

Im Gehaltszahlungs-Tab pro Vertrag legt der Verwalter eine Zahlung für einen konkreten Monat an (Betrag, Verwendungszweck, Auftraggeber-Bankkonto). Eine Eindeutigkeits-Regel auf Datenbank-Ebene verhindert doppelte Zahlungen pro Monat. Der Empfänger-Datensatz (Name, IBAN, BIC) wird als Snapshot kopiert — eine spätere Stammdaten-Änderung beim Arbeitnehmer ändert eine bereits angelegte Zahlung nicht.

pain.001 erzeugen

Verwalter lädt im Banking hoch

Verwalter quittiert Buchung

Entwurf

XML

Exportiert

Gebucht

Storniert

Bewusst nicht implementiert ist die direkte Bank-API-Anbindung (Payment Initiation Service). Der Verwalter lädt die XML-Datei im Online-Banking seiner Bank selbst hoch und behält die Kontrolle über die Auslösung — analog zur SEPA-Lastschrift-Pipeline für Mietzahlungen. Eine künftige Erweiterung um Sammelläufe ist im XML-Builder bereits angelegt.

WEG-Anstellung mit Eigentümerbeschluss

Bei einer Anstellung im Rahmen einer WEG-Verwaltung gibt es im Wizard eine Checkbox „WEG-Anstellung — benötigt Eigentümerbeschluss”. Ist sie aktiv, wird ein Selektor mit allen angenommenen Beschlüssen des Mandanten eingeblendet — der Verwalter wählt den Beschluss aus, der die Anstellung autorisiert. Das Backend prüft den Status (angenommen / in_umsetzung / umgesetzt) und lehnt die Anlage ab, falls der Beschluss noch nicht durch ist. Eine Pre-Step-Mechanik im Workflow selbst wurde bewusst nicht eingebaut — der Beschluss läuft in seinem eigenen ETV-Lebenszyklus, der Vertrag referenziert nur. Lohnkosten können danach mit einem Klick als Position in einen konkreten Wirtschaftsplan eingespielt werden — Jahres-Brutto-Hochrechnung aus Stundenlohn × Wochenstunden × 52 oder Monatslohn × 12, Umlageschlüssel MEA als Default, idempotenter Upsert über die Verlinkung wirtschaftsplan_positionen.source_arbeitsvertrag_id.

Die fünf Phase-2-Erweiterungen sind durchgängig produktiv (Migrationen 266–270), die XState-Maschinen unverändert. Skribble erfordert API-Zugangsdaten in den Mandanten-Secrets; die SEPA-Pipeline erfordert einen gepflegten Creditor-Identifier in den Mandanten-Einstellungen.

Häufige Fragen

Warum ein eigener Master-Workflow für Arbeitsverträge — und nicht der allgemeine Hausmeister-Workflow?

Der Hausmeister-Workflow (`aufgabe_status`) verwaltet einzelne Aufgaben (Winterdienst, Reparatur, Reinigung) und ist Mobile-First auf Tablet ausgelegt. Der Arbeitsvertrags-Workflow dagegen ist der rechtliche Rahmen darum: Anstellung, Vertragsdokument, Lohnentwicklung, Abmahnung, Kündigung. Trennung nach Lebensdauer: ein Anstellungsverhältnis läuft Jahre, eine einzelne Aufgabe Stunden bis Tage. Trennung nach Rechtsgrundlage: § 622 BGB und KSchG für die Anstellung, BGB-Werkvertrag oder Dienstvertrag für die einzelne Aufgabe. Die beiden Workflows referenzieren sich — Hausmeister-Aufgaben werden im Portal pro Arbeitnehmer aggregiert, fließen aber nicht als Sub-Workflow in den Vertrag.

Wie wird die Probezeit-Frist (2 Wochen statt 4 Wochen) technisch erzwungen?

Die Probezeit ist als Datenfeld am Vertrag gespeichert (`probezeit_monate`, daraus berechnet `probezeit_ende_am` als generated column). Bei einer Kündigungs-Aktion ruft die Engine vor dem Zustandsübergang einen Async-Guard auf: er liest das Eingangsdatum der Kündigung und vergleicht es mit `probezeit_ende_am`. Wenn das Eingangsdatum innerhalb der Probezeit liegt, gilt die 2-Wochen-Frist nach § 622 Abs. 3 BGB, sonst die gestaffelte Frist nach § 622 Abs. 2 BGB (1 Monat bis zu 7 Monaten Frist je nach Betriebszugehörigkeit). Verletzt das geplante Arbeitsende die Frist, wird der Übergang blockiert — kein Fristfehler durch Verwalter-Versehen.

Was unterscheidet den Review-State „Entwurf unterschriftsreif" vom direkten Übergang in die Unterzeichnung?

Nach dem ersten PDF-Render wechselt der Sub-Workflow nicht direkt in „Unterzeichnung Arbeitgeber", sondern in einen Zwischenstate „Entwurf unterschriftsreif". Dort sichtet der Verwalter das gerenderte PDF und entscheidet: freigeben (→ Unterzeichnung startet) oder nochmal überarbeiten (→ zurück zum Vertragsentwurf). Hintergrund: Die Vertragsdaten kommen aus der Datenbank, die Vorlagen-Parameter aus dem Editor — ein falscher Stundenlohn oder ein Tippfehler im Brieftext darf nicht erst beim signierten Vertrag auffallen. Der Review-State ist auch aus „Unterzeichnung Arbeitgeber" rückwärts erreichbar, falls der Arbeitnehmer noch Änderungen wünscht.

Wie funktioniert die PDF-Render-Pipeline mit den Vertragsdaten?

Im Editor-Overlay rendert der Server das HTML aus drei Quellen: (1) Counterparty-Loader liest Arbeitnehmer-Stammdaten und Arbeitgeber-Daten aus dem Tenant — für die Handlebars-Variablen `{{arbeitnehmer.*}}` und `{{arbeitgeber.*}}`. (2) Vertragsdaten aus der `arbeitsvertraege`-Tabelle (Beginn, Wochenstunden, Lohn, Funktion, Probezeit) werden als `vertrag.*`-Parameter eingespielt. (3) Freie Parameter aus dem Param-Panel (Urlaubstage, Steuerklasse, Zusatzklauseln) überschreiben Defaults. Beim Klick „Vertrag speichern" rendert Puppeteer die finale PDF und legt sie in der Vertragsakte ab — als referenzierte Datei mit FK auf den Vertrag.

Was passiert bei „Vertragsentwurf bearbeiten" während der Unterzeichnungsphase?

Wenn der Arbeitnehmer beim Lesen des unterschriftsfertigen Vertrags noch Änderungen wünscht, kann der Verwalter im State „Unterzeichnung Arbeitgeber" die Aktion „Vertragsentwurf bearbeiten" auslösen. Der Workflow springt zurück nach „Vertragsentwurf", der Verwalter passt Vorlage oder Parameter an und rendert einen neuen Entwurf. Das alte PDF wird in der Datei-Spalte überschrieben — keine Versionierung im MVP. Vorteil: der Audit-Trail dokumentiert jede Re-Edit-Schleife, ohne dass parallele Entwurfs-Stände entstehen.

Welche operativen Sub-Workflows laufen während des laufenden Arbeitsverhältnisses?

Drei manuell startbare Sub-Workflows: `lohnanpassung` (Entwurf → Versand → Zustimmung → Wirksam zum Gültig-ab-Datum), `stundenanpassung` (gleicher Lifecycle für Wochenstunden — z. B. Minijob → Midijob-Wechsel) und `abmahnung` (Erstellung → Zustellung → Dokumentation in der Personalakte). Alle drei sind non-blocking — der Master bleibt im laufenden Arbeitsverhältnis. Mehrere Abmahnungen sind nacheinander möglich (Voraussetzung für eine spätere verhaltensbedingte Kündigung), zwei parallele Lohnanpassungen werden vom Konflikt-Guard verhindert.

Wie wird die qualifizierte elektronische Signatur (QES) mit Skribble in den Workflow integriert?

Jeder der beiden Signatur-States („Unterzeichnung Arbeitgeber" und „Unterzeichnung Arbeitnehmer") akzeptiert zwei Pfade. Manuell: der Verwalter dokumentiert das Eintreffen der unterschriebenen Papier-Version mit einem Klick. Skribble: der Verwalter löst eine Envelope-Erstellung aus — das aktuelle PDF wird automatisch geladen, ein Skribble-Envelope mit AES-Signaturstufe erstellt, der Empfänger erhält eine E-Mail mit Signatur-Link. Der Skribble-Webhook schließt den Workflow-Step bei `envelope.completed` automatisch ab. Beide Pfade nutzen die gleichen XState-Events (`arbeitgeber_signiert`, `arbeitnehmer_signiert`) — der Unterschied liegt im optionalen Payload-Feld `skribbleEnvelopeId`, das den Envelope für Audit-Zwecke verlinkt.

Was leistet die Multi-Dokumente-Pipeline rund um Arbeitsverträge?

Statt einer einzelnen Datei-Spalte am Vertrag (die jedes Re-Rendering überschreiben würde) gibt es eine versionierte Tabelle `arbeitsvertrag_dokumente` mit zehn Kategorien: Entwurf, Signatur Arbeitgeber, Signatur Arbeitnehmer, unterzeichneter Vertrag, Abmahnung, Kündigung, Arbeitszeugnis, Lohnabrechnung, Stundenzettel und „sonstiges". Jede Kategorie hat eine eigene `version_nr`-Sequenz pro Vertrag — alle bisherigen Entwurfs-Renderings, jede Abmahnung, jeder Stundenzettel bleiben revisionssicher erhalten. Der Skribble-Envelope-Bezug ist bereits im Schema verankert, sodass spätere Signaturen direkt zugeordnet werden können. Im Workflow-Drawer wird die Historie als ausklappbare Liste mit Download-Links und „aktuell"-Badge angezeigt.

Wie funktioniert der Monats-Stundenzettel?

Hausmeister-Erledigungen können seit Phase 2 mit `dauer_minuten` und einer Verknüpfung zum Arbeitnehmer erfasst werden. Eine Datenbank-View aggregiert pro Monat die Summe der Minuten und die Anzahl der Einsätze. Der Stundenzettel-Tab im Arbeitsvertrags-Drawer zeigt einen Monatswähler, die Erledigungs-Liste und eine Brutto-Hochrechnung (Stunden × Stundenlohn). Mit einem Klick wird ein DIN-5008-Brief mit Tabelle der Einsätze als PDF gerendert und versioniert in der Dokumenten-Pipeline abgelegt. Wichtig: diese Hochrechnung enthält bewusst keinen Sozialversicherungs- oder Lohnsteuer-Abzug — sie ersetzt keine Gehaltsabrechnung nach § 108 GewO, sondern dient als Übersicht für den Arbeitnehmer und als Grundlage für die SEPA-Überweisung.

Wie werden Gehaltszahlungen aus dem Workflow ausgelöst?

Im Gehaltszahlungs-Tab pro Arbeitsvertrag legt der Verwalter eine Zahlung für einen Monat an (Betrag, Verwendungszweck, Auftraggeber-Bankkonto). Mit einem Klick wird eine SEPA-pain.001-XML-Datei erzeugt (Credit Transfer / Überweisung), die der Verwalter im Online-Banking seiner Bank hochlädt. Der Lifecycle der Zahlung läuft `Entwurf → XML erzeugt → Exportiert → Gebucht` oder `Storniert`. Eine Eindeutigkeits-Regel auf Datenbank-Ebene verhindert doppelte Zahlungen pro Vertrag und Monat. Empfänger-Daten (IBAN, BIC, Name) werden beim Anlegen als Snapshot kopiert — eine spätere Stammdaten-Änderung beim Arbeitnehmer ändert eine bereits angelegte Zahlung nicht. Eine direkte Anbindung an die Bank-API (PIS) ist bewusst nicht implementiert; der Verwalter behält die Kontrolle über die Auslösung.

Was passiert, wenn die Anstellung im Rahmen einer WEG erfolgt?

Im Anstellungs-Wizard gibt es eine Checkbox „WEG-Anstellung — benötigt Eigentümerbeschluss". Ist sie aktiv, erscheint ein Pflicht-Selektor mit allen angenommenen Beschlüssen des Mandanten — der Verwalter wählt den Beschluss aus, der die Anstellung autorisiert. Das Backend prüft den Status des Beschlusses (`angenommen`, `in_umsetzung` oder `umgesetzt`) und lehnt die Anlage ab, falls der Beschluss noch nicht durch ist. Eine Pre-Step-Mechanik im Workflow selbst (die den Beschluss automatisch startet) wurde bewusst nicht eingebaut — der Beschluss läuft in seinem eigenen ETV-Lebenszyklus, der Vertrag referenziert nur. Lohnkosten können danach mit einem Klick als Position in einen konkreten Wirtschaftsplan eingespielt werden (Jahres-Brutto-Hochrechnung, Umlageschlüssel MEA als Default).

Bereit, Ihre Verwaltung zu digitalisieren?

45 Tage volle Professional-Suite testen — Tarif-Wahl erst nach dem Test, ohne Bankdaten.