From 90f26d32b76e13f52652b9a44ca40c64140e3fa8 Mon Sep 17 00:00:00 2001 From: Nitesh Yadav Date: Fri, 25 Sep 2026 12:41:07 +0530 Subject: [PATCH 1/2] fix(products): restore default minDepositTerm on FD product create Removing the forced default on this hidden, backend-mandatory field fixed a false "changed" diff on product edit, but also broke plain product create -- there's no saved value yet for a brand-new product, so it went in blank and the backend rejected it as missing. Now only skips the default when editing an existing product (which always has its own saved value); create still defaults to 1, same as before that diff-dialog fix. Co-Authored-By: Claude Sonnet 5 --- ...ixed-deposit-product-terms-step.component.ts | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component.ts b/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component.ts index 5824a1591..d1abb4ad6 100644 --- a/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component.ts +++ b/src/app/products/fixed-deposit-products/fixed-deposit-product-stepper/fixed-deposit-product-terms-step/fixed-deposit-product-terms-step.component.ts @@ -74,6 +74,7 @@ export class FixedDepositProductTermsStepComponent implements OnInit, OnChanges this.periodFrequencyData = this.fixedDepositProductsTemplate.periodFrequencyTypeOptions || []; const isEditing = !!this.fixedDepositProductsTemplate.id; + const defaultPeriodTypeId = this.periodFrequencyData[0]?.id ?? null; const defaultAveragePeriod = this.averagePeriodData[0]?.value || 'Monthly'; const savedEnumTypeId = this.fixedDepositProductsTemplate.interestCalculationType?.id || this.interestCalculationTypeData?.[0]?.id || 1; @@ -84,12 +85,16 @@ export class FixedDepositProductTermsStepComponent implements OnInit, OnChanges : (this.interestCalculationTypeOptionData?.[0]?.id ?? null); this.fixedDepositProductTermsForm.patchValue({ - // Hidden, unedited-by-anyone fields -- left blank (like their max-/in-multiples-of- siblings - // already correctly are) rather than forced to a real default, or every single product edit - // submitted a "real" value against a product that had none, and a checker's "Proposed changes" - // review showed these two as "changed" on every unrelated edit, never anything a maker touched. - minDepositTerm: this.fixedDepositProductsTemplate.minDepositTerm ?? '', - minDepositTermTypeId: this.fixedDepositProductsTemplate.minDepositTermType?.id ?? '', + // Hidden, unedited-by-anyone fields. On EDIT, left as the product's own saved value with no + // forced fallback (like their max-/in-multiples-of- siblings already correctly are), or a + // checker's "Proposed changes" review showed these as changed on every unrelated edit, never + // anything a maker touched. On CREATE there is no saved value yet, and the backend requires + // minDepositTerm -- default it (and its unit) here same as before, since the field is hidden + // and no one gets a chance to fill it in themselves. + minDepositTerm: isEditing ? (this.fixedDepositProductsTemplate.minDepositTerm ?? '') : 1, + minDepositTermTypeId: isEditing + ? (this.fixedDepositProductsTemplate.minDepositTermType?.id ?? '') + : defaultPeriodTypeId, maxDepositTerm: this.fixedDepositProductsTemplate.maxDepositTerm ?? '', maxDepositTermTypeId: this.fixedDepositProductsTemplate.maxDepositTermType?.id ?? '', inMultiplesOfDepositTerm: this.fixedDepositProductsTemplate.inMultiplesOfDepositTerm ?? '', From 6cbb31b5c620b7634978cec826c0074a3c162ce0 Mon Sep 17 00:00:00 2001 From: Nitesh Yadav Date: Fri, 25 Sep 2026 14:12:44 +0530 Subject: [PATCH 2/2] fix(fd): show the target account number for gap-period interest in the Renew preview The preview panel said interest would go to "the linked Savings account" without saying which one. Now shows its actual account number, both as its own row and in the highlighted "paid to" line. Co-Authored-By: Claude Sonnet 5 --- .../payment-dialog.component.html | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/app/deposits/fixed-deposits/fixed-deposit-account-view/custom-dialogs/payment-dialog/payment-dialog.component.html b/src/app/deposits/fixed-deposits/fixed-deposit-account-view/custom-dialogs/payment-dialog/payment-dialog.component.html index 870c04a21..646c9f4f9 100644 --- a/src/app/deposits/fixed-deposits/fixed-deposit-account-view/custom-dialogs/payment-dialog/payment-dialog.component.html +++ b/src/app/deposits/fixed-deposits/fixed-deposit-account-view/custom-dialogs/payment-dialog/payment-dialog.component.html @@ -61,7 +61,7 @@ } @else {
- Current Balance + FD Maturity Balance (renews as-is below) {{ renewalPreview.currentBalance | formatNumber }}
@@ -69,18 +69,26 @@ {{ renewalPreview.gapDays }}
- Savings Account Interest Rate + Deposit Account Link + {{ renewalPreview.linkedAccountNo }} +
+
+ Its Interest Rate {{ renewalPreview.linkedAccountRate }}%
-
- Gap-Period Interest to be Credited +
+ Gap-Period Interest → paid to {{ renewalPreview.linkedAccountNo }} + {{ renewalPreview.gapInterestAmount | formatNumber }}
-
- New Balance for the Renewed Term - {{ renewalPreview.projectedBalance | formatNumber }} -
+

+ + This gap interest was earned at the linked account's own rate, not the FD's -- it is credited straight + to account {{ renewalPreview.linkedAccountNo }} (the FD's Deposit Account Link), separately from + whatever you choose below. The FD itself renews from its own maturity balance, unchanged. +

} } }