vqf_902_12.typ (10388B)
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("ENTITY_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("ENTITY_TYPE") 97 let entity_revoc = get("ENTITY_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("FOUNDER_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("PERSON_ENTITY_NAME")], 141 [Actual address of domicile/registered office:], [#get_founder("PERSON_DOMICILE_REGISTERED_OFFICE")], 142 [Country:], [#get_founder("PERSON_COUNTRY")], 143 [Date(s) of birth:], [#get_founder("PERSON_DATE_OF_BIRTH")], 144 [Nationality:], [#get_founder("PERSON_NATIONALITY")], 145 [Date of death (if deceased):], [#get_founder("PERSON_DATE_OF_DEATH")] 146 ) 147 ] 148 v(0.5em) 149 } 150 151 let founder_revoc = get("FOUNDER_HAS_REVOCATION_RIGHT") 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 has_pred = get("HAS_PREDECESSOR_ENTITY") 175 let pred_founders = get("PREDECESSOR_FOUNDER_LIST", default: ()) 176 let has_pred_founders = has_pred and type(pred_founders) == array and pred_founders.len() > 0 177 178 if has_pred_founders { 179 for pred in pred_founders { 180 let get_pred(key) = { 181 pred.at(key, default: "") 182 } 183 184 block(breakable: false)[ 185 #table( 186 columns: (35%, 65%), 187 stroke: 0.5pt + black, 188 inset: 5pt, 189 [Last name(s), first name(s)/entity:], [#get_pred("PERSON_ENTITY_NAME")], 190 [Actual address of domicile/registered office:], [#get_pred("PERSON_DOMICILE_REGISTERED_OFFICE")], 191 [Country:], [#get_pred("PERSON_COUNTRY")], 192 [Date(s) of birth:], [#get_pred("PERSON_DATE_OF_BIRTH")], 193 [Nationality:], [#get_pred("PERSON_NATIONALITY")], 194 [Date of death (if deceased):], [#get_pred("PERSON_DATE_OF_DEATH")] 195 ) 196 ] 197 v(0.5em) 198 } 199 } else { 200 table( 201 columns: (35%, 65%), 202 stroke: 0.5pt + black, 203 inset: 5pt, 204 [Last name(s), first name(s)/entity:], [], 205 [Actual address of domicile/registered office:], [], 206 [Country:], [], 207 [Date(s) of birth:], [], 208 [Nationality:], [], 209 [Date of death (if deceased):], [] 210 ) 211 } 212 213 // Section 4: Beneficiary Information 214 [= 4. Information] 215 216 v(0.5em) 217 218 [== a) pertaining to the beneficiary/ies at the time of the signing of this form:] 219 220 v(0.5em) 221 222 let beneficiaries = get("BENEFICIARY_LIST", default: ()) 223 let has_benef = type(beneficiaries) == array and beneficiaries.len() > 0 224 225 if has_benef { 226 for benef in beneficiaries { 227 let get_benef(key) = { 228 benef.at(key, default: "") 229 } 230 let has_claim = get_benef("BENEFICIARY_HAS_CLAIM_RIGHT") 231 232 block(breakable: false)[ 233 #table( 234 columns: (35%, 65%), 235 stroke: 0.5pt + black, 236 inset: 5pt, 237 [Full name/entity:], [#get_benef("PERSON_ENTITY_NAME")], 238 [Actual address of domicile/registered office:], [#get_benef("PERSON_DOMICILE_REGISTERED_OFFICE")], 239 [Country:], [#get_benef("PERSON_COUNTRY")], 240 [Date of birth:], [#get_benef("PERSON_DATE_OF_BIRTH")], 241 [Nationality:], [#get_benef("PERSON_NATIONALITY")], 242 [Has the beneficiary an actual right to claim distribution?], 243 [#grid( 244 columns: (auto, auto), 245 stroke: 0.5pt + black, 246 inset: 5pt, 247 [#checkbox(has_claim) Yes], 248 [#checkbox(not has_claim) No], 249 )] 250 ) 251 ] 252 v(0.5em) 253 } 254 } else { 255 table( 256 columns: (35%, 65%), 257 stroke: 0.5pt + black, 258 inset: 5pt, 259 [Full name/entity:], [], 260 [Actual address of domicile/registered office:], [], 261 [Country:], [], 262 [Date of birth:], [], 263 [Nationality:], [], 264 [Has the beneficiary an actual right to claim distribution?], 265 [#grid( 266 columns: (auto, auto), 267 stroke: 0.5pt + black, 268 inset: 5pt, 269 [#checkbox(false) Yes], 270 [#checkbox(false) No], 271 )] 272 ) 273 } 274 275 v(1em) 276 277 [== 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:] 278 279 v(0.5em) 280 281 table( 282 columns: (1fr), 283 stroke: 0.5pt + black, 284 inset: 5pt, 285 [#get("BENEFICIARY_GROUP_DESCRIPTION")] 286 ) 287 288 pagebreak() 289 290 // Section 5: Nominating Persons 291 [= 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:] 292 293 v(0.5em) 294 295 let nom_persons = get("NOMINATING_PERSON_LIST", default: ()) 296 let has_nom = type(nom_persons) == array and nom_persons.len() > 0 297 298 if has_nom { 299 for nom in nom_persons { 300 let get_nom(key) = { 301 nom.at(key, default: "") 302 } 303 304 block(breakable: false)[ 305 #table( 306 columns: (35%, 65%), 307 stroke: 0.5pt + black, 308 inset: 5pt, 309 [Full name/entity:], [#get_nom("PERSON_ENTITY_NAME")], 310 [Actual address of domicile/registered office:], [#get_nom("PERSON_DOMICILE_REGISTERED_OFFICE")], 311 [Country:], [#get_nom("PERSON_COUNTRY")], 312 [Date of birth:], [#get_nom("PERSON_DATE_OF_BIRTH")], 313 [Nationality:], [#get_nom("PERSON_NATIONALITY")] 314 ) 315 ] 316 v(0.5em) 317 } 318 } else { 319 table( 320 columns: (35%, 65%), 321 stroke: 0.5pt + black, 322 inset: 5pt, 323 [Full name/entity:], [], 324 [Actual address of domicile/registered office:], [], 325 [Country:], [], 326 [Date of birth:], [], 327 [Nationality:], [] 328 ) 329 } 330 331 v(0.5em) 332 333 let nom_revoc = get("EXTRA_REVOCATION_RIGHTS") 334 table( 335 columns: (70%, 30%), 336 stroke: 0.5pt + black, 337 inset: 5pt, 338 [In case of a revocable foundation: is/are there (a) further person(s) with the right to revoke the foundation?], 339 [#grid( 340 columns: (auto, auto), 341 stroke: 0.5pt + black, 342 inset: 5pt, 343 [#checkbox(nom_revoc) Yes], 344 [#checkbox(not nom_revoc) No], 345 )] 346 ) 347 348 v(1.5em) 349 350 text()[The contracting partner(s) hereby undertake(s) to automatically inform of any changes to the information contained herein.] 351 352 v(1.5em) 353 354 // Signature 355 table( 356 columns: (1fr, 1fr), 357 stroke: 0.5pt + black, 358 inset: 5pt, 359 [Date:], [Signature(s):], 360 [#get("SIGN_DATE")], [#get("SIGNATURE")] 361 ) 362 363 v(1em) 364 365 text(size: 9pt, style: "italic")[ 366 It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery). 367 ] 368 }