update code account saving,current,RD

This commit is contained in:
Nitesh Yadav
2026-04-24 16:24:28 +05:30
parent fc1c5126fc
commit fbaec18552
49 changed files with 4221 additions and 2260 deletions
@@ -213,198 +213,6 @@
</div>
</div>
<div class="preview-section">
<div class="preview-section__header">
<span class="preview-section__title">{{ 'labels.heading.Terms' | translate }}</span>
</div>
<div class="preview-body">
<div class="preview-grid preview-grid--three">
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Nominal Annual Interest' | translate }}</span>
<span class="preview-value">{{ savingsAccount?.nominalAnnualInterestRate | formatNumber }} %</span>
</div>
@if (savingsAccountProductTemplate?.interestCalculationTypeName) {
<div class="preview-field">
<span class="preview-label">Interest Calculation Mode</span>
<span class="preview-value">{{ savingsAccountProductTemplate?.interestCalculationTypeName }}</span>
</div>
}
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Interest Compounding Period' | translate }}</span>
<span class="preview-value">{{
savingsAccount?.interestCompoundingPeriodType
| find: savingsAccountProductTemplate?.interestCompoundingPeriodTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Interest Posting Period' | translate }}</span>
<span class="preview-value">{{
savingsAccount?.interestPostingPeriodType
| find: savingsAccountProductTemplate?.interestPostingPeriodTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Interest Calculated using' | translate }}</span>
<span class="preview-value">{{
savingsAccount?.interestCalculationType
| find: savingsAccountProductTemplate?.interestCalculationTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Days in Year' | translate }}</span>
<span class="preview-value">{{
savingsAccount?.interestCalculationDaysInYearType
| find: savingsAccountProductTemplate?.interestCalculationDaysInYearTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
<div class="preview-field">
<span class="preview-label">Interest Calculation Selector</span>
<span class="preview-value">{{
savingsAccount?.interestCalculateSelector
| find: savingsAccountProductTemplate?.interestCalculationTypeOption : 'id' : 'value'
| translateKey: 'catalogs'
}}</span>
</div>
@if (savingsAccount?.averagePeriod) {
<div class="preview-field">
<span class="preview-label">Average Period</span>
<span class="preview-value">{{ savingsAccount?.averagePeriod }}</span>
</div>
}
<div class="preview-field">
<span class="preview-label">Auto Post</span>
<span class="preview-value preview-badge" [class.preview-badge--yes]="savingsAccount?.autoPost">
{{ savingsAccount?.autoPost | yesNo }}
</span>
</div>
@if (savingsAccountProductTemplate?.lastInterestDate) {
<div class="preview-field">
<span class="preview-label">Last Interest Date</span>
<span class="preview-value">{{ savingsAccountProductTemplate?.lastInterestDate | dateFormat }}</span>
</div>
}
@if (savingsAccount?.frequencyFixDay !== undefined && savingsAccount?.frequencyFixDay !== null) {
<div class="preview-field">
<span class="preview-label">Frequency Fix Day</span>
<span class="preview-value">{{ savingsAccount?.frequencyFixDay }}</span>
</div>
}
</div>
</div>
</div>
<div class="preview-section">
<div class="preview-section__header">
<span class="preview-section__title">{{ 'labels.heading.Settings' | translate }}</span>
</div>
<div class="preview-body">
<div class="preview-grid preview-grid--three">
@if (savingsAccount?.minRequiredOpeningBalance) {
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Minimum Opening Balance' | translate }}</span>
<span class="preview-value">{{ savingsAccount?.minRequiredOpeningBalance | formatNumber }}</span>
</div>
}
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Apply Withdrawal Fee for Transfers' | translate }}</span>
<span
class="preview-value preview-badge"
[class.preview-badge--yes]="savingsAccount?.withdrawalFeeForTransfers"
>
{{ savingsAccount?.withdrawalFeeForTransfers | yesNo }}
</span>
</div>
@if (savingsAccount?.lockinPeriodFrequency) {
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Lock-in Period' | translate }}</span>
<span class="preview-value">
{{ savingsAccount?.lockinPeriodFrequency }}
{{
savingsAccount?.lockinPeriodFrequencyType
| find: savingsAccountProductTemplate?.lockinPeriodFrequencyTypeOptions : 'id' : 'value'
| translateKey: 'catalogs'
}}
</span>
</div>
}
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Is Overdraft Allowed' | translate }}</span>
<span class="preview-value preview-badge" [class.preview-badge--yes]="savingsAccount?.allowOverdraft">
{{ savingsAccount?.allowOverdraft | yesNo }}
</span>
</div>
@if (savingsAccount?.minOverdraftForInterestCalculation) {
<div class="preview-field">
<span class="preview-label">{{
'labels.inputs.Minimum Overdraft Required for Interest Calculation' | translate
}}</span>
<span class="preview-value">{{ savingsAccount?.minOverdraftForInterestCalculation | formatNumber }}</span>
</div>
}
@if (savingsAccount?.nominalAnnualInterestRateOverdraft) {
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Nominal Annual Interest for Overdraft' | translate }}</span>
<span class="preview-value">{{ savingsAccount?.nominalAnnualInterestRateOverdraft | formatNumber }} %</span>
</div>
}
@if (savingsAccount?.overdraftLimit) {
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Maximum Overdraft Amount Limit' | translate }}</span>
<span class="preview-value">{{ savingsAccount?.overdraftLimit | formatNumber }}</span>
</div>
}
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Enforce Minimum Balance' | translate }}</span>
<span
class="preview-value preview-badge"
[class.preview-badge--yes]="savingsAccount?.enforceMinRequiredBalance"
>
{{ savingsAccount?.enforceMinRequiredBalance | yesNo }}
</span>
</div>
@if (savingsAccountProductTemplate?.enableLockinPeriod !== undefined) {
<div class="preview-field">
<span class="preview-label">Enable Lock-in Period</span>
<span
class="preview-value preview-badge"
[class.preview-badge--yes]="savingsAccountProductTemplate?.enableLockinPeriod"
>
{{ savingsAccountProductTemplate?.enableLockinPeriod | yesNo }}
</span>
</div>
}
@if (savingsAccountProductTemplate?.balanceFrequency) {
<div class="preview-field">
<span class="preview-label">Balance Frequency</span>
<span class="preview-value">{{ savingsAccountProductTemplate?.balanceFrequency }}</span>
</div>
}
@if (savingsAccountProductTemplate?.accountClosedZeroBalanceInDayClosing !== undefined) {
<div class="preview-field">
<span class="preview-label">Account Closed Zero Balance In Day Closing</span>
<span
class="preview-value preview-badge"
[class.preview-badge--yes]="savingsAccountProductTemplate?.accountClosedZeroBalanceInDayClosing"
>
{{ savingsAccountProductTemplate?.accountClosedZeroBalanceInDayClosing | yesNo }}
</span>
</div>
}
@if (savingsAccount?.minRequiredBalance) {
<div class="preview-field">
<span class="preview-label">{{ 'labels.inputs.Minimum Balance' | translate }}</span>
<span class="preview-value">{{ savingsAccount?.minRequiredBalance }}</span>
</div>
}
</div>
</div>
</div>
@if (hasDigitalSection) {
<div class="preview-section">
<div class="preview-section__header">
@@ -424,58 +232,6 @@
</div>
}
</div>
@if (digitalPreview?.accountFacilityLimits?.length) {
<table class="mat-elevation-z1 preview-table">
<thead>
<tr>
<th>Limit Type</th>
<th>General Limit</th>
<th>Minor Account Limit</th>
<th>Small Saving Limit</th>
</tr>
</thead>
<tbody>
@for (row of digitalPreview.accountFacilityLimits; track row.limitType) {
<tr>
<td>{{ row.limitType }}</td>
<td>{{ row.generalLimit || 'Unassigned' }}</td>
<td>{{ row.minorAccountLimit || 'Unassigned' }}</td>
<td>{{ row.smallSavingLimit || 'Unassigned' }}</td>
</tr>
}
</tbody>
</table>
}
@if (digitalPreview?.depositLimitKyc?.general) {
<table class="mat-elevation-z1 preview-table">
<thead>
<tr>
<th>Account Type</th>
<th>KYC Type</th>
<th>Limit</th>
</tr>
</thead>
<tbody>
<tr>
<td>General</td>
<td>{{ digitalPreview.depositLimitKyc.general.kycType || 'Unassigned' }}</td>
<td>{{ digitalPreview.depositLimitKyc.general.limit || 'Unassigned' }}</td>
</tr>
<tr>
<td>Minor</td>
<td>{{ digitalPreview.depositLimitKyc.minor?.kycType || 'Unassigned' }}</td>
<td>{{ digitalPreview.depositLimitKyc.minor?.limit || 'Unassigned' }}</td>
</tr>
<tr>
<td>Small Saving</td>
<td>{{ digitalPreview.depositLimitKyc.smallSaving?.kycType || 'Unassigned' }}</td>
<td>{{ digitalPreview.depositLimitKyc.smallSaving?.limit || 'Unassigned' }}</td>
</tr>
</tbody>
</table>
}
</div>
</div>
}
@@ -501,65 +257,6 @@
</div>
</div>
}
@if (savingsAccount?.charges?.length) {
<div class="preview-section">
<div class="preview-section__header">
<span class="preview-section__title">{{ 'labels.inputs.Charges' | translate }}</span>
</div>
<div class="preview-body">
<table class="mat-elevation-z1 preview-table" mat-table [dataSource]="savingsAccount.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Name' | translate }}</th>
<td mat-cell *matCellDef="let charge">{{ charge.name + ', ' + charge.currency.displaySymbol }}</td>
</ng-container>
<ng-container matColumnDef="chargeCalculationType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Type' | translate }}</th>
<td mat-cell *matCellDef="let charge">
{{ charge.chargeCalculationType.value | translateKey: 'catalogs' }}
</td>
</ng-container>
<ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Amount' | translate }}</th>
<td mat-cell *matCellDef="let charge">{{ charge.amount | formatNumber }}</td>
</ng-container>
<ng-container matColumnDef="date">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Date' | translate }}</th>
<td mat-cell *matCellDef="let charge">
@if (
charge.chargeTimeType.value === 'Specified due date' || charge.chargeTimeType.value === 'Weekly Fee'
) {
<span>{{ (charge.dueDate | dateFormat) || 'Unassigned' }}</span>
}
@if (charge.chargeTimeType.value === 'Monthly Fee' || charge.chargeTimeType.value === 'Annual Fee') {
<span>{{ (charge.feeOnMonthDay | dateFormat) || 'Unassigned' }}</span>
}
@if (
!(
charge.chargeTimeType.value === 'Monthly Fee' ||
charge.chargeTimeType.value === 'Annual Fee' ||
charge.chargeTimeType.value === 'Specified due date' ||
charge.chargeTimeType.value === 'Weekly Fee'
)
) {
<span>N/A</span>
}
</td>
</ng-container>
<ng-container matColumnDef="repaymentsEvery">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Repayments Every' | translate }}</th>
<td mat-cell *matCellDef="let charge">{{ charge.feeInterval || 'Not Provided' }}</td>
</ng-container>
<ng-container matColumnDef="chargeTimeType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Collected On' | translate }}</th>
<td mat-cell *matCellDef="let charge">{{ charge.chargeTimeType.value }}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="chargesDisplayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: chargesDisplayedColumns"></tr>
</table>
</div>
</div>
}
</div>
<div class="layout-row responsive-column align-center gap-2px margin-t">