👥 Collegare più record di dati con un unico modulo

A volte un singolo campo per l'acquirente/proprietario non è sufficiente: gli incarichi notarili richiedono più acquirenti, le comunioni ereditarie hanno più proprietari e presso il notaio si aggiunge anche un'amministrazione. propform offre a tal fine un modello composto da due moduli più macro ricorsive per gli indirizzi.


Contenuto


Concetto: Panoramica + Modifica

Si creano due moduli che interagiscono tra loro:

Modulo Scopo
Modulo panoramica Mostra gli acquirenti/proprietari/notai attualmente associati a un immobile, con i pulsanti "Modifica" e "Collega altri"
Modulo di modifica Un modulo per ogni tipo di persona con i campi dell'indirizzo; salva l'indirizzo e lo collega automaticamente all'immobile

Flusso di lavoro per l'utente:

  1. Si apre il modulo di panoramica (con ?estate[Id]=...)
  2. I collegamenti attuali vengono elencati tramite le macro di ciclo
  3. Clic su «Collega (altri) acquirenti» → apre il modulo di modifica senza ID indirizzo → viene creato e collegato un nuovo indirizzo
  4. Clic su "Modifica indirizzo" → apre il modulo di modifica con l'ID indirizzo → l'indirizzo esistente viene modificato
  5. Il modulo di modifica ha il modulo di panoramica come pagina di ringraziamento → l'utente torna automaticamente alla panoramica aggiornata

---

Passaggio 1: Creare il modulo di modifica

