exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit c36cde50657a2ce89d79b832208587dac72e7fff
parent b771198daedfa6f88230ac685bf1990c3ec9283a
Author: Florian Dold <dold@taler.net>
Date:   Mon, 31 Aug 2026 21:55:57 +0200

render foundation and trust GANA fields

Diffstat:
Mcontrib/typst/vqf_902_12/template/main.typ | 58++++++++++++++++++++++++++++++++++++++++++++--------------
Mcontrib/typst/vqf_902_12/vqf_902_12.typ | 106+++++++++++++++++++++++++++++++++++++++----------------------------------------
Mcontrib/typst/vqf_902_13/template/main.typ | 67++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
Mcontrib/typst/vqf_902_13/vqf_902_13.typ | 176++++++++++++++++++++++++++++++++++---------------------------------------------
4 files changed, 226 insertions(+), 181 deletions(-)

diff --git a/contrib/typst/vqf_902_12/template/main.typ b/contrib/typst/vqf_902_12/template/main.typ @@ -4,20 +4,51 @@ "VQF_MEMBER_NUMBER": "12345", "FILE_NUMBER": "42", "IDENTITY_CONTRACTING_PARTNER": "Foundation Board AG\nExample Street 1\n8001 Zurich", - "ENTITY_NAME": "Example Foundation", - "ENTITY_TYPE": "DISCRETIONARY", - "ENTITY_REVOCABILITY": "IRREVOCABLE", - "EXTRA_REVOCATION_RIGHTS": false, - "FOUNDER_LIST": ( + "LEGAL_STRUCTURE_NAME": "Example Foundation", + "LEGAL_STRUCTURE_TYPE": "DISCRETIONARY", + "LEGAL_STRUCTURE_REVOCABILITY": "REVOCABLE", + "ORIGINATOR_LIST": ( ( - "PERSON_ENTITY_NAME": "John Doe", - "PERSON_DOMICILE_REGISTERED_OFFICE": "Main St 123\n8001 Zurich", - "PERSON_COUNTRY": "CH", - "PERSON_DATE_OF_BIRTH": "01.01.1950", - "PERSON_NATIONALITY": "CH", + "NAME_OR_ENTITY": "John Doe", + "DOMICILE_OR_REGISTERED_OFFICE": "Main St 123\n8001 Zurich", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1950-01-01", + "NATIONALITY": "CH", + "DATE_OF_DEATH": "", ), ), - "HAS_PREDECESSOR_ENTITY": false, + "ORIGINATOR_HAS_REVOCATION_RIGHT": true, + "PREDECESSOR_ORIGINATOR_LIST": ( + ( + "NAME_OR_ENTITY": "Predecessor Founder Ltd.", + "DOMICILE_OR_REGISTERED_OFFICE": "Old Road 4\n9490 Vaduz", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "LI", + "DATE_OF_BIRTH": "", + "NATIONALITY": "", + "DATE_OF_DEATH": "", + ), + ), + "BENEFICIARY_LIST": ( + ( + "NAME_OR_ENTITY": "Jane Beneficiary", + "DOMICILE_OR_REGISTERED_OFFICE": "Lake Road 5\n6000 Lucerne", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1985-06-15", + "NATIONALITY": "CH", + ), + ), + "BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM": false, + "BENEFICIARY_GROUPS": "Descendants of John Doe", + "FURTHER_PERSON_LIST": ( + ( + "NAME_OR_ENTITY": "Alex Nominator", + "DOMICILE_OR_REGISTERED_OFFICE": "Board Street 7\n8002 Zurich", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1975-02-20", + "NATIONALITY": "CH", + ), + ), + "FURTHER_PERSON_HAS_REVOCATION_RIGHT": true, "SIGNATURE": "Board Member", - "SIGN_DATE": "10.11.2025", -)) -\ No newline at end of file + "SIGN_DATE": "2026-08-31", +)) diff --git a/contrib/typst/vqf_902_12/vqf_902_12.typ b/contrib/typst/vqf_902_12/vqf_902_12.typ @@ -79,7 +79,7 @@ columns: (1fr), stroke: 0.5pt + black, inset: 5pt, - [#get("ENTITY_NAME")] + [#get("LEGAL_STRUCTURE_NAME")] ) v(1em) @@ -93,8 +93,8 @@ v(0.5em) - let entity_type = get("ENTITY_TYPE") - let entity_revoc = get("ENTITY_REVOCABILITY") + let entity_type = get("LEGAL_STRUCTURE_TYPE") + let entity_revoc = get("LEGAL_STRUCTURE_REVOCABILITY") block(breakable: false)[ #grid( @@ -120,7 +120,7 @@ v(0.5em) - let founders = get("FOUNDER_LIST", default: ()) + let founders = get("ORIGINATOR_LIST", default: ()) let has_founders = type(founders) == array and founders.len() > 0 for founder in (if has_founders {founders} else {((:),)}) { @@ -137,18 +137,18 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Last name(s), first name(s)/entity:], [#get_founder("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_founder("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_founder("PERSON_COUNTRY")], - [Date(s) of birth:], [#get_founder("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_founder("PERSON_NATIONALITY")], - [Date of death (if deceased):], [#get_founder("PERSON_DATE_OF_DEATH")] + [Last name(s), first name(s)/entity:], [#get_founder("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_founder("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_founder("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date(s) of birth:], [#get_founder("DATE_OF_BIRTH")], + [Nationality:], [#get_founder("NATIONALITY")], + [Date of death (if deceased):], [#get_founder("DATE_OF_DEATH")] ) ] v(0.5em) } - let founder_revoc = get("FOUNDER_HAS_REVOCATION_RIGHT") + let founder_revoc = get("ORIGINATOR_HAS_REVOCATION_RIGHT", default: false) if entity_revoc == "REVOCABLE" [ #table( columns: (70%, 30%), @@ -171,9 +171,8 @@ v(0.5em) - let has_pred = get("HAS_PREDECESSOR_ENTITY") - let pred_founders = get("PREDECESSOR_FOUNDER_LIST", default: ()) - let has_pred_founders = has_pred and type(pred_founders) == array and pred_founders.len() > 0 + let pred_founders = get("PREDECESSOR_ORIGINATOR_LIST", default: ()) + let has_pred_founders = type(pred_founders) == array and pred_founders.len() > 0 if has_pred_founders { for pred in pred_founders { @@ -186,12 +185,12 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Last name(s), first name(s)/entity:], [#get_pred("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_pred("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_pred("PERSON_COUNTRY")], - [Date(s) of birth:], [#get_pred("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_pred("PERSON_NATIONALITY")], - [Date of death (if deceased):], [#get_pred("PERSON_DATE_OF_DEATH")] + [Last name(s), first name(s)/entity:], [#get_pred("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date(s) of birth:], [#get_pred("DATE_OF_BIRTH")], + [Nationality:], [#get_pred("NATIONALITY")], + [Date of death (if deceased):], [#get_pred("DATE_OF_DEATH")] ) ] v(0.5em) @@ -221,32 +220,23 @@ let beneficiaries = get("BENEFICIARY_LIST", default: ()) let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 + let has_claim = get("BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM", default: false) if has_benef { for benef in beneficiaries { let get_benef(key) = { benef.at(key, default: "") } - let has_claim = get_benef("BENEFICIARY_HAS_CLAIM_RIGHT") - block(breakable: false)[ #table( columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name/entity:], [#get_benef("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_benef("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_benef("PERSON_COUNTRY")], - [Date of birth:], [#get_benef("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_benef("PERSON_NATIONALITY")], - [Has the beneficiary an actual right to claim distribution?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(has_claim) Yes], - [#checkbox(not has_claim) No], - )] + [Full name/entity:], [#get_benef("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_benef("DATE_OF_BIRTH")], + [Nationality:], [#get_benef("NATIONALITY")] ) ] v(0.5em) @@ -260,18 +250,24 @@ [Actual address of domicile/registered office:], [], [Country:], [], [Date of birth:], [], - [Nationality:], [], - [Has the beneficiary an actual right to claim distribution?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(false) Yes], - [#checkbox(false) No], - )] + [Nationality:], [] ) } + table( + columns: (35%, 65%), + stroke: 0.5pt + black, + inset: 5pt, + [Has/have the beneficiary/ies an actual right to claim distribution?], + [#grid( + columns: (auto, auto), + stroke: 0.5pt + black, + inset: 5pt, + [#checkbox(has_benef and has_claim) Yes], + [#checkbox(has_benef and not has_claim) No], + )] + ) + v(1em) [== b) and in addition to certain beneficiaries or if there is/are no defined beneficiary/ies pertaining to (a) group(s) of beneficiaries (e.g. descendants of the founder) known at the time of the signing of this form:] @@ -282,7 +278,7 @@ columns: (1fr), stroke: 0.5pt + black, inset: 5pt, - [#get("BENEFICIARY_GROUP_DESCRIPTION")] + [#get("BENEFICIARY_GROUPS")] ) pagebreak() @@ -292,7 +288,7 @@ v(0.5em) - let nom_persons = get("NOMINATING_PERSON_LIST", default: ()) + let nom_persons = get("FURTHER_PERSON_LIST", default: ()) let has_nom = type(nom_persons) == array and nom_persons.len() > 0 if has_nom { @@ -306,11 +302,11 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name/entity:], [#get_nom("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_nom("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_nom("PERSON_COUNTRY")], - [Date of birth:], [#get_nom("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_nom("PERSON_NATIONALITY")] + [Full name/entity:], [#get_nom("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_nom("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_nom("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_nom("DATE_OF_BIRTH")], + [Nationality:], [#get_nom("NATIONALITY")] ) ] v(0.5em) @@ -330,8 +326,9 @@ v(0.5em) - let nom_revoc = get("EXTRA_REVOCATION_RIGHTS") - table( + let nom_revoc = get("FURTHER_PERSON_HAS_REVOCATION_RIGHT", default: false) + if entity_revoc == "REVOCABLE" [ + #table( columns: (70%, 30%), stroke: 0.5pt + black, inset: 5pt, @@ -343,7 +340,8 @@ [#checkbox(nom_revoc) Yes], [#checkbox(not nom_revoc) No], )] - ) + ) + ] v(1.5em) diff --git a/contrib/typst/vqf_902_13/template/main.typ b/contrib/typst/vqf_902_13/template/main.typ @@ -4,19 +4,61 @@ "VQF_MEMBER_NUMBER": "12345", "FILE_NUMBER": "42", "IDENTITY_CONTRACTING_PARTNER": "Trustee Company AG\nExample Street 1\n8001 Zurich", - "ENTITY_NAME": "Example Trust", - "ENTITY_TYPE": "DISCRETIONARY", - "ENTITY_REVOCABILITY": "IRREVOCABLE", - "FOUNDER_LIST": ( + "LEGAL_STRUCTURE_NAME": "Example Trust", + "LEGAL_STRUCTURE_TYPE": "DISCRETIONARY", + "LEGAL_STRUCTURE_REVOCABILITY": "REVOCABLE", + "ORIGINATOR_LIST": ( ( - "PERSON_ENTITY_NAME": "Jane Smith", - "PERSON_DOMICILE_REGISTERED_OFFICE": "Main St 123\n8001 Zurich", - "PERSON_COUNTRY": "CH", - "PERSON_DATE_OF_BIRTH": "01.01.1955", - "PERSON_NATIONALITY": "CH", + "NAME_OR_ENTITY": "Jane Smith", + "DOMICILE_OR_REGISTERED_OFFICE": "Main St 123\n8001 Zurich", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1955-01-01", + "NATIONALITY": "CH", + "DATE_OF_DEATH": "", ), ), - "HAS_PREDECESSOR_ENTITY": false, + "ORIGINATOR_HAS_REVOCATION_RIGHT": false, + "PREDECESSOR_ORIGINATOR_LIST": ( + ( + "NAME_OR_ENTITY": "Original Settlor", + "DOMICILE_OR_REGISTERED_OFFICE": "Old Lane 2\n1000 Lausanne", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1935-03-12", + "NATIONALITY": "CH", + "DATE_OF_DEATH": "2015-04-01", + ), + ), + "BENEFICIARY_LIST": ( + ( + "NAME_OR_ENTITY": "Taylor Beneficiary", + "DOMICILE_OR_REGISTERED_OFFICE": "River Road 3\n3000 Bern", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1990-07-10", + "NATIONALITY": "CH", + ), + ), + "BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM": true, + "BENEFICIARY_GROUPS": "Descendants of Jane Smith", + "PROTECTOR_LIST": ( + ( + "NAME_OR_ENTITY": "Pat Protector", + "DOMICILE_OR_REGISTERED_OFFICE": "Hill Street 4\n4051 Basel", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1970-09-08", + "NATIONALITY": "CH", + ), + ), + "PROTECTOR_HAS_REVOCATION_RIGHT": true, + "FURTHER_PERSON_LIST": ( + ( + "NAME_OR_ENTITY": "Robin Appointer", + "DOMICILE_OR_REGISTERED_OFFICE": "Trust Avenue 8\n8004 Zurich", + "DOMICILE_OR_REGISTERED_OFFICE_COUNTRY": "CH", + "DATE_OF_BIRTH": "1968-11-30", + "NATIONALITY": "CH", + ), + ), + "FURTHER_PERSON_HAS_REVOCATION_RIGHT": false, "SIGNATURE": "Trustee", - "SIGN_DATE": "10.11.2025", -)) -\ No newline at end of file + "SIGN_DATE": "2026-08-31", +)) diff --git a/contrib/typst/vqf_902_13/vqf_902_13.typ b/contrib/typst/vqf_902_13/vqf_902_13.typ @@ -79,7 +79,7 @@ columns: (1fr), stroke: 0.5pt + black, inset: 5pt, - [#get("ENTITY_NAME")] + [#get("LEGAL_STRUCTURE_NAME")] ) v(1em) @@ -93,8 +93,8 @@ v(0.5em) - let entity_type = get("ENTITY_TYPE") - let entity_revoc = get("ENTITY_REVOCABILITY") + let entity_type = get("LEGAL_STRUCTURE_TYPE") + let entity_revoc = get("LEGAL_STRUCTURE_REVOCABILITY") block(breakable: false)[ #grid( @@ -120,7 +120,7 @@ v(0.5em) - let settlors = get("FOUNDER_LIST", default: ()) + let settlors = get("ORIGINATOR_LIST", default: ()) let has_settlors = type(settlors) == array and settlors.len() > 0 for settlor in (if has_settlors {settlors} else {((:),)}) { @@ -137,16 +137,20 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name/entity:], [#get_settlor("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_settlor("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_settlor("PERSON_COUNTRY")], - [Date of birth:], [#get_settlor("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_settlor("PERSON_NATIONALITY")], - [Date of death (if deceased):], [#get_settlor("PERSON_DATE_OF_DEATH")] + [Full name/entity:], [#get_settlor("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_settlor("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_settlor("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_settlor("DATE_OF_BIRTH")], + [Nationality:], [#get_settlor("NATIONALITY")], + [Date of death (if deceased):], [#get_settlor("DATE_OF_DEATH")] ) ] - let settlor_revoc = get_settlor("FOUNDER_HAS_REVOCATION_RIGHT") - table( + v(0.5em) + } + + let settlor_revoc = get("ORIGINATOR_HAS_REVOCATION_RIGHT", default: false) + if entity_revoc == "REVOCABLE" [ + #table( columns: (80%, 20%), stroke: 0.5pt + black, inset: 5pt, @@ -156,13 +160,11 @@ columns: (auto, auto), stroke: 0.5pt + black, inset: 5pt, - [#checkbox((entity_revoc == "REVOCABLE") and settlor_revoc) Yes], - [#checkbox((entity_revoc == "REVOCABLE") and not settlor_revoc) No], + [#checkbox(has_settlors and settlor_revoc) Yes], + [#checkbox(has_settlors and not settlor_revoc) No], )] ) - v(0.5em) - - } + ] v(1.5em) @@ -172,9 +174,8 @@ v(0.5em) - let has_pred = get("HAS_PREDECESSOR_ENTITY") - let pred_settlors = get("PREDECESSOR_FOUNDER_LIST", default: ()) - let has_pred_settlors = has_pred and type(pred_settlors) == array and pred_settlors.len() > 0 + let pred_settlors = get("PREDECESSOR_ORIGINATOR_LIST", default: ()) + let has_pred_settlors = type(pred_settlors) == array and pred_settlors.len() > 0 if has_pred_settlors { for pred in pred_settlors { @@ -187,12 +188,12 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name/entity:], [#get_pred("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_pred("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_pred("PERSON_COUNTRY")], - [Date of birth:], [#get_pred("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_pred("PERSON_NATIONALITY")], - [Date of death (if deceased):], [#get_pred("PERSON_DATE_OF_DEATH")] + [Full name/entity:], [#get_pred("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_pred("DATE_OF_BIRTH")], + [Nationality:], [#get_pred("NATIONALITY")], + [Date of death (if deceased):], [#get_pred("DATE_OF_DEATH")] ) ] v(0.5em) @@ -222,37 +223,23 @@ let beneficiaries = get("BENEFICIARY_LIST", default: ()) let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 + let has_claim = get("BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM", default: false) if has_benef { for benef in beneficiaries { let get_benef(key) = { benef.at(key, default: "") } - let has_claim = get_benef("BENEFICIARY_HAS_CLAIM_RIGHT") - block(breakable: false)[ #table( columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name/entity:], [#get_benef("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_benef("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_benef("PERSON_COUNTRY")], - [Date of birth:], [#get_benef("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_benef("PERSON_NATIONALITY")] - ) - #table( - columns: (80%, 20%), - stroke: 0.5pt + black, - inset: 5pt, - [Has the beneficiary an actual right to claim a distribution?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(has_claim) Yes], - [#checkbox(not has_claim) No], - )] + [Full name/entity:], [#get_benef("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_benef("DATE_OF_BIRTH")], + [Nationality:], [#get_benef("NATIONALITY")] ) ] v(0.5em) @@ -268,20 +255,21 @@ [Date of birth:], [], [Nationality:], [] ) - table( - columns: (80%, 20%), + } + + table( + columns: (80%, 20%), + stroke: 0.5pt + black, + inset: 5pt, + [Has/Have the beneficiary/-ies an actual right to claim a distribution?], + [#grid( + columns: (auto, auto), stroke: 0.5pt + black, inset: 5pt, - [Has the beneficiary an actual right to claim a distribution?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(false) Yes], - [#checkbox(false) No], - )] - ) - } + [#checkbox(has_benef and has_claim) Yes], + [#checkbox(has_benef and not has_claim) No], + )] + ) v(1em) @@ -293,7 +281,7 @@ columns: (1fr), stroke: 0.5pt + black, inset: 5pt, - [#get("BENEFICIARY_GROUP_DESCRIPTION")] + [#get("BENEFICIARY_GROUPS")] ) v(1.5em) @@ -309,6 +297,7 @@ let protectors = get("PROTECTOR_LIST", default: ()) let has_prot = type(protectors) == array and protectors.len() > 0 + let prot_revoc = get("PROTECTOR_HAS_REVOCATION_RIGHT", default: false) if has_prot { for prot in protectors { @@ -316,31 +305,16 @@ prot.at(key, default: "") } - let prot_revoc = get_prot("PROTECTOR_HAS_REVOCATION_RIGHT") block(breakable: false)[ #table( columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Full name)/entity:], [#get_prot("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_prot("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_prot("PERSON_COUNTRY")], - [Date of birth:], [#get_prot("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_prot("PERSON_NATIONALITY")] - ) - #table( - columns: (80%, 20%), - stroke: 0.5pt + black, - inset: 5pt, - [In case of a revocable trust: - \ Does the protector have the right to revoke the trust?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(prot_revoc) Yes], - [#checkbox(not prot_revoc) No], - )] + [Full name/entity:], [#get_prot("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_prot("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_prot("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date of birth:], [#get_prot("DATE_OF_BIRTH")], + [Nationality:], [#get_prot("NATIONALITY")] ) ] v(0.5em) @@ -357,21 +331,23 @@ [Date of birth:], [], [Nationality:], [] ) - #table( - columns: (80%, 20%), + ] + } + + table( + columns: (80%, 20%), + stroke: 0.5pt + black, + inset: 5pt, + [In case of a revocable trust: + \ Does the protector have the right to revoke the trust?], + [#grid( + columns: (auto, auto), stroke: 0.5pt + black, inset: 5pt, - [In case of a revocable trust: - \ Does the protector have the right to revoke the trust?], - [#grid( - columns: (auto, auto), - stroke: 0.5pt + black, - inset: 5pt, - [#checkbox(false) Yes], - [#checkbox(false) No], - )] + [#checkbox((entity_revoc == "REVOCABLE") and has_prot and prot_revoc) Yes], + [#checkbox((entity_revoc == "REVOCABLE") and has_prot and not prot_revoc) No], )] - } + ) v(0.5em) @@ -381,7 +357,7 @@ v(0.5em) - let others = get("OTHER_PERSON_LIST", default: ()) + let others = get("FURTHER_PERSON_LIST", default: ()) let has_others = type(others) == array and others.len() > 0 if has_others { @@ -395,11 +371,11 @@ columns: (35%, 65%), stroke: 0.5pt + black, inset: 5pt, - [Last name(s), first name(s)/entity:], [#get_other("PERSON_ENTITY_NAME")], - [Actual address of domicile/registered office:], [#get_other("PERSON_DOMICILE_REGISTERED_OFFICE")], - [Country:], [#get_other("PERSON_COUNTRY")], - [Date(s) of birth:], [#get_other("PERSON_DATE_OF_BIRTH")], - [Nationality:], [#get_other("PERSON_NATIONALITY")] + [Last name(s), first name(s)/entity:], [#get_other("NAME_OR_ENTITY")], + [Actual address of domicile/registered office:], [#get_other("DOMICILE_OR_REGISTERED_OFFICE")], + [Country:], [#get_other("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], + [Date(s) of birth:], [#get_other("DATE_OF_BIRTH")], + [Nationality:], [#get_other("NATIONALITY")] ) ] v(0.5em) @@ -419,7 +395,7 @@ v(0.5em) - let other_revoc = get("OTHER_PERSON_HAS_REVOCATION_RIGHT") + let other_revoc = get("FURTHER_PERSON_HAS_REVOCATION_RIGHT", default: false) if entity_revoc == "REVOCABLE" [ #table( columns: (80%, 20%), @@ -429,8 +405,8 @@ [#grid( columns: (auto, 1fr), gutter: 0.5em, - checkbox(other_revoc), [Yes], - checkbox(not other_revoc), [No], + checkbox(has_others and other_revoc), [Yes], + checkbox(has_others and not other_revoc), [No], )] ) ]