From e991c8a88104e0b01e38c1b504fc0b1d0c62f03e Mon Sep 17 00:00:00 2001 From: Jose Alberto Hernandez Date: Mon, 14 Nov 2022 20:38:31 -0600 Subject: [PATCH] Client datatables to be shown on the Client creation page based on legal form --- .../client-general-step.component.ts | 7 ++++-- .../create-client.component.html | 4 ++-- .../create-client/create-client.component.ts | 22 +++++++++++++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts b/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts index 59925fd45..9777df8be 100644 --- a/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts +++ b/src/app/clients/client-stepper/client-general-step/client-general-step.component.ts @@ -1,5 +1,5 @@ /** Angular Imports */ -import { Component, OnInit, Input } from '@angular/core'; +import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; import { Dates } from 'app/core/utils/dates'; @@ -16,6 +16,8 @@ import { SettingsService } from 'app/settings/settings.service'; }) export class ClientGeneralStepComponent implements OnInit { + @Output() legalFormChangeEvent = new EventEmitter<{ legalForm: number }>(); + /** Minimum date allowed. */ minDate = new Date(2000, 0, 1); /** Maximum date allowed. */ @@ -104,7 +106,8 @@ export class ClientGeneralStepComponent implements OnInit { * Adds controls conditionally. */ buildDependencies() { - this.createClientForm.get('legalFormId').valueChanges.subscribe((legalFormId: any) => { + this.createClientForm.get('legalFormId').valueChanges.subscribe((legalFormId: number) => { + this.legalFormChangeEvent.emit({ legalForm: legalFormId }); if (legalFormId === 1) { this.createClientForm.removeControl('fullname'); this.createClientForm.removeControl('clientNonPersonDetails'); diff --git a/src/app/clients/create-client/create-client.component.html b/src/app/clients/create-client/create-client.component.html index 6db15d6ac..91ae2024f 100644 --- a/src/app/clients/create-client/create-client.component.html +++ b/src/app/clients/create-client/create-client.component.html @@ -26,7 +26,7 @@ GENERAL - + @@ -50,7 +50,7 @@ - + {{datatable.registeredTableName}} diff --git a/src/app/clients/create-client/create-client.component.ts b/src/app/clients/create-client/create-client.component.ts index 2e0e1afeb..8caa47095 100644 --- a/src/app/clients/create-client/create-client.component.ts +++ b/src/app/clients/create-client/create-client.component.ts @@ -33,6 +33,9 @@ export class CreateClientComponent { /** Get handle on dtclient tags in the template */ @ViewChildren('dtclient') clientDatatables: QueryList; + datatables: any = []; + legalFormType = 1; + /** Client Template */ clientTemplate: any; /** Client Address Field Config */ @@ -52,6 +55,7 @@ export class CreateClientComponent { this.route.data.subscribe((data: { clientTemplate: any, clientAddressFieldConfig: any }) => { this.clientTemplate = data.clientTemplate; this.clientAddressFieldConfig = data.clientAddressFieldConfig; + this.setDatatables(); }); } @@ -94,6 +98,24 @@ export class CreateClientComponent { return areValids; } + setDatatables(): void { + this.datatables = []; + let legalFormTypeVal = 'Person'; + if (this.legalFormType === 2) { + legalFormTypeVal = 'Entity'; + } + this.clientTemplate.datatables.forEach((datatable: any) => { + if (datatable.entitySubType === legalFormTypeVal) { + this.datatables.push(datatable); + } + }); + } + + legalFormChange(eventData: { legalForm: number }) { + this.legalFormType = eventData.legalForm; + this.setDatatables(); + } + /** * Submits the create client form. */