vqf_902_12.typ (10276B)
1 // VQF 902.12 Foundations (S) Template 2 // Pass JSON data as content dictionary 3 #import "@taler-exchange/common:0.0.0": vqflogo, checkbox 4 5 #let form(data) = { 6 set page( 7 paper: "a4", 8 margin: (left: 2cm, right: 2cm, top: 2cm, bottom: 2.5cm), 9 footer: context [ 10 #grid( 11 columns: (1fr, 1fr), 12 align: (left, right), 13 text(size: 8pt)[ 14 VQF doc. Nr. 902.12#linebreak() 15 Version of 1 December 2015 16 ], 17 text(size: 8pt)[ 18 Page #here().page() of #counter(page).final().first() 19 ] 20 ) 21 ] 22 ) 23 24 set text(font: "Liberation Sans", size: 10pt) 25 set par(justify: false, leading: 0.65em) 26 27 let get(key, default: "") = { 28 data.at(key, default: default) 29 } 30 31 // Header 32 align(center, text(size: 11pt, weight: "bold")[CONFIDENTIAL]) 33 34 v(0.5em) 35 36 grid( 37 columns: (50%, 50%), 38 gutter: 1em, 39 vqflogo(), 40 align(right)[ 41 #table( 42 columns: (1fr, 1fr), 43 stroke: 0.5pt + black, 44 inset: 5pt, 45 align: (left, left), 46 [VQF member no.], [AMLA File No.], 47 [#get("VQF_MEMBER_NUMBER")], [#get("FILE_NUMBER")] 48 ) 49 ] 50 ) 51 52 v(1em) 53 54 align(left, text(size: 14pt, weight: "bold")[Foundations (as well as similar constructs) (S)]) 55 56 v(-1em) 57 line(length:100%) 58 59 v(1em) 60 61 text(weight: "bold")[Contracting partner:] 62 63 v(0.5em) 64 65 table( 66 columns: (1fr), 67 stroke: 0.5pt + black, 68 inset: 5pt, 69 [#get("IDENTITY_CONTRACTING_PARTNER")] 70 ) 71 72 v(1em) 73 74 text()[The undersigned hereby declare(s) that as board member of the foundation, or of the highest supervisory body of an underlying company of a foundation, known as:] 75 76 v(0.5em) 77 78 table( 79 columns: (1fr), 80 stroke: 0.5pt + black, 81 inset: 5pt, 82 [#get("LEGAL_STRUCTURE_NAME")] 83 ) 84 85 v(1em) 86 87 text()[and, such capacity, provide(s) to the best of his/her/their knowledge the following:] 88 89 v(1.5em) 90 91 // Section 1: Foundation Information 92 [= 1. Name and information pertaining to the foundation (tick the two boxes applicable):] 93 94 v(0.5em) 95 96 let entity_type = get("LEGAL_STRUCTURE_TYPE") 97 let entity_revoc = get("LEGAL_STRUCTURE_REVOCABILITY") 98 99 block(breakable: false)[ 100 #grid( 101 columns: (auto, 1fr, auto, 1fr), 102 gutter: 1em, 103 row-gutter: 0.8em, 104 [Type of foundation:], 105 [#checkbox(entity_type == "DISCRETIONARY") Discretionary foundation], 106 [or], 107 [#checkbox(entity_type == "NON_DISCRETIONARY") Non-discretionary foundation], 108 [and], [], [], [], 109 [Revocability:], 110 [#checkbox(entity_revoc == "REVOCABLE") Revocable foundation], 111 [or], 112 [#checkbox(entity_revoc == "IRREVOCABLE") Irrevocable foundation], 113 ) 114 ] 115 116 v(1.5em) 117 118 // Section 2: Founder Information 119 [= 2. Information pertaining to the (ultimate economic, not fiduciary) founder (individual(s) or entity/ies):] 120 121 v(0.5em) 122 123 let founders = get("ORIGINATOR_LIST", default: ()) 124 let has_founders = type(founders) == array and founders.len() > 0 125 126 for founder in (if has_founders {founders} else {((:),)}) { 127 let get_founder(key) = { 128 if founder != (:) { 129 founder.at(key, default: "") 130 } else { 131 "" 132 } 133 } 134 135 block(breakable: false)[ 136 #table( 137 columns: (35%, 65%), 138 stroke: 0.5pt + black, 139 inset: 5pt, 140 [Last name(s), first name(s)/entity:], [#get_founder("NAME_OR_ENTITY")], 141 [Actual address of domicile/registered office:], [#get_founder("DOMICILE_OR_REGISTERED_OFFICE")], 142 [Country:], [#get_founder("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 143 [Date(s) of birth:], [#get_founder("DATE_OF_BIRTH")], 144 [Nationality:], [#get_founder("NATIONALITY")], 145 [Date of death (if deceased):], [#get_founder("DATE_OF_DEATH")] 146 ) 147 ] 148 v(0.5em) 149 } 150 151 let founder_revoc = get("ORIGINATOR_HAS_REVOCATION_RIGHT", default: false) 152 if entity_revoc == "REVOCABLE" [ 153 #table( 154 columns: (70%, 30%), 155 stroke: 0.5pt + black, 156 inset: 5pt, 157 [In case of a revocable foundation: does the founder have the right to revoke the foundation?], 158 [#grid( 159 columns: (auto, 1fr), 160 gutter: 0.5em, 161 checkbox(founder_revoc), [Yes], 162 checkbox(not founder_revoc), [No], 163 )] 164 ) 165 ] 166 167 pagebreak() 168 169 // Section 3: Pre-existing Foundation 170 [= 3. If the foundation results from the restructuring of pre-existing foundation (re-settlement) or the merger of pre-existing foundations, the following information pertaining to the (actual) founder(s) of the pre-existing foundation(s) has to be given:] 171 172 v(0.5em) 173 174 let pred_founders = get("PREDECESSOR_ORIGINATOR_LIST", default: ()) 175 let has_pred_founders = type(pred_founders) == array and pred_founders.len() > 0 176 177 if has_pred_founders { 178 for pred in pred_founders { 179 let get_pred(key) = { 180 pred.at(key, default: "") 181 } 182 183 block(breakable: false)[ 184 #table( 185 columns: (35%, 65%), 186 stroke: 0.5pt + black, 187 inset: 5pt, 188 [Last name(s), first name(s)/entity:], [#get_pred("NAME_OR_ENTITY")], 189 [Actual address of domicile/registered office:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE")], 190 [Country:], [#get_pred("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 191 [Date(s) of birth:], [#get_pred("DATE_OF_BIRTH")], 192 [Nationality:], [#get_pred("NATIONALITY")], 193 [Date of death (if deceased):], [#get_pred("DATE_OF_DEATH")] 194 ) 195 ] 196 v(0.5em) 197 } 198 } else { 199 table( 200 columns: (35%, 65%), 201 stroke: 0.5pt + black, 202 inset: 5pt, 203 [Last name(s), first name(s)/entity:], [], 204 [Actual address of domicile/registered office:], [], 205 [Country:], [], 206 [Date(s) of birth:], [], 207 [Nationality:], [], 208 [Date of death (if deceased):], [] 209 ) 210 } 211 212 // Section 4: Beneficiary Information 213 [= 4. Information] 214 215 v(0.5em) 216 217 [== a) pertaining to the beneficiary/ies at the time of the signing of this form:] 218 219 v(0.5em) 220 221 let beneficiaries = get("BENEFICIARY_LIST", default: ()) 222 let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 223 let has_claim = get("BENEFICIARIES_HAVE_DISTRIBUTION_CLAIM", default: false) 224 225 if has_benef { 226 for benef in beneficiaries { 227 let get_benef(key) = { 228 benef.at(key, default: "") 229 } 230 block(breakable: false)[ 231 #table( 232 columns: (35%, 65%), 233 stroke: 0.5pt + black, 234 inset: 5pt, 235 [Full name/entity:], [#get_benef("NAME_OR_ENTITY")], 236 [Actual address of domicile/registered office:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE")], 237 [Country:], [#get_benef("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 238 [Date of birth:], [#get_benef("DATE_OF_BIRTH")], 239 [Nationality:], [#get_benef("NATIONALITY")] 240 ) 241 ] 242 v(0.5em) 243 } 244 } else { 245 table( 246 columns: (35%, 65%), 247 stroke: 0.5pt + black, 248 inset: 5pt, 249 [Full name/entity:], [], 250 [Actual address of domicile/registered office:], [], 251 [Country:], [], 252 [Date of birth:], [], 253 [Nationality:], [] 254 ) 255 } 256 257 table( 258 columns: (35%, 65%), 259 stroke: 0.5pt + black, 260 inset: 5pt, 261 [Has/have the beneficiary/ies an actual right to claim distribution?], 262 [#grid( 263 columns: (auto, auto), 264 stroke: 0.5pt + black, 265 inset: 5pt, 266 [#checkbox(has_benef and has_claim) Yes], 267 [#checkbox(has_benef and not has_claim) No], 268 )] 269 ) 270 271 v(1em) 272 273 [== 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:] 274 275 v(0.5em) 276 277 table( 278 columns: (1fr), 279 stroke: 0.5pt + black, 280 inset: 5pt, 281 [#get("BENEFICIARY_GROUPS")] 282 ) 283 284 pagebreak() 285 286 // Section 5: Nominating Persons 287 [= 5. Information pertaining to (a) further person(s) having the right to determine or nominate representatives (e.g. members of the foundation board), if these representatives may dispose over the assets or have the right to change the distribution of the assets or the nomination of beneficiaries:] 288 289 v(0.5em) 290 291 let nom_persons = get("FURTHER_PERSON_LIST", default: ()) 292 let has_nom = type(nom_persons) == array and nom_persons.len() > 0 293 294 if has_nom { 295 for nom in nom_persons { 296 let get_nom(key) = { 297 nom.at(key, default: "") 298 } 299 300 block(breakable: false)[ 301 #table( 302 columns: (35%, 65%), 303 stroke: 0.5pt + black, 304 inset: 5pt, 305 [Full name/entity:], [#get_nom("NAME_OR_ENTITY")], 306 [Actual address of domicile/registered office:], [#get_nom("DOMICILE_OR_REGISTERED_OFFICE")], 307 [Country:], [#get_nom("DOMICILE_OR_REGISTERED_OFFICE_COUNTRY")], 308 [Date of birth:], [#get_nom("DATE_OF_BIRTH")], 309 [Nationality:], [#get_nom("NATIONALITY")] 310 ) 311 ] 312 v(0.5em) 313 } 314 } else { 315 table( 316 columns: (35%, 65%), 317 stroke: 0.5pt + black, 318 inset: 5pt, 319 [Full name/entity:], [], 320 [Actual address of domicile/registered office:], [], 321 [Country:], [], 322 [Date of birth:], [], 323 [Nationality:], [] 324 ) 325 } 326 327 v(0.5em) 328 329 let nom_revoc = get("FURTHER_PERSON_HAS_REVOCATION_RIGHT", default: false) 330 if entity_revoc == "REVOCABLE" [ 331 #table( 332 columns: (70%, 30%), 333 stroke: 0.5pt + black, 334 inset: 5pt, 335 [In case of a revocable foundation: is/are there (a) further person(s) with the right to revoke the foundation?], 336 [#grid( 337 columns: (auto, auto), 338 stroke: 0.5pt + black, 339 inset: 5pt, 340 [#checkbox(nom_revoc) Yes], 341 [#checkbox(not nom_revoc) No], 342 )] 343 ) 344 ] 345 346 v(1.5em) 347 348 text()[The contracting partner(s) hereby undertake(s) to automatically inform of any changes to the information contained herein.] 349 350 v(1.5em) 351 352 // Signature 353 table( 354 columns: (1fr, 1fr), 355 stroke: 0.5pt + black, 356 inset: 5pt, 357 [Date:], [Signature(s):], 358 [#get("SIGN_DATE")], [#get("SIGNATURE")] 359 ) 360 361 v(1em) 362 363 text(size: 9pt, style: "italic")[ 364 It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery). 365 ] 366 }