taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 2bea57adb0c087ce2bf01e96f4ad999443d41a29
parent c90739b6a13ffa7fa1e892ad71d6bc22d722b318
Author: Florian Dold <florian@dold.me>
Date:   Fri,  7 Mar 2025 18:52:59 +0100

VQF forms WIP

Diffstat:
Mpackages/web-util/src/forms/gana/VQF_902_1_all.ts | 130+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mpackages/web-util/src/forms/gana/VQF_902_1_customer.ts | 20--------------------
Mpackages/web-util/src/forms/gana/VQF_902_5.ts | 18+++++++-----------
Mpackages/web-util/src/forms/gana/taler_form_attributes.ts | 39+++++++++++++++------------------------
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)