From e8d1a1d5febc8acff2c9f62c80a511a2197af694 Mon Sep 17 00:00:00 2001 From: Shubham Kumar Date: Tue, 10 Feb 2026 05:06:27 +0530 Subject: [PATCH] WEB-655 feat(clients): filter datatables by client subtype (Person/Entity) (#3120) --- .../clients-view/clients-view.component.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/app/clients/clients-view/clients-view.component.ts b/src/app/clients/clients-view/clients-view.component.ts index 07adc4deb..2df575ceb 100644 --- a/src/app/clients/clients-view/clients-view.component.ts +++ b/src/app/clients/clients-view/clients-view.component.ts @@ -24,6 +24,7 @@ import { CaptureImageDialogComponent } from './custom-dialogs/capture-image-dial /** Custom Services */ import { ClientsService } from '../clients.service'; +import { LegalFormId } from '../models/legal-form.enum'; import { MatCard, MatCardHeader, @@ -144,11 +145,26 @@ export class ClientsViewComponent implements OnInit { constructor() { this.route.data.subscribe((data: { clientViewData: any; clientTemplateData: any; clientDatatables: any }) => { this.clientViewData = data.clientViewData; - this.clientDatatables = data.clientDatatables; + this.clientDatatables = this.filterDatatablesByClientSubtype( + data.clientDatatables, + data.clientViewData?.legalForm?.id + ); this.clientTemplateData = data.clientTemplateData; }); } + /** + * Filters datatables based on the client's legal form (Person or Entity). + * Datatables without an entitySubType are kept visible for all client types. + */ + private filterDatatablesByClientSubtype(datatables: any[], legalFormId: number): any[] { + if (!datatables || !legalFormId) { + return datatables || []; + } + const subtype = legalFormId === LegalFormId.PERSON ? 'person' : 'entity'; + return datatables.filter((dt: any) => !dt.entitySubType || dt.entitySubType.toLowerCase() === subtype); + } + ngOnInit() { this.clientsService.getClientProfileImage(this.clientViewData.id).subscribe({ next: (base64Image: any) => {