summaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/forms/902_4e.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aml-backoffice-ui/src/forms/902_4e.ts')
-rw-r--r--packages/aml-backoffice-ui/src/forms/902_4e.ts135
1 files changed, 75 insertions, 60 deletions
diff --git a/packages/aml-backoffice-ui/src/forms/902_4e.ts b/packages/aml-backoffice-ui/src/forms/902_4e.ts
index b31a8dcba..7a3af8731 100644
--- a/packages/aml-backoffice-ui/src/forms/902_4e.ts
+++ b/packages/aml-backoffice-ui/src/forms/902_4e.ts
@@ -1,11 +1,26 @@
+/*
+ This file is part of GNU Taler
+ (C) 2022-2024 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 <http://www.gnu.org/licenses/>
+ */
import type { AbsoluteTime, TranslatedString } from "@gnu-taler/taler-util";
-import type { FlexibleForm, FormState, InternationalizationAPI } from "@gnu-taler/web-util/browser";
+import type { FormState, InternationalizationAPI } from "@gnu-taler/web-util/browser";
import { h as create } from "preact";
-import { resolutionSection } from "./simplest.js";
-import { BaseForm } from "./declaration.js";
+import { BaseForm } from "../context/ui-forms.js";
import { ArrowRightIcon, ChevronRightIcon } from "./icons.js";
+import { resolutionSection } from "./simplest.js";
-export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): FlexibleForm<Form902_4.Form> => ({
+export const v1 = (i18n: InternationalizationAPI) => ({
design: [
{
title: i18n.str`Risk Profile AMLA`,
@@ -14,7 +29,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`The member performs additional clarifications if the business relationship or the transaction is classified as increased risk (Art. 56 SRO Regulations)`,
before: create(ArrowRightIcon, { class: "h-6 w-6" }),
@@ -22,7 +37,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "text",
- props: {
+ properties: {
name: "customer",
label: i18n.str`Customer`,
help: i18n.str`Pursuant identification form (VQF doc. Nr. 902.1) numeral 1`,
@@ -36,7 +51,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`This evaluation has to be completed by all members for every business relationship`,
before: create(ArrowRightIcon, { class: "h-6 w-6" }),
@@ -44,7 +59,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Foreign PEP`,
// tooltip:
// i18n.str`Definition see Art. 7 lit. g numeral 1 SRO Regulations`,
@@ -66,7 +81,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label:
i18n.str`Domestic PEP and PEP of International Organizations`,
// tooltip:
@@ -95,7 +110,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "absoluteTime",
- props: {
+ properties: {
label:
i18n.str`The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on`,
name: "pep.when",
@@ -111,7 +126,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`This evaluation has to be completed by all members for every business relationship`,
before: create(ArrowRightIcon, { class: "h-6 w-6" }),
@@ -119,7 +134,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: '"High risk" or non-cooperative country' as TranslatedString,
help: 'Is the customer, the beneficial owner or the controlling person or authorized representative in a country considered by the FATF "high risk" or non-cooperative and for which FATF requires increased diligence?' as TranslatedString,
name: "highRisk.evaluation",
@@ -139,7 +154,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "absoluteTime",
- props: {
+ properties: {
label:
i18n.str`The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on`,
name: "highRisk.when",
@@ -154,7 +169,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`This evaluation has to be completed by all members who have in total more than 20 customers for every business relationship. At least two risk categories have to be chosen and assessed`,
before: create(ArrowRightIcon, { class: "h-6 w-6" }),
@@ -162,12 +177,12 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`a) Country risk (nationality)`,
fields: [
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Domicile/residential address`,
name: "evaluation.nationality.address",
choices: [
@@ -189,7 +204,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Nationality`,
name: "evaluation.nationality.nationality",
choices: [
@@ -207,7 +222,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.nationality.risk",
choices: [
@@ -234,12 +249,12 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`b) Country risk (business activity)`,
fields: [
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Place of business activity`,
name: "evaluation.business.place",
choices: [
@@ -257,7 +272,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.business.risk",
choices: [
@@ -284,19 +299,19 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`c) Country risk (payments)`,
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Country of origin and destination of frequent payments (if known)`,
},
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.payments.risk",
choices: [
@@ -323,12 +338,12 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`d) Industry risk`,
fields: [
{
type: "choiceStacked",
- props: {
+ properties: {
label:
i18n.str`Nature of customer's business activity`,
name: "evaluation.industry.nature",
@@ -347,7 +362,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.payments.risk",
choices: [
@@ -384,19 +399,19 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`e) Contact risk`,
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Types of contact to the customer/ beneficial owner of the assets`,
},
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.contact.risk",
choices: [
@@ -423,19 +438,19 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`f) Product risk`,
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Nature of services and products requested by the customer`,
},
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.product.risk",
choices: [
@@ -482,19 +497,19 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before: i18n.str`g) Criteria defined by the member`,
fields: [
{
type: "text",
- props: {
+ properties: {
label: i18n.str`Criteria definition`,
name: "evaluation.custom.definition",
},
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk level`,
name: "evaluation.custom.risk",
choices: [
@@ -518,20 +533,20 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Overall assessment of the business relationship`,
},
},
{
type: "group",
- props: {
+ properties: {
before:
i18n.str`A business relationship is classified as increased risk if:`,
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Business relationship with PEP pursuant to numeral 1 (no exception possible)`,
before: create(ChevronRightIcon, { class: "h-6 w-6" }),
@@ -539,7 +554,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
label:
'Relationship with a person from a "high risk" or non-cooperative country according to numeral 2 (no exceptions possible)' as TranslatedString,
before: create(ChevronRightIcon, { class: "h-6 w-6" }),
@@ -547,7 +562,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Min. one criterion pursuant to numeral 3 was assessed with risk 2 or min. two criteria pursuant to numeral 3 were assessed with risk 1 (exception: justification by the member below why the business relationship overall does not have to be classified as increased risk despite the fact that individual risk criteria are increased)`,
before: create(ChevronRightIcon, { class: "h-6 w-6" }),
@@ -558,7 +573,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "textArea",
- props: {
+ properties: {
label:
i18n.str`Justification for differing risk assessment`,
name: "evaluation.overall.justification",
@@ -566,7 +581,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "choiceStacked",
- props: {
+ properties: {
label: i18n.str`Risk classified`,
name: "evaluation.overall.risk",
choices: [
@@ -585,7 +600,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "absoluteTime",
- props: {
+ properties: {
label:
i18n.str`The decision of the Senior executive body on the acceptance of a business relationship with a PEP was obtained on`,
name: "evaluation.when",
@@ -601,19 +616,19 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
fields: [
{
type: "group",
- props: {
+ properties: {
before: i18n.str`Criteria`,
fields: [
{
type: "caption",
- props: {
+ properties: {
label:
i18n.str`Classification as as increased risk is compulsory if`,
},
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-6 h-6" }),
label:
i18n.str`Transactions for which assets with an equivalent value of CHF 100'000.- or more are physically introduced at the beginning of the business relationship, either at once or in a staggered manner`,
@@ -621,7 +636,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-6 h-6" }),
label:
'Money and asset transfers ("money transfer") whereby a single transaction or multiple transactions which appear to be related reach or exceed the amount of CHF 5,000.-' as TranslatedString,
@@ -629,7 +644,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-6 h-6" }),
label:
'Payments from or to a country that is considered to be "high risk" or non-cooperative by the FATF and for which increased diligence is required' as TranslatedString,
@@ -640,13 +655,13 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "group",
- props: {
+ properties: {
before:
i18n.str`Additional criteria defined by the member`,
fields: [
{
type: "caption",
- props: {
+ properties: {
before: create(ArrowRightIcon, { class: "w-6 h-6" }),
label:
i18n.str`All members have to define min. 1 additional criterion for every business relationship to identify unusual transactions`,
@@ -654,20 +669,20 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "textArea",
- props: {
+ properties: {
label: i18n.str`Description`,
name: "criteria.additional",
},
},
{
type: "group",
- props: {
+ properties: {
before:
i18n.str`Possible criteria (Art. 59 para. 2 SRO Regulations)`,
fields: [
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-4 h-4" }),
label:
i18n.str`the amount of inflowing and outflowing assets`,
@@ -675,7 +690,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-4 h-4" }),
label:
i18n.str`type, volume and frequency of transactions usual to the business relationship (considerable variance would be unusual)`,
@@ -683,7 +698,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-4 h-4" }),
label:
i18n.str`type, volume and frequency of transactions usual to comparable business relationships (considerable variance would be unusual)`,
@@ -691,7 +706,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-4 h-4" }),
label:
i18n.str`description of expected transaction patterns which the client notify the member of (considerable variance would be unusual)`,
@@ -699,7 +714,7 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
{
type: "caption",
- props: {
+ properties: {
before: create(ChevronRightIcon, { class: "w-4 h-4" }),
label:
'The country of origin or destination of payments, especially in the case of payments from or to a country considered by the FATF as "high risk" or non-cooperative' as TranslatedString,
@@ -713,10 +728,10 @@ export const v1 = (i18n: InternationalizationAPI) => (current: BaseForm): Flexib
},
],
},
- resolutionSection(current, i18n),
+ resolutionSection(i18n),
],
behavior: function formBehavior(
- v: Partial<Form902_4.Form>,
+ // v: Partial<Form902_4.Form>,
): FormState<Form902_4.Form> {
return {
};