{{ savingProduct.name }}

{{ 'labels.inputs.Details' | translate }}

{{ 'labels.inputs.Short Name' | translate }}: {{ savingProduct.shortName }}
@if (savingProduct.description) {
{{ 'labels.inputs.Description' | translate }}: {{ savingProduct.description }}
} @if ( savingProduct.accountType || savingProduct.customerSegment || savingProduct.productCode || savingProduct.effectiveTo || savingProduct.introducerRequired !== undefined || savingProduct.shareLinkingEnabled !== undefined ) {

Product Classification

@if (savingProduct.accountType) {
Account Type: {{ savingProduct.accountType }}
} @if (savingProduct.customerSegment) {
Customer Segment: {{ savingProduct.customerSegment }}
} @if (savingProduct.productCode) {
Product Code: {{ savingProduct.productCode }}
} @if (savingProduct.effectiveTo) {
Effective To: {{ savingProduct.effectiveTo }}
} @if (savingProduct.endDate) {
End Date: {{ savingProduct.endDate }}
} @if (savingProduct.introducerRequired !== undefined) {
Introducer Required: {{ savingProduct.introducerRequired === true || savingProduct.introducerRequired === 'Yes' ? 'Yes' : 'No' }}
} @if (savingProduct.shareLinkingEnabled !== undefined) {
Share Linking Enabled: {{ savingProduct.shareLinkingEnabled | yesNo }}
} }

{{ 'labels.inputs.Currency' | translate }}

{{ 'labels.inputs.Currency' | translate }}: {{ savingProduct.currency?.name || savingProduct.currency?.displayLabel || (savingProduct.currencyCode | find: savingProductsTemplate?.currencyOptions : 'code' : 'name') || savingProduct.currencyCode || '-' }}
{{ 'labels.inputs.Decimal Places' | translate }}: {{ savingProduct.digitsAfterDecimal ?? savingProduct.currency?.decimalPlaces ?? 2 }}
@if (savingProduct.currency?.inMultiplesOf !== undefined && savingProduct.currency?.inMultiplesOf !== null) {
{{ 'labels.inputs.Currency in multiples of' | translate }}: {{ savingProduct.currency.inMultiplesOf }}
} @if (savingProduct.dormancyAlert !== undefined) {
Dormancy Alert: {{ savingProduct.dormancyAlert | yesNo }}
} @if (savingProduct.nominationFacility !== undefined) {
Nomination Facility: {{ savingProduct.nominationFacility | yesNo }}
}

{{ 'labels.inputs.Terms' | translate }}

{{ 'labels.inputs.Nominal Annual Interest' | translate }}: {{ savingProduct.nominalAnnualInterestRate | formatNumber }} %
{{ 'labels.inputs.Interest Compounding Period' | translate }}: {{ savingProduct.interestCompoundingPeriodType | find: savingProductsTemplate?.interestCompoundingPeriodTypeOptions : 'id' : 'value' | translateKey: 'catalogs' }}
{{ 'labels.inputs.Interest Posting Period' | translate }}: {{ savingProduct.interestPostingPeriodType | find: savingProductsTemplate?.interestPostingPeriodTypeOptions : 'id' : 'value' | translateKey: 'catalogs' }}
{{ 'labels.inputs.Interest Calculation Type' | translate }}: {{ savingProduct.interestCalculationType | find: interestCalculationTypeOptionData : 'id' : 'value' | translateKey: 'catalogs' }}
{{ 'labels.inputs.Days in Year' | translate }}: {{ savingProduct.interestCalculationDaysInYearType | find: savingProductsTemplate?.interestCalculationDaysInYearTypeOptions : 'id' : 'value' | translateKey: 'catalogs' }}
@if (savingProduct.effectiveDate) {
Effective Date: {{ savingProduct.effectiveDate }}
}
Interest Calculate: {{ savingProduct.interestCalculateSelector | find: savingProductsTemplate?.interestCalculationTypeOptions : 'id' : 'value' }}
@if (savingProduct.averagePeriod) {
Average Period: {{ savingProduct.averagePeriod }}
}
Auto Interest Post: {{ savingProduct.autoPost | yesNo }}
@if ( savingProduct.frequencyFixDay !== undefined && savingProduct.frequencyFixDay !== null && savingProduct.frequencyFixDay !== '' ) {
Frequency (Fix Day): {{ savingProduct.frequencyFixDay }}
} @if (savingProduct.lastInterestDate) {
Last Interest Date: {{ savingProduct.lastInterestDate }}
}

{{ 'labels.inputs.Settings' | translate }}

