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. +

} } } 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 ?? '',