fix(founding-wizard): default values fuer alle 8 Notar-Templates Platzhalter
CI / detect-changes (push) Successful in 9s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / validate-canonical-controls (push) Successful in 15s
CI / nodejs-build (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / loc-budget (push) Successful in 18s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go (push) Has been skipped
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 40s
CI / test-python-document-crawler (push) Has been skipped

This commit is contained in:
Benjamin Admin
2026-05-20 18:45:12 +02:00
parent 0477a2f2dc
commit f08eb71480
@@ -280,6 +280,103 @@ def base_context(state: dict[str, Any]) -> dict[str, Any]:
"POST_EXIT_BAD_MONTHS": 24,
"ROLES_DESCRIPTION": _roles_description(gesellschafter),
"SIGNATURE_DATE": notar.get("notarial_date", "[Datum]"),
# Gesellschafterliste
"LIST_DATE": notar.get("notarial_date", "[Datum]"),
"LIST_AUTHOR": gf_list[0].get("name", "") if gf_list else "",
"LIST_AUTHOR_ROLE": "Geschäftsführer",
"LIST_REASON": "Erstaufstellung gemäß § 40 GmbHG",
"SIGNATORY_NAME": gf_list[0].get("name", "") if gf_list else "",
"SIGNATORY_ROLE": "Geschäftsführer",
"SIGNATORY_2_NAME": gf_list[1].get("name", "") if len(gf_list) > 1 else "",
"SIGNATORY_2_ROLE": "Geschäftsführer",
"MULTI_SIGNATORY": len(gf_list) > 1,
# Bestellungsbeschluss
"MEETING_LOCATION": notar.get("notary_place", "[Notarsitz]"),
"RESOLUTION_FORM": "notariell beurkundet",
"ANWESENHEITSQUOTE_PCT": 100,
"IS_EINSTIMMIG": True,
"BESCHLUSS_MEHRHEIT_PCT": 100,
"IS_PRESENCE_MEETING": True,
"IS_SINGLE_APPOINTMENT": num_gf == 1,
"IS_MULTI_APPOINTMENT": num_gf > 1,
"IS_FIRST_APPOINTMENT": True,
"IS_PLURAL_GF": num_gf > 1,
"GF_NAME": gf_list[0].get("name", "") if gf_list else "",
"GF_BIRTHDATE": gf_list[0].get("geburtsdatum", "") if gf_list else "",
"GF_BIRTHDATE_PLACE": "[Geburtsort]",
"GF_ADDRESS": gf_list[0].get("adresse", "") if gf_list else "",
"GF_VERTRETUNG": "einzelvertretungsberechtigt" if num_gf == 1 else "gemeinsam mit einem weiteren Geschäftsführer vertretungsberechtigt",
"GF_PARA_181_RELEASE": True,
"GF_LISTE_MIT_VERTRETUNGSART": "\n".join(
f"- {g.get('name', '')}, geb. {g.get('geburtsdatum', '')}, wohnhaft in {g.get('adresse', '')}, "
f"vertretungsberechtigt {'allein' if num_gf == 1 else 'gemeinsam'}; § 181 BGB-Befreiung erteilt"
for g in gf_list
),
"HAS_RESSORT_ZUWEISUNG": True,
"HAS_DIENSTVERTRAG": True,
"SIGNATURES_GESELLSCHAFTER": "\n".join(
f"___________________________\n{g.get('name', '')}"
for g in gesellschafter
),
"HAS_VERSICHERUNG_BESTELLT": True,
"BELEHRUNG_DURCH": "den beurkundenden Notar",
"HAS_DELAYED_START": False,
# HRB-Anmeldung
"VERTRETUNGSREGELUNG": (
"Die Gesellschaft wird durch einen Geschäftsführer allein vertreten."
if num_gf == 1 else
"Die Gesellschaft wird durch zwei Geschäftsführer gemeinsam vertreten. "
"Bei nur einem bestellten Geschäftsführer Einzelvertretung."
),
"GF_SIGNATURES_BEGLAUBIGUNG": "\n".join(
f"___________________________\n{g.get('name', '')}, Geschäftsführer"
for g in gf_list
),
"HAS_EMPFANGSBERECHTIGTER": False,
"EMPFANGSBERECHTIGTER_NAME": "",
"EMPFANGSBERECHTIGTER_ADDRESS": "",
"HAS_GENEHMIGUNG": False,
"GENEHMIGUNG_DETAILS": "",
"NEXT_DOC_NUMBER": 6,
# GF-Dienstvertrag (Defaults für alle GFs, einzelne Felder per Contract überschreiben)
"COMPANY_REPRESENTATIVE": "die Gesellschafterversammlung",
"APPOINTMENT_DATE": notar.get("notarial_date", "[Datum]"),
"GF_INTERNAL_TITLE": gf_list[0].get("internal_role", "Geschäftsführer") if gf_list else "Geschäftsführer",
"CONTRACT_START_DATE": notar.get("notarial_date", "[Datum]"),
"HAS_PARA_181_RELEASE": True,
"PARA_181_RELEASE_DATE": notar.get("notarial_date", "[Datum]"),
"HAS_BONUS": False, "HAS_TANTIEME": False, "HAS_COMPANY_CAR": False, "HAS_BAV": False,
"HAS_HINTERBLIEBENEN_VERSORGUNG": False, "HAS_KOPPLUNG_BESTELLUNG_VERTRAG": False,
"HAS_NONCOMPETE_COMPENSATION": False,
"POST_CONTRACT_NONCOMPETE_MONTHS": 12,
"GROSS_ANNUAL_SALARY_EUR": "84.000",
"COMPANY_CAR_CLASS": "",
"BAV_EMPLOYER_PCT": 0,
"SV_STATUS": "sozialversicherungsfrei",
"VACATION_DAYS": 30,
"KRANKHEIT_FORTZAHLUNG_WOCHEN": 6,
"AU_BESCHEINIGUNG_TAG": 4,
"HINTERBLIEBENEN_VERSORGUNG_MONATE": 6,
"DO_INSURANCE_EUR": "5.000.000",
"KUENDIGUNGSFRIST_GESELLSCHAFT_MONATE": 6,
"KUENDIGUNGSFRIST_GF_MONATE": 3,
"ANNEX_LIST": "- Anlage 1: Bonusplan (sofern vereinbart)\n- Anlage 2: D&O-Versicherungspolice",
# IP-Assignment
"ASSIGNOR_NAME": gf_list[0].get("name", "") if gf_list else "",
"ASSIGNOR_BIRTHDATE": gf_list[0].get("geburtsdatum", "") if gf_list else "",
"ASSIGNOR_ADDRESS": gf_list[0].get("adresse", "") if gf_list else "",
"ASSIGNOR_ROLE": gf_list[0].get("internal_role", "Gründer und Geschäftsführer") if gf_list else "Gründer",
"AGREEMENT_DATE": notar.get("notarial_date", "[Datum]"),
"HAS_BAR_VERGUETUNG": False,
"HAS_SHARES_AS_COMPENSATION": True,
"HAS_NO_VERGUETUNG": False,
"IP_VERGUETUNG_EUR": 0,
"ZAHLUNGSFRIST_TAGE": 30,
"GUARANTEE_VERJAEHRUNG_JAHRE": 3,
"HAS_ACADEMIC_BACKGROUND": has_academic,
"SIGNATURE_LOCATION": basics.get("company_seat", "[Sitz]"),
"IP_LIST_DETAILS": "- Software-Architektur und Quellcode (bestehend zum Zeitpunkt der Gründung)\n- Konzepte, Designs, Datenbankstrukturen\n- Marken, Logos, Domainnamen",
"IP_EXCEPTIONS_DETAILS": "Keine Ausnahmen bekannt.",
}
# Ressort-Variablen aus GF-Liste ableiten (1 Ressort pro GF)
ressort_defaults = [