feat(ctsclearing): validation comparison popup, decided-item read-only view, and dialog-close fixes
build-run / Run Lint, Build and Deploy (push) Canceled after 0s
Publish Image in Docker Hub / build (push) Canceled after 0s
Playwright E2E Tests / Run Playwright Tests (push) Canceled after 0s
Tests / testRigor (push) Canceled after 0s

Adds a "Comparison Details" popup on the inward decision dialog showing
exactly what each automatic rule compared (amount figures vs words,
instrument date vs its valid-until window, balance vs amount, RBI
Positive Pay threshold, IQA sub-checks) instead of just the pass/fail
pill, mirroring InwardClearingValidationService.java's actual logic.
For an already-decided item, the stale/postdated "as of" date now shows
the decision date rather than today's live date.

Once a cheque is decided, the batch table's Validation column collapses
to a single outcome pill instead of permanently showing all 7 rule
badges, and the item-decision dialog itself switches to a read-only
decision summary (outcome, decisioned-on, note, settlement status)
instead of a re-openable Pass/Return form — the "Decide" action becomes
"View" for decided rows.

Also fixes two silently-broken directives: matTooltip and mat-dialog-close
were used throughout the decision dialogs without MatTooltipModule /
MatDialogClose being imported into the standalone components, so every
tooltip and every close button did nothing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Jaanu423
2026-07-22 18:29:18 +05:30
co-authored by Claude Sonnet 5
parent 0207cf85a3
commit a22f8e7e45
8 changed files with 799 additions and 73 deletions
@@ -24,6 +24,11 @@
color: rgb(0 0 0 / 50%);
margin-bottom: 2px;
}
.pill {
margin-left: 6px;
vertical-align: middle;
}
}
.mode-toggle {
@@ -36,6 +41,54 @@
}
}
.decided-summary {
padding: 14px 16px;
border-radius: 8px;
border-left: 4px solid rgb(0 0 0 / 30%);
background: rgb(0 0 0 / 4%);
&.ok {
border-left-color: #1a9c63;
background: #e8f8f0;
}
&.bad {
border-left-color: #d32f2f;
background: #fdeaea;
}
}
.decided-headline {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px;
}
.compare-row {
display: grid;
grid-template-columns: minmax(120px, 38%) 1fr;
gap: 6px 16px;
padding: 4px 0;
border-top: 1px solid rgb(255 255 255 / 60%);
&:first-of-type {
border-top: none;
}
}
.compare-label {
color: rgb(0 0 0 / 55%);
font-size: 0.72rem;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.compare-value {
font-size: 0.85rem;
word-break: break-word;
}
mat-form-field {
width: 100%;
}
@@ -45,6 +98,17 @@ mat-form-field {
font-size: 0.95rem;
}
.section-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
.section-title {
margin: 20px 0 8px;
}
}
.muted {
color: rgb(0 0 0 / 50%);
font-size: 0.82rem;