commit 2bea57adb0c087ce2bf01e96f4ad999443d41a29
parent c90739b6a13ffa7fa1e892ad71d6bc22d722b318
Author: Florian Dold <florian@dold.me>
Date: Fri, 7 Mar 2025 18:52:59 +0100
VQF forms WIP
Diffstat:
4 files changed, 90 insertions(+), 117 deletions(-)
diff --git a/packages/web-util/src/forms/gana/VQF_902_1_all.ts b/packages/web-util/src/forms/gana/VQF_902_1_all.ts
@@ -20,38 +20,23 @@ export function VQF_902_1_all(
type: "double-column",
sections: [
{
- title: i18n.str`Information on the beneficial owner of the assets and/or controlling person`,
- description: i18n.str`Establishment of the beneficial owner of the assets and/or controlling person`,
+ title: i18n.str`Information on customer`,
+ description: i18n.str`The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the
+member act as director of a domiciliary company, this domiciliary company is the customer.`,
fields: [
{
- id: TalerFormAttributes.VQF_902_1.CUSTOMER_TYPE.id,
+ id: TalerFormAttributes.VQF_902_1.CUSTOMER_INFO_TYPE.id,
label: i18n.str`Customer type`,
type: "choiceStacked",
choices: [
{
- value: "NATURAL",
+ value: "NATURAL_PERSON",
label: i18n.str`Natural person`,
},
{
- value: "OPERATIONAL",
- label: i18n.str`Operational legal entity or partnership`,
+ value: "LEGAL_ENTITY",
+ label: i18n.str`Legal entity`,
},
- // {
- // value: "FOUNDATION",
- // label: i18n.str`Foundation`,
- // },
- // {
- // value: "TRUST",
- // label: i18n.str`Trust`,
- // },
- // {
- // value: "LIFE_INSURANCE",
- // label: i18n.str`Life insurance`,
- // },
- // {
- // value: "OTHER",
- // label: i18n.str`Other`,
- // },
],
required: true,
},
@@ -59,7 +44,10 @@ export function VQF_902_1_all(
},
{
title: i18n.str`Information on customer`,
- description: i18n.str`The customer is the person with whom the member concludes the contract with regard to the financial service provided (civil law). Does the member act as director of a domiciliary company, this domiciliary company is the customer.`,
+ description: i18n.str`The customer is a natural person`,
+ hide(root) {
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
+ },
fields: [
{
id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_FULL_NAME.id,
@@ -67,7 +55,7 @@ export function VQF_902_1_all(
type: "text",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
{
@@ -76,7 +64,7 @@ export function VQF_902_1_all(
type: "textArea",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
{
@@ -85,7 +73,7 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
{
@@ -94,7 +82,7 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO"] !== "NATURAL_PERSON";
},
},
{
@@ -105,7 +93,7 @@ export function VQF_902_1_all(
pattern: "dd/MM/yyyy",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
{
@@ -115,36 +103,35 @@ export function VQF_902_1_all(
choices: countryNationalityList(i18n),
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
- // {
- // id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_NATIONAL_ID.id,
- // label: i18n.str`Identification document`,
- // type: "text",
- // required: true,
- // hide(value, root) {
- // return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
- // },
- // },
{
- id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_NATIONAL_ID_COPY
- .id,
- label: i18n.str`Copy of identification document`,
+ id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_NATIONAL_ID.id,
+ label: i18n.str`Identification document`,
type: "file",
accept: "application/pdf",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL_PERSON";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
+ ],
+ },
+ {
+ title: i18n.str`Information on customer (sole proprietor)`,
+ description: i18n.str`The customer is a sole proprietor`,
+ hide(root) {
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
+ },
+ fields: [
{
id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_NAME.id,
label: i18n.str`Company name`,
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
{
@@ -154,27 +141,46 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
},
},
- // {
- // id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID.id,
- // label: i18n.str`Company identification document`,
- // type: "text",
- // required: false,
- // hide(value, root) {
- // return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
- // },
- // },
{
- id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID_COPY
+ id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID_DOC
.id,
- label: i18n.str`Copy of company identification document`,
+ label: i18n.str`Company identification document`,
type: "file",
+ required: false,
accept: "application/pdf",
+ hide(value, root) {
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "NATURAL_PERSON";
+ },
+ },
+ ],
+ },
+ {
+ title: i18n.str`Information on customer`,
+ description: i18n.str`The customer is a legal entity`,
+ hide(root) {
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "LEGAL_ENTITY";
+ },
+ fields: [
+ {
+ id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_NAME.id,
+ label: i18n.str`Company name`,
+ type: "text",
+ required: false,
+ hide(value, root) {
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "LEGAL_ENTITY";
+ },
+ },
+ {
+ id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_REGISTERED_OFFICE
+ .id,
+ label: i18n.str`Registered office`,
+ type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_INFO_TYPE"] !== "LEGAL_ENTITY";
},
},
{
@@ -183,7 +189,7 @@ export function VQF_902_1_all(
type: "text",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
{
@@ -192,7 +198,7 @@ export function VQF_902_1_all(
type: "textArea",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
{
@@ -202,7 +208,7 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
{
@@ -211,7 +217,7 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
{
@@ -220,7 +226,7 @@ export function VQF_902_1_all(
type: "text",
required: false,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
// {
@@ -239,7 +245,7 @@ export function VQF_902_1_all(
accept: "application/pdf",
required: true,
hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "OPERATIONAL";
+ return !!root && root["CUSTOMER_TYPE"] !== "LEGAL_ENTITY";
},
},
],
diff --git a/packages/web-util/src/forms/gana/VQF_902_1_customer.ts b/packages/web-util/src/forms/gana/VQF_902_1_customer.ts
@@ -154,26 +154,6 @@ export function VQF_902_1_customer(
return !!root && root["CUSTOMER_TYPE"] !== "NATURAL";
},
},
- // {
- // id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID.id,
- // label: i18n.str`Company identification document`,
- // type: "text",
- // required: false,
- // hide(value, root) {
- // return !!root && root["CUSTOMER_TYPE"] !== "NATURAL";
- // },
- // },
- {
- id: TalerFormAttributes.VQF_902_1.CUSTOMER_NATURAL_COMPANY_ID_COPY
- .id,
- label: i18n.str`Copy of company identification document`,
- type: "file",
- accept: "application/pdf",
- required: false,
- hide(value, root) {
- return !!root && root["CUSTOMER_TYPE"] !== "NATURAL";
- },
- },
{
id: TalerFormAttributes.VQF_902_1.CUSTOMER_ENTITY_COMPANY_NAME.id,
label: i18n.str`Company name`,
diff --git a/packages/web-util/src/forms/gana/VQF_902_5.ts b/packages/web-util/src/forms/gana/VQF_902_5.ts
@@ -2,10 +2,6 @@ import {
DoubleColumnFormDesign,
InternationalizationAPI,
} from "../../index.browser.js";
-import {
- countryNameList,
- currencyNameList,
-} from "../../utils/select-ui-lists.js";
import { TalerFormAttributes } from "./taler_form_attributes.js";
export function VQF_902_5(
@@ -45,13 +41,13 @@ export function VQF_902_5(
type: "text",
required: true,
},
- {
- id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CURRENCY.id,
- label: i18n.str`Currency`,
- type: "selectOne",
- choices: currencyNameList(i18n),
- required: true,
- },
+ // {
+ // id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_CURRENCY.id,
+ // label: i18n.str`Currency`,
+ // type: "selectOne",
+ // choices: currencyNameList(i18n),
+ // required: true,
+ // },
{
id: TalerFormAttributes.VQF_902_5.BIZREL_ORIGIN_AMOUNT.id,
label: i18n.str`Amount`,
diff --git a/packages/web-util/src/forms/gana/taler_form_attributes.ts b/packages/web-util/src/forms/gana/taler_form_attributes.ts
@@ -166,30 +166,30 @@ export namespace TalerFormAttributes {
description: "Customer system ID required to correlate different AML forms.",
} as FormFieldInfo,
/**
- * Description: If the customer is a natural person.
+ * Description:
*
- * GANA Type: AbsoluteDate
+ * GANA Type: 'NATURAL_PERSON' | 'LEGAL_ENTITY'
*/
- CUSTOMER_NATURAL_BIRTHDATE: {
- id: "CUSTOMER_NATURAL_BIRTHDATE" as UIHandlerId,
- description: "If the customer is a natural person.",
+ CUSTOMER_INFO_TYPE: {
+ id: "CUSTOMER_INFO_TYPE" as UIHandlerId,
+ description: "",
} as FormFieldInfo,
/**
* Description: If the customer is a natural person.
*
- * GANA Type: String
+ * GANA Type: AbsoluteDate
*/
- CUSTOMER_NATURAL_COMPANY_ID: {
- id: "CUSTOMER_NATURAL_COMPANY_ID" as UIHandlerId,
+ CUSTOMER_NATURAL_BIRTHDATE: {
+ id: "CUSTOMER_NATURAL_BIRTHDATE" as UIHandlerId,
description: "If the customer is a natural person.",
} as FormFieldInfo,
/**
* Description: If the customer is a natural person.
*
- * GANA Type: File
+ * GANA Type: String
*/
- CUSTOMER_NATURAL_COMPANY_ID_COPY: {
- id: "CUSTOMER_NATURAL_COMPANY_ID_COPY" as UIHandlerId,
+ CUSTOMER_NATURAL_COMPANY_ID_DOC: {
+ id: "CUSTOMER_NATURAL_COMPANY_ID_DOC" as UIHandlerId,
description: "If the customer is a natural person.",
} as FormFieldInfo,
/**
@@ -1856,13 +1856,13 @@ export namespace TalerFormAttributes {
description: "Income and assets, liabilities (estimated)",
} as FormFieldInfo,
/**
- * Description: Amount of the involved assets.
+ * Description: Nature, amount and currency of the involved assets.
*
* GANA Type: Amount
*/
BIZREL_ORIGIN_AMOUNT: {
id: "BIZREL_ORIGIN_AMOUNT" as UIHandlerId,
- description: "Amount of the involved assets.",
+ description: "Nature, amount and currency of the involved assets.",
} as FormFieldInfo,
/**
* Description:
@@ -1883,15 +1883,6 @@ export namespace TalerFormAttributes {
description: "",
} as FormFieldInfo,
/**
- * Description: Currency of the involved assets.
- *
- * GANA Type: Amount
- */
- BIZREL_ORIGIN_CURRENCY: {
- id: "BIZREL_ORIGIN_CURRENCY" as UIHandlerId,
- description: "Currency of the involved assets.",
- } as FormFieldInfo,
- /**
* Description: Detail description of the origings
*
* GANA Type: Paragraph
@@ -1901,13 +1892,13 @@ export namespace TalerFormAttributes {
description: "Detail description of the origings",
} as FormFieldInfo,
/**
- * Description: Nature of the involved assets.
+ * Description:
*
* GANA Type: String
*/
BIZREL_ORIGIN_NATURE: {
id: "BIZREL_ORIGIN_NATURE" as UIHandlerId,
- description: "Nature of the involved assets.",
+ description: "",
} as FormFieldInfo,
/**
* Description: Profession, business activities, etc. (former, current, potentially planned)