From 90f26d32b76e13f52652b9a44ca40c64140e3fa8 Mon Sep 17 00:00:00 2001 From: Nitesh Yadav Date: Fri, 25 Sep 2026 12:41:07 +0530 Subject: [PATCH] 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 ?? '',