feat(clients): cite UAPA Sec. 51-A / RBI KYC Direction and list-currency date in sanctions dialog

The sanctions verification dialog said which lists a client was screened
against but not the regulatory basis for doing so, nor when that list
data was last refreshed. Added a regulatory-basis note and a "List Data
As Of" row (sourced from the backend's newly-exposed listDataAsOf) to
both the cleared and match-found panels.
This commit is contained in:
2026-07-30 10:30:45 +05:30
parent 5dc284bd1c
commit 4ea833ff49
@@ -42,6 +42,7 @@ import { ClientsService } from 'app/clients/clients.service';
<strong>UN Security Council</strong> &amp;
<strong>Financial Intelligence Unit - India (FIU-IND under UNSC Resolution 2231)</strong>
</p>
<p class="regulatory-note">{{ regulatoryBasis }}</p>
</div>
}
@if (!verifying && !matchFound && !errorOccurred) {
@@ -69,7 +70,14 @@ import { ClientsService } from 'app/clients/clients.service';
<span class="meta-label">Database</span>
<span class="meta-value">UN SC Consolidated List</span>
</div>
@if (listDataAsOf) {
<div class="meta-row">
<span class="meta-label">List Data As Of</span>
<span class="meta-value">{{ listDataAsOf }}</span>
</div>
}
</div>
<p class="regulatory-note">{{ regulatoryBasis }}</p>
</div>
}
@if (!verifying && matchFound) {
@@ -96,11 +104,18 @@ import { ClientsService } from 'app/clients/clients.service';
<span class="meta-label">Database</span>
<span class="meta-value">UN SC Consolidated List</span>
</div>
@if (listDataAsOf) {
<div class="meta-row">
<span class="meta-label">List Data As Of</span>
<span class="meta-value">{{ listDataAsOf }}</span>
</div>
}
</div>
<div class="escalate-banner">
<fa-icon icon="exclamation-circle" class="escalate-icon"></fa-icon>
<span><strong>Escalate to Principal Officer immediately.</strong> Account opening blocked.</span>
</div>
<p class="regulatory-note">{{ regulatoryBasis }}</p>
</div>
}
@if (!verifying && errorOccurred) {
@@ -207,6 +222,15 @@ import { ClientsService } from 'app/clients/clients.service';
text-align: center;
}
.regulatory-note {
font-size: 11px;
color: #9ca3af;
line-height: 1.5;
text-align: center;
margin: 8px 0 0;
max-width: 420px;
}
.approve-card {
display: flex;
flex-direction: column;
@@ -524,6 +548,10 @@ export class SanctionsVerifyDialogComponent implements OnInit, OnDestroy {
errorOccurred = false;
errorMessage = '';
screeningLogId: number | null = null;
listDataAsOf: string | null = null;
regulatoryBasis =
'Screened as per Section 51-A of the Unlawful Activities (Prevention) Act, 1967 and the RBI Master Direction on KYC.';
screenedDate = new Date().toLocaleDateString('en-IN', { day: '2-digit', month: 'short', year: 'numeric' });
progressValue = 0;
@@ -624,6 +652,13 @@ export class SanctionsVerifyDialogComponent implements OnInit, OnDestroy {
'Unable to connect to sanctions screening service.';
} else {
this.screeningLogId = this.apiResult?.screeningLogId || null;
this.listDataAsOf = this.apiResult?.listDataAsOf
? new Date(this.apiResult.listDataAsOf).toLocaleDateString('en-IN', {
day: '2-digit',
month: 'short',
year: 'numeric'
})
: null;
if (this.apiResult?.matchFound) {
this.matchFound = true;
this.matchCount = this.apiResult.matchCount || 0;