feat(fd): make the Payment dialog the FD Dashboard's Renew action too, redesign it

The Payment dialog (Transfer to Savings / Reinvest Full / Reinvest Principal Only / Partial
Reinvest, works whether an FD is Active or Matured) already had a complete, correct backend
implementation for every closure type -- including one this session found and fixed a real gap
in on the backend side (Reinvest Principal Only silently stranded its leftover interest). Rather
than duplicating that logic in a second, narrower dialog, the FD Dashboard's Renew action now
opens this same dialog in a `dashboardRenewal` mode: every closure type is still available, but
the Closed On Date is computed from the product's grace window instead of picked freely
(backdated to the original maturity date within grace, today once it's passed, picker hidden so
it can't be moved off that value), and submit() calls the new gap-interest pre-step endpoint
first when past grace, before the same generic `payment` command every other caller already used.

Also: full visual redesign (bigger dialog, gradient header, per-option accent colors, refined
spacing) applied to both entry points since they're the same component now; removes the native
"Close" action from a Matured FD's Account Actions menu, since what happens at maturity now
goes through the nightly job or this dialog, not a separate close command that bypassed both.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-24 16:12:45 +05:30
co-authored by Claude Sonnet 5
parent a652ce1093
commit 1eaa8cc8cf
7 changed files with 480 additions and 242 deletions
+13
View File
@@ -55,6 +55,19 @@
box-shadow: none;
}
// ===== Payment / Renewal Dialog Panel =====
.pmt-dialog-panel .mat-mdc-dialog-container .mdc-dialog__surface {
padding: 0 !important;
border-radius: 16px !important;
overflow: hidden !important;
box-shadow: 0 20px 40px rgb(15 23 42 / 25%) !important;
}
.pmt-dialog-panel .mat-mdc-dialog-content {
padding: 0 !important;
max-height: none !important;
}
.ipd-dialog .mdc-dialog__surface {
border-radius: 20px !important;
background: transparent !important;