exchange

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

vqf_902_15.typ (6123B)


      1 // VQF 902.15 Life Insurance Policies (I) Template
      2 // Pass JSON data as content dictionary
      3 #import "@taler-exchange/common:0.0.0": vqflogo
      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.15#linebreak()
     15           Version of 22 January 2021
     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")[Information on life insurance policies with separately managed accounts/securities accounts (so-called insurance wrappers) (I)])
     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(weight: "bold")[Name or number of the contractual relationship between the contracting party and the financial intermediary:]
     75 
     76   v(0.5em)
     77 
     78   table(
     79     columns: (1fr),
     80     stroke: 0.5pt + black,
     81     inset: 5pt,
     82     [#get("CONTRACTUAL_RELATIONSHIP_NAME")]
     83   )
     84 
     85   v(1em)
     86 
     87   text(weight: "bold")[Insurance policy:]
     88 
     89   v(0.5em)
     90 
     91   table(
     92     columns: (1fr),
     93     stroke: 0.5pt + black,
     94     inset: 5pt,
     95     [#get("INSURANCE_POLICY_DETAILS")]
     96   )
     97 
     98   v(1em)
     99 
    100   text()[The contracting partner confirms in accordance with Art. 41a SRO Regulations that it is a licensed and state-supervised insurance company and that it has entered into the above-mentioned contractual relationship the assets connected to the life insurance policy also mentioned above.]
    101 
    102   v(0.5em)
    103 
    104   text()[In relation with the above insurance policy, the contracting partner gives the following further details:]
    105 
    106   v(1.5em)
    107 
    108   // Section 1: Policy Holder
    109 [= 1. Policy holder]
    110 
    111   v(0.5em)
    112 
    113   let policy_holders = get("POLICY_HOLDER_LIST", default: ())
    114   let has_holders = type(policy_holders) == array and policy_holders.len() > 0
    115 
    116   for holder in (if has_holders {policy_holders} else {((:),)}) {
    117     let get_holder(key) = {
    118       if holder != (:) {
    119         holder.at(key, default: "")
    120       } else {
    121         ""
    122       }
    123     }
    124 
    125     text()[Full name/entity:]
    126 
    127     v(0.3em)
    128 
    129     table(
    130       columns: (1fr),
    131       stroke: 0.5pt + black,
    132       inset: 5pt,
    133       [#get_holder("PERSON_ENTITY_NAME")]
    134     )
    135 
    136     v(0.5em)
    137 
    138     table(
    139       columns: (40%, 10%, 50%),
    140       stroke: 0.5pt + black,
    141       inset: 5pt,
    142       [Date of birth:],
    143       [],
    144       [Nationality:],
    145       [#get_holder("PERSON_DATE_OF_BIRTH")],
    146       [],
    147       [#get_holder("PERSON_NATIONALITY")]
    148     )
    149 
    150     v(0.5em)
    151 
    152     text()[Actual address of domicile/registered office (incl. country):]
    153 
    154     v(0.3em)
    155 
    156     table(
    157       columns: (1fr),
    158       stroke: 0.5pt + black,
    159       inset: 5pt,
    160       [#get_holder("PERSON_DOMICILE_REGISTERED_OFFICE")]
    161     )
    162 
    163     v(1em)
    164   }
    165 
    166   v(0.5em)
    167 
    168   // Section 2: Premium Payer
    169 [= 2. Person actually (not in a fiduciary capacity) paying the premiums (to be filled in if not identical with point 1 above):]
    170 
    171   v(0.5em)
    172 
    173   let same_payer = get("PREMIUM_PAYER_SAME_AS_HOLDER")
    174   let premium_payers = get("PREMIUM_PAYER_LIST", default: ())
    175   let has_payers = not same_payer and type(premium_payers) == array and premium_payers.len() > 0
    176 
    177   if has_payers {
    178     for payer in premium_payers {
    179       let get_payer(key) = {
    180         payer.at(key, default: "")
    181       }
    182 
    183       text()[Full anme/entity:]
    184 
    185       v(0.3em)
    186 
    187       table(
    188         columns: (1fr),
    189         stroke: 0.5pt + black,
    190         inset: 5pt,
    191         [#get_payer("PERSON_ENTITY_NAME")]
    192       )
    193 
    194       v(0.5em)
    195 
    196       table(
    197         columns: (40%, 10%, 50%),
    198         stroke: 0.5pt + black,
    199         inset: 5pt,
    200         [Date of birth:],
    201         [],
    202         [Nationality:],
    203         [#get_payer("PERSON_DATE_OF_BIRTH")],
    204         [],
    205         [#get_payer("PERSON_NATIONALITY")]
    206       )
    207 
    208       v(0.5em)
    209 
    210       text()[Actual address of domicile/registered office (incl. country):]
    211 
    212       v(0.3em)
    213 
    214       table(
    215         columns: (1fr),
    216         stroke: 0.5pt + black,
    217         inset: 5pt,
    218         [#get_payer("PERSON_DOMICILE_REGISTERED_OFFICE")]
    219       )
    220 
    221       v(1em)
    222     }
    223   } else {
    224     text()[Full name/entity:]
    225 
    226     v(0.3em)
    227 
    228     table(
    229       columns: (1fr),
    230       stroke: 0.5pt + black,
    231       inset: 5pt,
    232       []
    233     )
    234 
    235     v(0.5em)
    236 
    237     table(
    238       columns: (40%, 10%, 50%),
    239       stroke: 0.5pt + black,
    240       inset: 5pt,
    241       [Date of birth:],
    242       [],
    243       [Nationality:],
    244       [],
    245       [],
    246       []
    247     )
    248 
    249     v(0.5em)
    250 
    251     text()[Actual address of domicile/registered office (incl. country):]
    252 
    253     v(0.3em)
    254 
    255     table(
    256       columns: (1fr),
    257       stroke: 0.5pt + black,
    258       inset: 5pt,
    259       []
    260     )
    261 
    262     v(1em)
    263   }
    264 
    265   v(1em)
    266 
    267   text()[The contracting partner hereby undertakes to automatically inform the financial intermediary of any changes. The contracting partner hereby also declares having been given permission by the above individuals and/or entities to transmit their data to the financial intermediary.]
    268 
    269   v(1.5em)
    270 
    271   // Signature
    272   table(
    273     columns: (40%, 10%, 50%),
    274     stroke: 0.5pt + black,
    275     inset: 5pt,
    276     [Date:],
    277     [],
    278     [Signature(s):],
    279     [#get("SIGN_DATE")],
    280     [],
    281     [#get("SIGNATURE")]
    282   )
    283 
    284   v(1em)
    285 
    286   text(size: 9pt, style: "italic")[
    287     It is a criminal offence to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery).
    288   ]
    289 }