fix: update sponsor DD approvals, cashier transaction entry, FIU and dividend declaration
This commit is contained in:
+22
-3
@@ -767,7 +767,7 @@ export class AmlFlaggedTransactionsComponent implements OnInit, AfterViewInit, O
|
||||
// The day narrows everything else: the status chips and the severity tiles are asking "of what is in view", and
|
||||
// an officer who has picked a day expects their counts to describe that day rather than the whole feed.
|
||||
const byDay = this.allAlerts.filter((a) => this.inActivePeriod(a));
|
||||
const byStatus = this.activeStatus ? byDay.filter((a) => a.status === this.activeStatus) : byDay;
|
||||
const byStatus = this.activeStatus ? byDay.filter((a) => this.matchesStatus(a, this.activeStatus)) : byDay;
|
||||
const bySeverity =
|
||||
this.activeSeverity === null ? byStatus : byStatus.filter((a) => this.severityBand(a) === this.activeSeverity);
|
||||
// Ranked last, over what the other filters left: "top 10 this month" is the ten busiest rules of that month, not
|
||||
@@ -914,7 +914,7 @@ export class AmlFlaggedTransactionsComponent implements OnInit, AfterViewInit, O
|
||||
|
||||
get summaryTotal(): number {
|
||||
const pool = this.allAlerts.filter((a) => this.inActivePeriod(a));
|
||||
return this.activeStatus ? pool.filter((a) => a.status === this.activeStatus).length : pool.length;
|
||||
return this.activeStatus ? pool.filter((a) => this.matchesStatus(a, this.activeStatus)).length : pool.length;
|
||||
}
|
||||
|
||||
private recomputeStatusCounts(): void {
|
||||
@@ -924,11 +924,30 @@ export class AmlFlaggedTransactionsComponent implements OnInit, AfterViewInit, O
|
||||
this.statusCounts = { '': pool.length };
|
||||
for (const s of this.statusFilters) {
|
||||
if (s.key) {
|
||||
this.statusCounts[s.key] = pool.filter((a) => a.status === s.key).length;
|
||||
this.statusCounts[s.key] = pool.filter((a) => this.matchesStatus(a, s.key)).length;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether an alert belongs under a status chip.
|
||||
*
|
||||
* Not an equality test, deliberately. Matching the chip's key exactly meant any status the chip list did not name
|
||||
* belonged to no chip at all while still counting toward "All alerts" — so an alert could sit in the feed, need a
|
||||
* decision, and appear nowhere an officer looks for work. That is what UNDER_REVIEW did here: five undecided
|
||||
* alerts, the largest ₹18,00,000, behind a pending figure that read 1.
|
||||
*
|
||||
* Pending is therefore defined by what has not been decided rather than by one status name. Any status that is
|
||||
* neither whitelisted nor escalated surfaces under Raised on its own, which is the safe direction to fail — an
|
||||
* alert shown as work that turns out to be finished costs a glance; one hidden costs a filing.
|
||||
*/
|
||||
private matchesStatus(alert: any, key: string): boolean {
|
||||
if (key === 'RAISED') {
|
||||
return alert?.status !== 'WHITELISTED' && alert?.status !== 'ESCALATED';
|
||||
}
|
||||
return alert?.status === key;
|
||||
}
|
||||
|
||||
statusClass(status: string): string {
|
||||
return 'alert-status status-' + (status || 'raised').toLowerCase();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user