fix: Display issues

This commit is contained in:
Jose Alberto Hernandez
2025-06-09 17:19:47 -05:00
parent 7d741bb098
commit 61e59821b9
21 changed files with 765 additions and 741 deletions
@@ -1,44 +1,44 @@
<div class="layout-row-wrap responsive-column">
<h2 class="mat-h2 flex-fill">{{ fixedDepositProduct.name }}</h2>
<h2 class="mat-h2 flex-100">{{ fixedDepositProduct.name }}</h2>
<mat-divider class="flex-fill"></mat-divider>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider class="flex-100"></mat-divider>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Short Name' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.shortName }}</span>
</div>
<div class="flex-fill" *ngIf="fixedDepositProduct.description">
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.description }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Currency' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Currency' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Currency' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.currencyCode | find: fixedDepositProductsTemplate.currencyOptions : 'code' : 'name'
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Decimal Places' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.digitsAfterDecimal }}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Currency in multiples of' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.inMultiplesOf }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Terms' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Deposit Amount' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.depositAmount +
@@ -54,7 +54,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Compounding Period' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.interestCompoundingPeriodType
@@ -62,7 +62,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Posting Period' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.interestPostingPeriodType
@@ -70,7 +70,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Calculated using' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.interestCalculationType
@@ -78,7 +78,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Days in Year' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.interestCalculationDaysInYearType
@@ -86,10 +86,10 @@
}}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Settings' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Settings' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill" *ngIf="fixedDepositProduct.lockinPeriodFrequency">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.lockinPeriodFrequency">
<span class="flex-40">{{ 'labels.inputs.Lock-in Period' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.lockinPeriodFrequency +
@@ -99,7 +99,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.minDepositTerm +
@@ -109,7 +109,7 @@
}}</span>
</div>
<div class="flex-fill" *ngIf="fixedDepositProduct.inMultiplesOfDepositTerm">
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.inMultiplesOfDepositTerm">
<span class="flex-40">{{ 'labels.inputs.And thereafter, in Multiples of' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.inMultiplesOfDepositTerm +
@@ -119,7 +119,7 @@
}}</span>
</div>
<div class="flex-fill" *ngIf="fixedDepositProduct.maxDepositTerm">
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.maxDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Maximum Deposit Term' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.maxDepositTerm +
@@ -129,12 +129,12 @@
}}</span>
</div>
<!-- For Pre-mature closure -->
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Apply Penal Interest (less)' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.preClosurePenalApplicable | yesNo }}</span>
</div>
<div class="flex-fill" *ngIf="fixedDepositProduct.preClosurePenalApplicable">
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.preClosurePenalApplicable">
<span class="flex-40">{{ 'labels.inputs.Penal Interest' | translate }} (%):</span>
<span class="flex-60">{{
fixedDepositProduct.preClosurePenalInterest +
@@ -145,53 +145,53 @@
}}</span>
</div>
<!-- -->
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.withHoldTax | yesNo }}</span>
</div>
<div class="flex-fill" *ngIf="fixedDepositProduct.withHoldTax">
<div class="layout-row flex-100" *ngIf="fixedDepositProduct.withHoldTax">
<span class="flex-40">{{ 'labels.inputs.Tax Group' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProduct.taxGroupId | find: fixedDepositProductsTemplate.taxGroupOptions : 'id' : 'name'
}}</span>
</div>
<div class="layout-row-wrap responsive-column flex-fill" *ngIf="fixedDepositProduct.charts.length !== 0">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<div class="layout-row-wrap responsive-column flex-100" *ngIf="fixedDepositProduct.charts.length !== 0">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<div
*ngFor="let chart of fixedDepositProduct.charts; let chartIndex = index"
class="layout-row-wrap responsive-column flex-fill"
class="layout-row-wrap responsive-column flex-100"
>
<div class="flex-fill" *ngIf="chart.name">
<div class="layout-row flex-100" *ngIf="chart.name">
<span class="flex-40">{{ 'labels.inputs.Name' | translate }}:</span>
<span class="flex-60">{{ chart.name }}</span>
</div>
<div class="flex-fill" *ngIf="chart.description">
<div class="layout-row flex-100" *ngIf="chart.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ chart.description }}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.From Date' | translate }}:</span>
<span class="flex-60">{{ chart.fromDate | dateFormat }}</span>
</div>
<div class="flex-fill" *ngIf="chart.endDate">
<div class="layout-row flex-100" *ngIf="chart.endDate">
<span class="flex-40">{{ 'labels.inputs.End Date' | translate }}:</span>
<span class="flex-60">{{ chart.endDate | dateFormat }}</span>
</div>
<div class="flex-fill">
<div class="flex-100">
<span class="flex-40">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProduct.isPrimaryGroupingByAmount | yesNo }}</span>
</div>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="chart.chartSlabs"
*ngIf="chart.chartSlabs.length !== 0"
@@ -262,15 +262,15 @@
[attr.colspan]="chartSlabsDisplayedColumns[chartIndex].length"
>
<div
class="layout-row-wrap flex-fill incentives"
class="layout-row-wrap flex-100 incentives"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex[chartIndex] ? 'expanded' : 'collapsed'"
>
<mat-card class="layout-row-wrap flex-fill">
<mat-card class="layout-row-wrap flex-100">
<h4 class="mat-h4 flex-23">
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
@@ -350,15 +350,15 @@
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns" class="incentives-row"></tr>
</table>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
</div>
</div>
<div *ngIf="fixedDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Charges' | translate }}</h3>
<div *ngIf="fixedDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Charges' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="fixedDepositProduct.charges">
<mat-divider class="flex-100"></mat-divider>
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="fixedDepositProduct.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Name' | translate }}</th>
<td mat-cell *matCellDef="let charge">
@@ -392,9 +392,9 @@
</table>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Accounting' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Accounting' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<mifosx-view-savings-accounting-details
*ngIf="!isNoneAccounting()"
[accountingRule]="accountingRule"
@@ -409,18 +409,18 @@
fixedDepositProduct.feeToIncomeAccountMappings?.length ||
fixedDepositProduct.penaltyToIncomeAccountMappings?.length)
"
class="layout-row-wrap responsive-column flex-fill"
class="layout-row-wrap responsive-column flex-100"
>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<div
*ngIf="fixedDepositProduct.paymentChannelToFundSourceMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Fund Sources for Payment Channels' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Fund Sources for Payment Channels' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProduct.paymentChannelToFundSourceMappings"
>
@@ -450,11 +450,11 @@
<div
*ngIf="fixedDepositProduct.feeToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Fees to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Fees to Specific Income Accounts' | translate }}</h4>
<table class="mat-elevation-z1 flex-fill" mat-table [dataSource]="fixedDepositProduct.feeToIncomeAccountMappings">
<table class="mat-elevation-z1 flex-100" mat-table [dataSource]="fixedDepositProduct.feeToIncomeAccountMappings">
<ng-container matColumnDef="chargeId">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Fees' | translate }}</th>
<td mat-cell *matCellDef="let feesIncome">
@@ -479,12 +479,12 @@
<div
*ngIf="fixedDepositProduct.penaltyToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProduct.penaltyToIncomeAccountMappings"
>
@@ -1,4 +1,4 @@
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
<div class="layout-row align-end gap-2px responsive-column container m-t-20 m-b-20">
<button mat-raised-button color="primary" [routerLink]="['../edit']" *mifosxHasPermission="'UPDATE_SAVINGSPRODUCT'">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -8,50 +8,50 @@
<mat-card>
<mat-card-content>
<div class="responsive-column">
<h2 class="mat-h2 flex-fill">{{ fixedDepositProductData.name }}</h2>
<h2 class="mat-h2 flex-100">{{ fixedDepositProductData.name }}</h2>
<mat-divider [inset]="true"></mat-divider>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Details' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Short Name' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.shortName }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.description">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.description }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Currency' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Currency' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.heading.Currency' | translate }}:</span>
<span class="flex-60"
>({{ fixedDepositProductData.currency.code }}) {{ fixedDepositProductData.currency.name }}</span
>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Decimal Places' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.currency.decimalPlaces }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Currency in multiples of' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.currency.inMultiplesOf | formatNumber }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Terms' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Deposit Amount' | translate }}:</span>
<span class="flex-60">{{
fixedDepositProductData.depositAmount +
@@ -67,31 +67,31 @@
}}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Compounding Period' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.interestCompoundingPeriodType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Posting Period' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.interestPostingPeriodType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Calculated Using' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.interestCalculationType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Days in Year' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.interestCalculationDaysInYearType.value }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Settings' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Settings' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.lockinPeriodFrequency">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.lockinPeriodFrequency">
<span class="flex-40">{{ 'labels.inputs.Lock-in Period' | translate }}:</span>
<span class="flex-60">
{{ fixedDepositProductData.lockinPeriodFrequency }}
@@ -99,7 +99,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.minDepositTerm">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.minDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span class="flex-60" *ngIf="fixedDepositProductData.minDepositTerm !== undefined"
>{{ fixedDepositProductData.minDepositTerm }}
@@ -108,7 +108,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.maxDepositTerm">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.maxDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Maximum Deposit Term' | translate }}:</span>
<span class="flex-60" *ngIf="fixedDepositProductData.maxDepositTerm !== undefined"
>{{ fixedDepositProductData.maxDepositTerm }}
@@ -117,7 +117,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.inMultiplesOfDepositTerm">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.inMultiplesOfDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Deposit Term In multiple of' | translate }}:</span>
<span class="flex-60"
>{{ fixedDepositProductData.inMultiplesOfDepositTerm }}
@@ -126,12 +126,12 @@
>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Apply Penal Interest (less)' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.preClosurePenalApplicable | yesNo }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.preClosurePenalApplicable">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.preClosurePenalApplicable">
<span class="flex-40">{{ 'labels.inputs.Penal Interest' | translate }} (%):</span>
<span class="flex-60"
>{{ fixedDepositProductData.preClosurePenalInterest }} &nbsp; &nbsp; % &nbsp; &nbsp; On &nbsp;&nbsp;
@@ -139,54 +139,54 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.minBalanceForInterestCalculation">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.minBalanceForInterestCalculation">
<span class="flex-40">{{ 'labels.inputs.Balance Required for Interest Calculation' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.minBalanceForInterestCalculation | formatNumber }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.withHoldTax | yesNo }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.withHoldTax">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.withHoldTax">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax group' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.taxGroup.name }}</span>
</div>
<div *ngIf="fixedDepositProductData.activeChart" class="responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Interest Rate Chart' | translate }}</h3>
<div *ngIf="fixedDepositProductData.activeChart" class="responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Interest Rate Chart' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="responsive-column flex-fill">
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.activeChart.name">
<div class="responsive-column flex-100">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.activeChart.name">
<span class="flex-40">{{ 'labels.inputs.Name' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.activeChart.name }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.activeChart.description">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.activeChart.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.activeChart.description }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.From Date' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.activeChart.fromDate | dateFormat }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="fixedDepositProductData.activeChart.endDate">
<div class="flex-100 layout-row" *ngIf="fixedDepositProductData.activeChart.endDate">
<span class="flex-40">{{ 'labels.inputs.End Date' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.activeChart.endDate | dateFormat }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span class="flex-60">{{ fixedDepositProductData.activeChart.isPrimaryGroupingByAmount | yesNo }}</span>
</div>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProductData.activeChart.chartSlabs"
multiTemplateDataRows
@@ -251,15 +251,15 @@
[attr.colspan]="chartSlabsDisplayedColumns.length"
>
<div
class="incentives flex-fill layout-row-wrap"
class="incentives flex-100 layout-row-wrap"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'"
>
<mat-card class="layout-row-wrap flex-fill">
<mat-card class="layout-row-wrap flex-100">
<h4 class="mat-h4 flex-23">
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
@@ -348,11 +348,11 @@
</div>
</div>
<div *ngIf="fixedDepositProductData.charges.length" class="layout-row-wrap responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Charges' | translate }}</h3>
<div *ngIf="fixedDepositProductData.charges.length" class="layout-row-wrap responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Charges' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="fixedDepositProductData.charges">
<mat-divider class="flex-100"></mat-divider>
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="fixedDepositProductData.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Name' | translate }}</th>
<td mat-cell *matCellDef="let charge">
@@ -386,7 +386,7 @@
</table>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Accounting' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Accounting' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
@@ -398,7 +398,7 @@
</mifosx-view-savings-accounting-details>
<div
class="flex-fill layout-row-wrap layout-lt-md-column"
class="flex-100 layout-row-wrap layout-lt-md-column"
*ngIf="
fixedDepositProductData.advancedAccountingRules &&
(fixedDepositProductData.paymentChannelToFundSourceMappings?.length ||
@@ -406,7 +406,7 @@
fixedDepositProductData.penaltyToIncomeAccountMappings?.length)
"
>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
@@ -414,14 +414,14 @@
<div
*ngIf="fixedDepositProductData.paymentChannelToFundSourceMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">
<h4 class="mat-h4 flex-100">
{{ 'labels.inputs.Configure Fund Sources for Payment Channels' | translate }}
</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProductData.paymentChannelToFundSourceMappings"
>
@@ -446,12 +446,12 @@
<div
*ngIf="fixedDepositProductData.feeToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.inputs.Fees to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.inputs.Fees to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProductData.feeToIncomeAccountMappings"
>
@@ -476,12 +476,12 @@
<div
*ngIf="fixedDepositProductData.penaltyToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="fixedDepositProductData.penaltyToIncomeAccountMappings"
>
@@ -1,44 +1,44 @@
<div class="layout-row-wrap responsive-column">
<h2 class="mat-h2 flex-fill">{{ recurringDepositProduct.name }}</h2>
<h2 class="mat-h2 flex-100">{{ recurringDepositProduct.name }}</h2>
<mat-divider class="flex-fill"></mat-divider>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider class="flex-100"></mat-divider>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Short Name' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.shortName }}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.description">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.description }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Currency' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Currency' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Currency' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.currencyCode | find: recurringDepositProductsTemplate.currencyOptions : 'code' : 'name'
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Decimal Places' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.digitsAfterDecimal }}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Currency in multiples of' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.inMultiplesOf }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Terms' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Deposit Amount' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.depositAmount +
@@ -54,7 +54,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Compounding Period' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.interestCompoundingPeriodType
@@ -62,7 +62,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Posting Period' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.interestPostingPeriodType
@@ -70,7 +70,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Interest Calculated using' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.interestCalculationType
@@ -78,7 +78,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Days in Year' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.interestCalculationDaysInYearType
@@ -86,10 +86,10 @@
}}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Settings' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Settings' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<div class="flex-fill" *ngIf="recurringDepositProduct.lockinPeriodFrequency">
<mat-divider class="flex-100"></mat-divider>
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.lockinPeriodFrequency">
<span class="flex-40">{{ 'labels.inputs.Lock-in Period' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.lockinPeriodFrequency +
@@ -99,7 +99,7 @@
}}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.minDepositTerm +
@@ -109,7 +109,7 @@
}}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.inMultiplesOfDepositTerm">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.inMultiplesOfDepositTerm">
<span class="flex-40">{{ 'labels.inputs.And thereafter, in Multiples of' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.inMultiplesOfDepositTerm +
@@ -119,7 +119,7 @@
}}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.maxDepositTerm">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.maxDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.maxDepositTerm +
@@ -129,12 +129,12 @@
}}</span>
</div>
<!-- For Pre-mature closure -->
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Apply Penal Interest (less)' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.preClosurePenalApplicable | yesNo }}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.preClosurePenalApplicable">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.preClosurePenalApplicable">
<span class="flex-40">{{ 'labels.inputs.Penal Interest' | translate }} (%):</span>
<span class="flex-60">{{
recurringDepositProduct.preClosurePenalInterest +
@@ -145,7 +145,7 @@
}}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
<span class="flex-40">{{ 'labels.inputs.Recurring Deposit Type' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.isMandatoryDeposit">
{{ 'labels.text.Mandatory' | translate }}
@@ -155,53 +155,53 @@
</span>
</div>
<!-- -->
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.withHoldTax | yesNo }}</span>
</div>
<div class="flex-fill" *ngIf="recurringDepositProduct.withHoldTax">
<div class="layout-row flex-100" *ngIf="recurringDepositProduct.withHoldTax">
<span class="flex-40">{{ 'labels.inputs.Tax Group' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.taxGroupId | find: recurringDepositProductsTemplate.taxGroupOptions : 'id' : 'name'
}}</span>
</div>
<div class="layout-row-wrap responsive-column flex-fill" *ngIf="recurringDepositProduct.charts.length !== 0">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<div class="layout-row-wrap responsive-column flex-100" *ngIf="recurringDepositProduct.charts.length !== 0">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<div
*ngFor="let chart of recurringDepositProduct.charts; let chartIndex = index"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<div class="flex-fill" *ngIf="chart.name">
<div class="layout-row flex-100" *ngIf="chart.name">
<span class="flex-40">{{ 'labels.inputs.Name' | translate }}:</span>
<span class="flex-60">{{ chart.name }}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.From Date' | translate }}:</span>
<span class="flex-60">{{ chart.fromDate | dateFormat }}</span>
</div>
<div class="flex-fill" *ngIf="chart.endDate">
<div class="layout-row flex-100" *ngIf="chart.endDate">
<span class="flex-40">{{ 'labels.inputs.End Date' | translate }}:</span>
<span class="flex-60">{{ chart.endDate | dateFormat }}</span>
</div>
<div class="flex-fill" *ngIf="chart.description">
<div class="layout-row flex-100" *ngIf="chart.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ chart.description }}</span>
</div>
<div class="flex-fill">
<div class="layout-row flex-100">
<span class="flex-40">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.isPrimaryGroupingByAmount | yesNo }}</span>
</div>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="chart.chartSlabs"
*ngIf="chart.chartSlabs.length !== 0"
@@ -271,15 +271,15 @@
[attr.colspan]="chartSlabsDisplayedColumns[chartIndex].length"
>
<div
class="layout-row-wrap flex-fill incentives"
class="layout-row-wrap flex-100 incentives"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex[chartIndex] ? 'expanded' : 'collapsed'"
>
<mat-card class="layout-row-wrap flex-fill">
<mat-card class="layout-row-wrap flex-100">
<h4 class="mat-h4 flex-23">
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
@@ -362,15 +362,15 @@
<tr mat-row *matRowDef="let row; columns: chartSlabsIncentivesDisplayedColumns" class="incentives-row"></tr>
</table>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
</div>
</div>
<div *ngIf="recurringDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Charges' | translate }}</h3>
<div *ngIf="recurringDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Charges' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
<mat-divider class="flex-100"></mat-divider>
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Name' | translate }}</th>
<td mat-cell *matCellDef="let charge">
@@ -404,9 +404,9 @@
</table>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Accounting' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Accounting' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<mifosx-view-savings-accounting-details
*ngIf="!isNoneAccounting()"
[accountingRule]="accountingRule"
@@ -421,19 +421,19 @@
recurringDepositProduct.feeToIncomeAccountMappings?.length ||
recurringDepositProduct.penaltyToIncomeAccountMappings?.length)
"
class="layout-row-wrap responsive-column flex-fill"
class="layout-row-wrap responsive-column flex-100"
>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Advanced Accounting Rules' | translate }}</h3>
<mat-divider class="flex-fill"></mat-divider>
<mat-divider class="flex-100"></mat-divider>
<div
*ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Fund Sources for Payment Channels' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Fund Sources for Payment Channels' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings"
>
@@ -464,12 +464,12 @@
<div
*ngIf="recurringDepositProduct.feeToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Fees to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Fees to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.feeToIncomeAccountMappings"
>
@@ -497,12 +497,12 @@
<div
*ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap responsive-column"
class="flex-100 layout-row-wrap responsive-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.heading.Penalties to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings"
>
@@ -1,3 +1,6 @@
@use 'assets/styles/helper';
@use 'assets/styles/colours' as *;
h2,
h3,
h4 {
@@ -45,3 +48,9 @@ mat-divider {
.margin-t {
margin-top: 1em;
}
.mat-h3 {
margin-top: 10px !important;
font-weight: 300;
color: $status-approved;
}
@@ -1,4 +1,4 @@
<div class="layout-row align-end gap-2px responsive-column container m-b-20">
<div class="layout-row align-end gap-2px responsive-column container m-t-20 m-b-20">
<button mat-raised-button color="primary" [routerLink]="['../edit']">
<fa-icon icon="edit" class="m-r-10"></fa-icon>
{{ 'labels.buttons.Edit' | translate }}
@@ -9,50 +9,50 @@
<mat-card>
<mat-card-content>
<div class="responsive-column">
<h2 class="mat-h2 flex-fill">{{ recurringDepositProduct.name }}</h2>
<h2 class="mat-h2 flex-100">{{ recurringDepositProduct.name }}</h2>
<mat-divider [inset]="true"></mat-divider>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Details' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Details' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Short Name' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.shortName }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.description">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.description }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Currency' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Currency' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.heading.Currency' | translate }}:</span>
<span class="flex-60"
>({{ recurringDepositProduct.currency.code }}) {{ recurringDepositProduct.currency.name }}</span
>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Decimal Places' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.currency.decimalPlaces }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Currency in multiples of' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.currency.inMultiplesOf | formatNumber }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Terms' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Terms' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Deposit Amount' | translate }}:</span>
<span class="flex-60">{{
recurringDepositProduct.depositAmount +
@@ -68,31 +68,31 @@
}}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Compounding Period' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.interestCompoundingPeriodType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Posting Period' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.interestPostingPeriodType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Interest Calculated using' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.interestCalculationType.value }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Days in Year' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.interestCalculationDaysInYearType.value }}</span>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Settings' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Settings' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.lockinPeriodFrequency">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.lockinPeriodFrequency">
<span class="flex-40">{{ 'labels.inputs.Lock-in Period' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.lockinPeriodFrequency !== undefined">
{{ recurringDepositProduct.lockinPeriodFrequency }}
@@ -100,7 +100,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.minDepositTerm">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.minDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Minimum Deposit Term' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.minDepositTerm !== undefined"
>{{ recurringDepositProduct.minDepositTerm }}
@@ -109,7 +109,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.maxDepositTerm">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.maxDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Maximum Deposit Term' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.maxDepositTerm !== undefined"
>{{ recurringDepositProduct.maxDepositTerm }}
@@ -118,7 +118,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.inMultipleOfDepositTerm">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.inMultipleOfDepositTerm">
<span class="flex-40">{{ 'labels.inputs.Deposit Term In multiple of' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.inMultipleOfDepositTerm !== undefined"
>{{ recurringDepositProduct.inMultipleOfDepositTerm }}
@@ -127,7 +127,7 @@
>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.isMandatoryDeposit !== undefined">
<span class="flex-40">{{ 'labels.inputs.Recurring Deposit Type' | translate }}:</span>
<span class="flex-60" *ngIf="recurringDepositProduct.isMandatoryDeposit">
{{ 'labels.text.Mandatory' | translate }}
@@ -137,7 +137,7 @@
</span>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.preClosurePenalInterest">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.preClosurePenalInterest">
<span class="flex-40">{{ 'labels.inputs.Apply penal interest (less)' | translate }}:</span>
<span class="flex-60"
><span class="m-r-5">{{ recurringDepositProduct.preClosurePenalInterest }}</span
@@ -146,49 +146,49 @@
</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax is Applicable' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.withHoldTax | yesNo }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.withHoldTax">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.withHoldTax">
<span class="flex-40">{{ 'labels.inputs.Withhold Tax group' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.taxGroup.name }}</span>
</div>
<div *ngIf="recurringDepositProduct.activeChart" class="layout-row-wrap responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<div *ngIf="recurringDepositProduct.activeChart" class="layout-row-wrap responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Interest Rate Charts' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div class="layout-row-wrap responsive-column flex-fill">
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.activeChart.name">
<div class="layout-row-wrap responsive-column flex-100">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.activeChart.name">
<span class="flex-40">{{ 'labels.inputs.Name' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.activeChart.name }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Valid from Date' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.activeChart.fromDate | dateFormat }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.activeChart.endDate">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.activeChart.endDate">
<span class="flex-40">{{ 'labels.inputs.End Date' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.activeChart.endDate | dateFormat }}</span>
</div>
<div class="flex-fill layout-row" *ngIf="recurringDepositProduct.activeChart.description">
<div class="flex-100 layout-row" *ngIf="recurringDepositProduct.activeChart.description">
<span class="flex-40">{{ 'labels.inputs.Description' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.activeChart.description }}</span>
</div>
<div class="flex-fill layout-row">
<div class="flex-100 layout-row">
<span class="flex-40">{{ 'labels.inputs.Primary Grouping by Amount' | translate }}:</span>
<span class="flex-60">{{ recurringDepositProduct.activeChart.isPrimaryGroupingByAmount | yesNo }}</span>
</div>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.activeChart.chartSlabs"
multiTemplateDataRows
@@ -255,15 +255,15 @@
[attr.colspan]="chartSlabsDisplayedColumns.length"
>
<div
class="incentives flex-fill layout-row-wrap"
class="incentives flex-100 layout-row-wrap"
[@expandChartSlab]="chartSlabIndex === expandChartSlabIndex ? 'expanded' : 'collapsed'"
>
<mat-card class="layout-row-wrap flex-fill">
<mat-card class="layout-row-wrap flex-100">
<h4 class="mat-h4 flex-23">
{{ 'labels.heading.Incentives' | translate }}
</h4>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="chartSlab.incentives">
<ng-container matColumnDef="entityType">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Entity Type' | translate }}</th>
<td mat-cell *matCellDef="let incentive">
@@ -363,12 +363,12 @@
</div>
</div>
<div *ngIf="recurringDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-fill">
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Charges' | translate }}</h3>
<div *ngIf="recurringDepositProduct.charges.length" class="layout-row-wrap responsive-column flex-100">
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Charges' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<table class="flex-fill mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
<table class="flex-100 mat-elevation-z1" mat-table [dataSource]="recurringDepositProduct.charges">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>{{ 'labels.inputs.Name' | translate }}</th>
<td mat-cell *matCellDef="let charge">
@@ -402,7 +402,7 @@
</table>
</div>
<h3 class="mat-h3 flex-fill">{{ 'labels.heading.Accounting' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.heading.Accounting' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
@@ -414,27 +414,27 @@
</mifosx-view-savings-accounting-details>
<div
class="flex-fill layout-row-wrap layout-column.lt-md"
class="flex-100 layout-row-wrap layout-column.lt-md"
*ngIf="
recurringDepositProduct.paymentChannelToFundSourceMappings?.length ||
recurringDepositProduct.feeToIncomeAccountMappings?.length ||
recurringDepositProduct.penaltyToIncomeAccountMappings?.length
"
>
<h3 class="mat-h3 flex-fill">{{ 'labels.inputs.Advanced Accounting Rules' | translate }}</h3>
<h3 class="mat-h3 flex-100">{{ 'labels.inputs.Advanced Accounting Rules' | translate }}</h3>
<mat-divider [inset]="true"></mat-divider>
<div
*ngIf="recurringDepositProduct.paymentChannelToFundSourceMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">
<h4 class="mat-h4 flex-100">
{{ 'labels.inputs.Configure Fund Sources for Payment Channels' | translate }}
</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.paymentChannelToFundSourceMappings"
>
@@ -459,12 +459,12 @@
<div
*ngIf="recurringDepositProduct.feeToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.inputs.Fees to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.inputs.Fees to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.feeToIncomeAccountMappings"
>
@@ -489,12 +489,12 @@
<div
*ngIf="recurringDepositProduct.penaltyToIncomeAccountMappings?.length"
class="flex-fill layout-row-wrap layout-xs-column"
class="flex-100 layout-row-wrap layout-xs-column"
>
<h4 class="mat-h4 flex-fill">{{ 'labels.inputs.Penalties to Specific Income Accounts' | translate }}</h4>
<h4 class="mat-h4 flex-100">{{ 'labels.inputs.Penalties to Specific Income Accounts' | translate }}</h4>
<table
class="mat-elevation-z1 flex-fill"
class="mat-elevation-z1 flex-100"
mat-table
[dataSource]="recurringDepositProduct.penaltyToIncomeAccountMappings"
>