/* This file is part of GNU Taler (C) 2022 Taler Systems S.A. GNU Taler is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Taler; see the file COPYING. If not, see */ import type { AbsoluteTime } from "@gnu-taler/taler-util"; import type { FlexibleForm, InternationalizationAPI } from "@gnu-taler/web-util/browser"; import { BaseForm } from "./declaration.js"; import { resolutionSection } from "./simplest.js"; export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): FlexibleForm => ({ design: [ { title: i18n.str`Information on life insurance policies with separately managed accounts/securities accounts`, fields: [ { type: "textArea", props: { name: "contractingPartner", label: i18n.str`Contracting partner`, }, }, { type: "text", props: { name: "contractualRelationship", label: i18n.str`Name or number of the contractual relationship between the contracting party and the financial intermediary`, }, }, { type: "text", props: { name: "insurancePolicy", label: i18n.str`Insurance policy`, }, }, { type: "caption", props: { label: i18n.str`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.`, }, }, { type: "caption", props: { label: i18n.str`In relation with the above insurance policy, the contracting partner gives the following further details`, }, }, { type: "group", props: { before: i18n.str`Policy holder`, fields: [ { type: "text", props: { name: "holder.fullName", label: i18n.str`Last name(s), first name(s)/entity`, }, }, { type: "text", props: { name: "holder.address", label: i18n.str`Actual address of domicile/registered office (incl. country)`, }, }, { type: "absoluteTime", props: { name: "holder.dateOfBirth", label: i18n.str`Date of birth`, pattern: "dd/MM/yyyy", // help: i18n.str`format 'dd/MM/yyyy'`, }, }, { type: "text", props: { name: "holder.nationality", label: i18n.str`Nationality`, }, }, ], }, }, { type: "group", props: { before: i18n.str`Person actually (not in a fiduciary capacity) paying the premiums (to be filled in if not identical with point 1 above)`, fields: [ { type: "text", props: { name: "premiumPayer.fullName", label: i18n.str`Last name(s), first name(s)/entity`, }, }, { type: "text", props: { name: "premiumPayer.address", label: i18n.str`Actual address of domicile/registered office (incl. country)`, }, }, { type: "absoluteTime", props: { name: "premiumPayer.dateOfBirth", label: i18n.str`Date of birth`, pattern: "dd/MM/yyyy", // help: i18n.str`format 'dd/MM/yyyy'`, }, }, { type: "text", props: { name: "premiumPayer.nationality", label: i18n.str`Nationality`, }, }, ], }, }, { type: "caption", props: { label: i18n.str`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`, }, }, { type: "text", props: { name: "signature", label: i18n.str`Signature`, }, }, { type: "caption", props: { label: i18n.str`It is a criminal offense to deliberately provide false information on this form (article 251 of the Swiss Criminal Code, document forgery)`, }, }, ], }, resolutionSection(current, i18n), ], }); namespace Form902_15 { interface Person { fullName: string; address: string; dateOfBirth: AbsoluteTime; nationality: string; } export interface Form extends BaseForm { contractingPartner: string; contractualRelationship: string; insurancePolicy: string; holder: Person; premiumsPayer: Person; signature: string; } }