A veces, un solo campo para el comprador o el propietario no es suficiente: las escrituras notariales requieren varios compradores, las comunidades hereditarias tienen varios propietarios y, en la notaría, hay que añadir además una administración. Para ello, propform dispone de un patrón compuesto por dos formularios más macros de bucle de direcciones recursivas.
Crearás dos formularios que interactúan entre sí:
| Formulario | Finalidad |
|---|---|
| Formulario de resumen | Muestra los compradores/propietarios/notarios actualmente vinculados a un inmueble, con los botones «Editar» y «Vincular a otros» |
| Formulario de edición | Un formulario por tipo de persona con los campos de dirección; guarda la dirección y la vincula automáticamente con el inmueble |
Flujo de trabajo para el usuario:
?estate[Id]=...)Este es el más sencillo de los dos formularios. Contiene:
https://formular.deine-domain.de/notarbeauftragung-uebersicht?estate[Id]=_Uuidestate)> 💡 Consejo: Necesitas un formulario de edición propio para cada tipo de persona (es decir, uno para el comprador, otro para el propietario, otro para el notario y otro para la administración), ya que cada uno tiene una lógica de vinculación diferente.
> 💡 Simplificación: Si todos los formularios de edición tienen el mismo diseño, puedes crearlos mediante la función «Copiar formulario» y ajustar únicamente la configuración de los enlaces.
El formulario de resumen consta de un único campo de descripción en el que se encuentran las macros de bucle. Los campos se rellenan completamente mediante macros de onOffice.
Componentes importantes por bucle:
_ifEmpty(_Name;"Kein X verbunden";"...") — si aún no hay ningún registro vinculado, mostrar un mensaje adecuado_buyerbrek_1_ (Buyer-Begin-Recursion) o _ownerbrek_1_ (Owner-Begin-Recursion)_BuyerVorname, _BuyerName, _BuyerStrasse, además de un enlace «Editar dirección» con el UUID_buyererek_1_ o _ownererek_1__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>
Qué ocurre:
_EigentName (macro estándar de onOffice) comprueba si hay algún propietario vinculado_ownerbrek_1_ ... _ownererek_1_ recorre todos los propietarios vinculados_OwnerUuidaddress (UUID del propietario actual en el bucle)Exactamente el mismo patrón que con los propietarios, solo que con buyer en lugar de owner y las pre-macros _Buyer* en lugar de _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>
Si no quieres recorrer todas las direcciones vinculadas a un tipo de contacto, sino mostrar directamente un tipo de contacto específico (por ejemplo, «el notario de esta propiedad»), utiliza 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 es aquí el nombre de la opción de tipo de contacto en onOffice. Si utilizas tus propios valores de tipo de contacto, debes emplear el valor de clave exacto, p. ej.:
_XAPKontaktart#indMulti28075Select28075#Name
> 💡 Encontrarás el valor de clave en onOffice en Extras → Configuración → Administración → Direcciones → Campo «Tipo de contacto» → en la opción correspondiente.
## Ejemplo completo de solicitud de notario
Un formulario típico de resumen de solicitud de notario combina todos los bucles + tipos de contacto en un campo de descripción:
**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>")
→ Tras abrirlo, el usuario ve un resumen claro de todas las personas vinculadas + botones para editar o añadir más personas.
_ifEmpty(_EigentName;...) solo comprueba el apellido. En los registros de empresas, _EigentName suele estar vacío y solo _EigentZusatz1 (nombre de la empresa) está rellenado. Solución: Añadir «Adicional 1» a la comprobación, p. ej.:
_ifEmpty(_EigentName;_ifEmpty(_EigentZusatz1;"Kein Eigentümer verbunden";"...");"...")
Los campos _OwnerName2, _OwnerStrasse2, _OwnerPLZ2, etc. (segunda dirección dentro de un registro) no están activados de forma predeterminada en muchas versiones de onOffice. Si tu bucle accede a ellos y no muestra nada, comprueba en onOffice, en Extras → Configuración → Administración → Direcciones, si los campos de datos maestros 2 están activados.
Los enlaces HTML en el campo de descripción funcionan, pero las comillas deben ser simples ' O dobles " — no mezcladas en el mismo elemento. El _ifEmpty(...; ""; "...") anidado a menudo te obliga a escribir los atributos HTML con '.
Puedes combinar sin problemas los bucles _buyerbrek_1_/_buyererek_1_ y _ownerbrek_1_/_ownererek_1_ en el mismo campo de descripción. _1_ es un contador interno: si necesitas varios bucles de comprador en un campo (algo poco habitual), aumenta el número: _buyerbrek_2_, _buyererek_2_.
Si la dirección se duplica en lugar de actualizarse en el segundo envío: el parámetro address[ID] no se ha recibido o el formulario no está configurado en «Rellenar dirección automáticamente». Comprueba la configuración de rellenado automático.
_Buyer*, _Owner*, _Eigent*, _Kaeufer*