@if (savingProduct.minRequiredOpeningBalance) {
{{ 'labels.inputs.Minimum Opening Balance' | translate }}: {{ savingProduct.minRequiredOpeningBalance | formatNumber }}
} @if (savingProduct.lockinPeriodFrequency) {
{{ 'labels.inputs.Lock-in Period' | translate }}: {{ savingProduct.lockinPeriodFrequency + ' ' + (savingProduct.lockinPeriodFrequencyType | find: savingProductsTemplate?.lockinPeriodFrequencyTypeOptions : 'id' : 'value') | translateKey: 'catalogs' }}
}
{{ 'labels.inputs.Apply Withdrawal Fee for Transfers' | translate }}: {{ savingProduct.withdrawalFeeForTransfers | yesNo }}
@if (savingProduct.balanceFrequency) {
Balance Frequency: {{ savingProduct.balanceFrequency }}
}
Enable Lock-in Period: {{ savingProduct.enableLockinPeriod | yesNo }}
@if (savingProduct.enableLockinPeriod && savingProduct.lockinPeriodFrequency) {
Lock-in Period: {{ savingProduct.lockinPeriodFrequency }} {{ getLockinPeriodFrequencyTypeLabel(savingProduct.lockinPeriodFrequencyType) }}
} @if (savingProduct.minBalanceForInterestCalculation) {
{{ 'labels.inputs.Balance Required for Interest Calculation' | translate }}: {{ savingProduct.minBalanceForInterestCalculation | formatNumber }}
}
{{ 'labels.inputs.Enforce Minimum Balance' | translate }}: {{ savingProduct.enforceMinRequiredBalance | yesNo }}
@if (savingProduct.minRequiredBalance) {
{{ 'labels.inputs.Minimum Balance' | translate }}: {{ savingProduct.minRequiredBalance | formatNumber }}
}
{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}: {{ savingProduct.withHoldTax | yesNo }}
@if (savingProduct.withHoldTax) {
{{ 'labels.inputs.Tax Group' | translate }}: {{ savingProduct.taxGroupId | find: savingProductsTemplate?.taxGroupOptions : 'id' : 'name' }}
}
{{ 'labels.inputs.Is Overdraft Allowed' | translate }}: {{ savingProduct.allowOverdraft | yesNo }}
Account Closed with Zero Balance in Day Closing: {{ savingProduct.accountClosedZeroBalanceInDayClosing | yesNo }}
@if (savingProduct.minOverdraftForInterestCalculation) {
{{ 'labels.inputs.Minimum Overdraft Required for Interest Calculation' | translate }}: {{ savingProduct.minOverdraftForInterestCalculation | formatNumber }}
} @if (savingProduct.nominalAnnualInterestRateOverdraft) {
{{ 'labels.inputs.Nominal Annual Interest for Overdraft' | translate }}: {{ savingProduct.nominalAnnualInterestRateOverdraft | formatNumber }} %
} @if (savingProduct.overdraftLimit) {
{{ 'labels.inputs.Maximum Overdraft Amount Limit' | translate }}: {{ savingProduct.overdraftLimit | formatNumber }}
}
{{ 'labels.inputs.Enable Dormancy Tracking' | translate }}: {{ savingProduct.isDormancyTrackingActive | yesNo }}
@if (savingProduct.isDormancyTrackingActive) {
{{ 'labels.inputs.Number of Days to Inactive sub-status' | translate }}: {{ savingProduct.daysToInactive }} {{ 'labels.inputs.Number of Days to Dormant sub-status' | translate }}: {{ savingProduct.daysToDormancy }} {{ 'labels.inputs.Number of Days to Escheat' | translate }}: {{ savingProduct.daysToEscheat }}
}

Account Facilities

@if (savingProduct.accountFacilityConfig) {
@for (feature of accountFacilityFeatureItems; track feature.key) {
{{ feature.label }}: {{ savingProduct.accountFacilityConfig[feature.key] | yesNo }}
}
} @if (savingProduct.accountFacilityLimits?.length) {

Account Facility Limits

Limit Type {{ row.limitType }} General Limit {{ row.generalLimit }} Minor Account Limit {{ row.minorAccountLimit }} Small Saving Limit {{ row.smallSavingLimit }}
} @if (savingProduct.depositLimitKyc) {

Deposit Limit (KYC)

General: {{ savingProduct.depositLimitKyc.general.kycType }} - {{ savingProduct.depositLimitKyc.general.limit }}
Minor: {{ savingProduct.depositLimitKyc.minor.kycType }} - {{ savingProduct.depositLimitKyc.minor.limit }}
Small Saving: {{ savingProduct.depositLimitKyc.smallSaving.kycType }} - {{ savingProduct.depositLimitKyc.smallSaving.limit }}
} @if (savingProduct.charges.length) {

{{ 'labels.inputs.Charges' | translate }}

{{ 'labels.inputs.Name' | translate }} {{ charge.name + ', ' + charge.currency.displaySymbol }} {{ 'labels.inputs.Type' | translate }} {{ charge.chargeCalculationType.value | translateKey: 'catalogs' }} {{ 'labels.inputs.Amount' | translate }} {{ charge.amount | formatNumber }} {{ 'labels.inputs.Collected On' | translate }} {{ charge.chargeTimeType.value | translateKey: 'catalogs' }}
}

{{ 'labels.heading.Accounting' | translate }}

