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; } }