Datenmodell und Platzhalter der Vertragsvorlagen
Die Vorlagentabelle, Dokumentarten und Unterzeichnungsmodi, die eingebauten Vorlagen, Platzhalter nach Gruppen, Füllregeln und die Paarung des zweisprachigen PDF.
Eine Vorlage ist gemeinsame Stammdatei der Installation (contract/contracttemplate, kein Inhaltsbereich); das gefüllte Dokument entsteht unter dem Inhaltsrecht des Vertrags.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation. contract_template: code (eingebaute Kennung; leer = eigene), doc_kind, sub_type, name, signing, is_default, sort_order, status; contract_template_description: title, body je Sprache.
doc_kind: contract, amendment, termination, certificate, expiry, registration, annex, reg_rejection, offer. signing: bilateral (jede Partei), unilateral (nur die erklärende Partei: Kündigung → die kündigende, bei Einvernehmen beide; Nachweis → der Auftraggeber; Ablehnung → der Auftraggeber; Angebot → der Anbieter; sonst → die Client-Partei), none. Ein unbekannter Wert fällt auf den Standard der Art zurück.
Eingebaute Vorlagen
Alle mit ungarischem, englischem und deutschem Text: brokerage_contract_hu_v1, site_supervision_contract_hu_v1 (Untertyp site_supervision), brokerage_amendment_hu_v1, brokerage_termination_hu_v1, brokerage_certificate_hu_v1 und _v2 (v2 ist Standard), contract_expiry_hu_v1, brokerage_registration_v1, brokerage_registration_rejection_v1, brokerage_offer_v1, contract_annex_generic_v1, contract_annex_dataroom_policy_v1. Übersetzungen behalten Absatzstruktur und Platzhaltersatz des ungarischen Texts. Migrationen fügen nur fehlende Sprachzeilen ein und ändern keinen manuell bearbeiteten Text. In den eingebauten Vertragsvorlagen steht {esign_clause} vor {signature_block}. Die Vorlagen enthalten keine Personen- oder Firmendaten. Die Bauaufsichtsvorlage verweist auf im Code festgelegte Rechtsnormen (Regierungsverordnung 191/2009 § 16, ungar. UStG § 58, StGB §§ 290–291, ZGB 6:272–6:280).
Platzhalter
| Gruppe | Platzhalter |
|---|---|
| Vertrag | {contract_no}, {contract_title}, {contract_date_signed}, {date_from}, {date_to}, {term_months}, {tail_months}, {payment_days}, {place}, {date_signed} (Datum des Dokuments), {commission_sale}, {commission_share_sale}, {commission_rent_months}, {commission_rent_short}, {property_list} (HTML), {contract_description}, {fee_table} (HTML), {notice_days}, {principal_bank_account}, {agent_bank_account}, {annex_list} (HTML), {immediate_termination_reasons} (HTML), {esign_clause}, {principal_contact}, {agent_contact}, {property_owner}, {mandate_clause} |
| Parteien und Unterschrift | {parties_block} (HTML), {party_roles_line}, {signature_block} (HTML) |
| Auftraggeber, Beauftragter | {principal_name}, {principal_address}, {principal_taxhu}, {principal_regno}, {principal_rep}, {principal_rep_phone}, {principal_rep_email}; ebenso {agent_name} usw. |
| Änderung | {amendment_no}, {amendment_date}, {amendment_effective}, {amendment_text} (HTML), {new_date_to} |
| Kündigung | {termination_title}, {termination_statement}, {termination_date}, {termination_effective}, {termination_reason_block} (HTML), {termination_note} (HTML), {terminating_name}, {addressee_name}, {addressee_address}, {termination_reasons}, {termination_clause_refs} |
| Leistungsnachweis | {certificate_no}, {certificate_date}, {property_name}, {property_address}, {deal_type}, {counterparty_name}, {base_amount}, {commission_basis}, {commission_amount}, {vat_rate_text}, {vat_amount}, {gross_amount}, {vat_basis_text}, {certified_total}, {certificate_note} (HTML), {deal_total_amount}, {payment_list} (HTML), {deal_contract_ref}, {deal_contract_no}, {deal_contract_date_signed} |
| Kundenregistrierung | {registration_no}, {registration_date}, {reg_agent_name}, {reg_agent_taxhu}, {client_name}, {client_address}, {client_taxhu}, {client_regno}, {client_contact}, {client_phone_email}, {property_text} (HTML), {deal_title_marks}, {date_first_contact}, {date_offer_sent}, {date_presentation}, {date_negotiation}, {activity_text} (HTML), {offered_price}, {payment_schedule}, {financing_marks}, {coverage_text}, {att_intent_mark}, {att_presentation_mark}, {att_offer_mark}, {att_financing_mark}, {decision_accept_mark}, {decision_reject_mark}, {decision_date}, {decision_note} |
| Ablehnung | {rejection_rows} (HTML), {rejection_reason}, {rejection_note}, {rejection_date} |
| Angebot | {offer_no}, {offer_date}, {offer_property}, {offer_type_text}, {offer_terms} (HTML), {offer_amount}, {offer_monthly_rent}, {offer_term_months}, {offer_valid_until}, {offer_decision} |
| Anlage, Ablaufhinweis | {annex_no}, {annex_title}, {annex_date}; {expiry_date}, {expiry_clause}, {recipient_name}, {client_name} |
Beim Füllen werden Textwerte HTML-maskiert eingesetzt; HTML-tragende Platzhalter erzeugt der Aufrufer. Ein unbekannter Platzhalter bleibt im ausgegebenen Dokument leer, erscheint in der Vorschau gelb mit Namen und wird in der Antwort aufgeführt.
Zweisprachiges PDF
- Für jedes Dokument ist ungarischer Text Pflicht; bei nicht ungarischer Sprache hat das PDF zwei Spalten (links Ungarisch, rechts die Fremdsprache). Die ungarische Spalte entsteht aus der ungarischen Fassung derselben Vorlage mit ungarischen Platzhalterdaten; ohne ungarische Vorlage Fehler.
- Paarung nach den obersten HTML-Blöcken (
p,h1–h6,ul,ol,table,div,blockquote,pre,hr,dl): bei gleicher Blockzahl absatzweise (paired), sonst eine Zeile mit beiden Volltexten (columns). In zwei Spalten entfallen Seitenumbrüche, die Schrift ist 8,5 pt (sonst 9,5 pt).
Endpunkte und Rechte
contract/contracttemplate: Index, list, form, save, enable, disable, statusdelete, delete sowie bilingual (zweisprachige Vorschau, Recht list). Schlüssel: list, add, edit, statusdelete, delete, debug. Vorschau aus dem Vertrag: contract/contract.templatepreview (generate + Bereich); Laden der Texte ins Formular: contract/contract.templatetexts.