@if (isCashOrAccrualAccounting()) {

GL Mapping

Assets
Savings reference account {{ formatGlAccountById( savingProduct.savingsReferenceAccountId, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions ) }}
Overdraft portfolio control {{ formatGlAccountById( savingProduct.overdraftPortfolioControlId, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions ) }}
Interest receivable account {{ formatGlAccountById( savingProduct.interestReceivableAccountId, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions ) }}
Fees receivable account {{ formatGlAccountById( savingProduct.feesReceivableAccountId, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions ) }}
Penalties receivable account {{ formatGlAccountById( savingProduct.penaltiesReceivableAccountId, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions ) }}
Liabilities
Savings control account {{ formatGlAccountById( savingProduct.savingsControlAccountId, savingProductsTemplate?.accountingMappingOptions.liabilityAccountOptions ) }}
Transfers in suspense account {{ formatGlAccountById( savingProduct.transfersInSuspenseAccountId, savingProductsTemplate?.accountingMappingOptions.liabilityAccountOptions ) }}
Interest payable account {{ formatGlAccountById( savingProduct.interestPayableAccountId, savingProductsTemplate?.accountingMappingOptions.liabilityAccountOptions ) }}
@if (savingProduct.isDormancyTrackingActive) {
Escheat liability account {{ formatGlAccountById( savingProduct.escheatLiabilityId, savingProductsTemplate?.accountingMappingOptions.liabilityAccountOptions ) }}
}
Expenses
Interest on savings account {{ formatGlAccountById( savingProduct.interestOnSavingsAccountId, savingProductsTemplate?.accountingMappingOptions.expenseAccountOptions ) }}
Write off account {{ formatGlAccountById( savingProduct.writeOffAccountId, savingProductsTemplate?.accountingMappingOptions.expenseAccountOptions ) }}
Income
Income from fees {{ formatGlAccountById( savingProduct.incomeFromFeeAccountId, savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions ) }}
Income from penalties {{ formatGlAccountById( savingProduct.incomeFromPenaltyAccountId, savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions ) }}
Income from interest {{ formatGlAccountById( savingProduct.incomeFromInterestId, savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions ) }}
} @if (savingProduct.otherGlMappings) {

Other GL Mappings

@if (savingProduct.otherGlMappings.assets?.length) {
Asset Account {{ row.accountName }} GL Account {{ formatGlAccountByCode(row.glCode, savingProductsTemplate?.accountingMappingOptions.assetAccountOptions) }}
} @if (savingProduct.otherGlMappings.liabilities?.length) {
Liability Account {{ row.accountName }} GL Account {{ formatGlAccountByCode( row.glCode, savingProductsTemplate?.accountingMappingOptions.liabilityAccountOptions ) }}
} @if (savingProduct.otherGlMappings.expenses?.length) {
Expense Account {{ row.accountName }} GL Account {{ formatGlAccountByCode( row.glCode, savingProductsTemplate?.accountingMappingOptions.expenseAccountOptions ) }}
} @if (savingProduct.otherGlMappings.income?.length) {
Income Account {{ row.accountName }} GL Account {{ formatGlAccountByCode(row.glCode, savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions) }}
}
} @if ( savingProduct.advancedAccountingRules && (savingProduct.paymentChannelToFundSourceMappings?.length || savingProduct.feeToIncomeAccountMappings?.length || savingProduct.penaltyToIncomeAccountMappings?.length) ) {

{{ 'labels.heading.Advanced Accounting Rules' | translate }}

@if (savingProduct.paymentChannelToFundSourceMappings?.length) {

{{ 'labels.heading.Fund Sources for Payment Channels' | translate }}

{{ 'labels.inputs.Payment Type' | translate }} {{ paymentFundSource.paymentTypeId | find: savingProductsTemplate.paymentTypeOptions : 'id' : 'name' }} {{ 'labels.inputs.Fund Source' | translate }} {{ paymentFundSource.fundSourceAccountId | find: savingProductsTemplate?.accountingMappingOptions.assetAccountOptions : 'id' : 'name' }}
} @if (savingProduct.feeToIncomeAccountMappings?.length) {

{{ 'labels.heading.Fees to Specific Income Accounts' | translate }}

{{ 'labels.inputs.Fees' | translate }} {{ feesIncome.chargeId | find: savingProductsTemplate.chargeOptions : 'id' : 'name' }} {{ 'labels.inputs.Income Account' | translate }} {{ feesIncome.incomeAccountId | find: savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions : 'id' : 'name' }}
} @if (savingProduct.penaltyToIncomeAccountMappings?.length) {

{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}

{{ 'labels.inputs.Penalty' | translate }} {{ penaltyIncome.chargeId | find: savingProductsTemplate.penaltyOptions : 'id' : 'name' }} {{ 'labels.inputs.Income Account' | translate }} {{ penaltyIncome.incomeAccountId | find: savingProductsTemplate?.accountingMappingOptions.incomeAccountOptions : 'id' : 'name' }}
}
}