Questo è il più semplice dei due moduli. Contiene:

  • Campi dell'indirizzo (titolo, nome, cognome, via, CAP, città, telefono, e-mail …)
  • Impostazione del modulo: "Collega immobile e indirizzo" come acquirente, proprietario o tramite un tipo di contatto (ad es. notaio, amministrazione)
  • Pagina di ringraziamento = URL del modulo di panoramica (ad es. https://formular.deine-domain.de/notarbeauftragung-uebersicht?estate[Id]=_Uuidestate)

> 💡 Suggerimento: hai bisogno di un modulo di modifica specifico per ogni tipo di persona (quindi uno per l'acquirente, uno per il proprietario, uno per il notaio e uno per l'amministrazione), poiché ognuno ha una logica di collegamento diversa.

> 💡 Semplificazione: se i moduli di modifica hanno tutti lo stesso layout, puoi crearli tramite la funzione "Copia modulo" e modificare solo le impostazioni di collegamento.

---

Passaggio 2: Creare il modulo di panoramica

Il modulo di panoramica è costituito da un unico campo di descrizione, in cui si trovano le macro di ciclo. I campi vengono compilati interamente tramite macro da onOffice.

Componenti importanti per ogni ciclo:

  1. _ifEmpty(_Name;"Kein X verbunden";"...") — se non è ancora collegato alcun record, visualizza un messaggio appropriato
  2. Inizio del ciclo _buyerbrek_1_ (Buyer-Begin-Recursion) o _ownerbrek_1_ (Owner-Begin-Recursion)
  3. Contenuto del ciclo — Pre-macro come _BuyerVorname, _BuyerName, _BuyerStrasse, più un link "Modifica indirizzo" con l'UUID
  4. Fine del ciclo _buyererek_1_ o _ownererek_1_
  5. Link "Collega altri" fuori dal ciclo (apre il modulo di modifica senza ID indirizzo)

---

Esempio di codice: ciclo dei proprietari

_ifEmpty(_EigentName;"Kein Eigentümer verbunden";"_ownerbrek_1_
_OwnerTitel _OwnerVorname _OwnerName _ifEmpty(_OwnerName2;"";", _OwnerTitel2 _OwnerVorname2 _OwnerName2")
_OwnerStrasse
_OwnerPLZ _OwnerOrt
_OwnerTelefon, _OwnerEmail
<a href='https://formular.deine-domain.de/eigentuemer-bearbeiten?address[ID]=_OwnerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_ownererek_1_")
<a href="https://formular.deine-domain.de/eigentuemer-bearbeiten?estate[Id]=_Uuidestate">(Weiteren) Eigentümer verbinden</a>

Cosa succede:

  • _EigentName (macro standard di onOffice) verifica se è collegato un proprietario
  • _ownerbrek_1_ ... _ownererek_1_ passa in rassegna tutti i proprietari collegati
  • Per ogni proprietario vengono visualizzati titolo/nome/cognome/indirizzo/contatto + un link "Modifica indirizzo" con _OwnerUuidaddress (UUID del proprietario attuale nel ciclo)
  • All'esterno del ciclo è presente un link "Collega (altro) proprietario" senza ID indirizzo → crea un nuovo indirizzo

---

Esempio di codice: ciclo acquirenti

Esattamente lo stesso schema dei proprietari, solo con buyer al posto di owner e le pre-macro _Buyer* al posto di _Owner*:

_ifEmpty(_KaeuferName;"Kein Käufer verbunden";"_buyerbrek_1_
_BuyerTitel _BuyerVorname _BuyerName _ifEmpty(_BuyerName2;"";", _BuyerTitel2 _BuyerVorname2 _BuyerName2")
_BuyerStrasse
_BuyerPLZ _BuyerOrt
_BuyerTelefon, _BuyerEmail
<a href='https://formular.deine-domain.de/kaeufer-bearbeiten?address[ID]=_BuyerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_buyererek_1_")
<a href="https://formular.deine-domain.de/kaeufer-bearbeiten?estate[Id]=_Uuidestate">(Weiteren) Käufer verbinden</a>

---

Esempio di codice: tipo di contatto specifico (notaio, amministrazione ecc.)

Se non vuoi scorrere tutti gli indirizzi collegati a un tipo di contatto, ma vuoi visualizzare direttamente un tipo di contatto specifico (ad es. "il notaio di questo immobile"), utilizza la macro _XAPKontaktart#NAME#:

_ifEmpty(_XAPKontaktart#Notar#Name;"Kein Notariat verbunden
<a href='https://formular.deine-domain.de/notar-verbinden?estate[Id]=_Uuidestate'>Jetzt Notar verbinden</a>";"
_XAPKontaktart#Notar#Firma1
_XAPKontaktart#Notar#Vorname _XAPKontaktart#Notar#Name
_XAPKontaktart#Notar#Strasse, _XAPKontaktart#Notar#PLZ _XAPKontaktart#Notar#Ort
_XAPKontaktart#Notar#Telefon
_XAPKontaktart#Notar#Email
<a href='https://formular.deine-domain.de/notar-bearbeiten?address[ID]=_XAPKontaktart#Notar#Uuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>")

Notar è in questo caso il nome dell'opzione del tipo di contatto in onOffice. Se utilizzi valori personalizzati per i tipi di contatto, devi utilizzare il valore chiave esatto, ad es.:

_XAPKontaktart#indMulti28075Select28075#Name

> 💡 Il valore chiave si trova in onOffice in Strumenti → Impostazioni → Amministrazione → Indirizzi → campo "Tipo di contatto" → presso la rispettiva opzione.


Esempio completo di incarico notarile

Un tipico modulo di panoramica dell'incarico notarile combina tutti i cicli + i tipi di contatto in un unico campo di descrizione:

**Eigentümer**

_ifEmpty(_EigentName;"Kein Eigentümer verbunden";"_ownerbrek_1_
_OwnerTitel _OwnerVorname _OwnerName _ifEmpty(_OwnerName2;"";", _OwnerTitel2 _OwnerVorname2 _OwnerName2")
_OwnerStrasse
_OwnerPLZ _OwnerOrt
_OwnerTelefon, _OwnerEmail
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_OwnerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_ownererek_1_")
<a href="https://formular.deine-domain.de/notarbeauftragung-eigentuemer-verbinden?estate[Id]=_Uuidestate">(Weiteren) Eigentümer verbinden</a>

---

**Käufer**

_ifEmpty(_KaeuferName;"Kein Käufer verbunden";"_buyerbrek_1_
_BuyerTitel _BuyerVorname _BuyerName _ifEmpty(_BuyerName2;"";", _BuyerTitel2 _BuyerVorname2 _BuyerName2")
_BuyerStrasse
_BuyerPLZ _BuyerOrt
_BuyerTelefon, _BuyerEmail
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_BuyerUuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>

_buyererek_1_")
<a href="https://formular.deine-domain.de/notarbeauftragung-kaeufer-verbinden?estate[Id]=_Uuidestate">(Weiteren) Käufer verbinden</a>

---

**Notariat**

_ifEmpty(_XAPKontaktart#Notar#Name;"Kein Notariat verbunden
<a href='https://formular.deine-domain.de/notarbeauftragung-notar-verbinden?estate[Id]=_Uuidestate'>Jetzt Notar verbinden</a>";"
_XAPKontaktart#Notar#Firma1
_XAPKontaktart#Notar#Vorname _XAPKontaktart#Notar#Name
_XAPKontaktart#Notar#Strasse, _XAPKontaktart#Notar#PLZ _XAPKontaktart#Notar#Ort
_XAPKontaktart#Notar#Telefon
_XAPKontaktart#Notar#Email
<a href='https://formular.deine-domain.de/notarbeauftragung-adresse-bearbeiten?address[ID]=_XAPKontaktart#Notar#Uuidaddress&estate[Id]=_Uuidestate'>Adresse bearbeiten</a>")

→ Dopo aver richiamato il modulo, l'utente vede una panoramica chiara di tutte le persone collegate + i rispettivi pulsanti per modificare o aggiungere altre persone.


Insidie comuni

L'azienda come proprietario/acquirente viene riconosciuta come "vuota"

_ifEmpty(_EigentName;...) controlla solo il cognome. Nei record aziendali, _EigentName è spesso vuoto e solo _EigentZusatz1 (nome dell'azienda) è compilato. Soluzione: integrare il controllo con l'aggiunta 1, ad es.:

_ifEmpty(_EigentName;_ifEmpty(_EigentZusatz1;"Kein Eigentümer verbunden";"...");"...")

Dati anagrafici 2 non attivati

I campi _OwnerName2, _OwnerStrasse2, _OwnerPLZ2 ecc. (secondo indirizzo all'interno di un record) non sono attivati di default in molte versioni di onOffice. Se il tuo ciclo vi accede e non visualizza nulla, controlla in onOffice in Strumenti → Impostazioni → Amministrazione → Indirizzi se i campi Dati anagrafici 2 sono attivati.

Il link non viene risolto

I link HTML nel campo Descrizione funzionano, ma le virgolette devono essere o singole ' OPPURE doppie " — non mescolate nello stesso elemento. L'_ifEmpty(...; ""; "...") annidato spesso ti costringe a scrivere gli attributi HTML con '.

Più cicli contemporaneamente

Puoi combinare senza problemi i cicli _buyerbrek_1_/_buyererek_1_ e _ownerbrek_1_/_ownererek_1_ nello stesso campo di descrizione. _1_ è un contatore interno: se hai bisogno di più cicli di acquirenti in un campo (cosa rara), aumenta il numero: _buyerbrek_2_, _buyererek_2_.

Il modulo di modifica crea l'indirizzo due volte

Se l'indirizzo viene duplicato invece che aggiornato al secondo invio: il parametro address[ID] non è stato ricevuto oppure il modulo non è configurato su "Precompila indirizzo". Controlla le impostazioni di precompilazione.


Vedi anche