Use of Decimals to Display user setting to format numbers (#1695)

Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
This commit is contained in:
José Alberto Hernández
2023-03-06 07:56:43 -06:00
committed by GitHub
co-authored by Jose Alberto Hernandez
parent 814bb87c16
commit 99c2d4780d
48 changed files with 242 additions and 166 deletions
@@ -12,7 +12,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">Transaction Amount:</span> <span fxFlex="40%">Transaction Amount:</span>
<span fxFlex="60%">{{ viewAccountTransferData.currency.displaySymbol }} {{ viewAccountTransferData.transferAmount | number }} ({{ viewAccountTransferData.currency.code }})</span> <span fxFlex="60%">{{ viewAccountTransferData.currency.displaySymbol }} {{ viewAccountTransferData.transferAmount | formatNumber }} ({{ viewAccountTransferData.currency.code }})</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -125,12 +125,12 @@
<ng-container matColumnDef="debit"> <ng-container matColumnDef="debit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Debit </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Debit </th>
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | number }} </span></td> <td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'DEBIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
<ng-container matColumnDef="credit"> <ng-container matColumnDef="credit">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Credit </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Credit </th>
<td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | number }} </span></td> <td mat-cell *matCellDef="let journalEntry"><span *ngIf="journalEntry.entryType.value === 'CREDIT'"> {{ journalEntry.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -45,7 +45,7 @@
<span *ngIf="data.journalEntry.entryType.value === 'DEBIT'">Debit</span> <span *ngIf="data.journalEntry.entryType.value === 'DEBIT'">Debit</span>
</th> </th>
<td> <td>
{{ data.journalEntry.currency.displaySymbol }} {{ data.journalEntry.amount | number }} {{ data.journalEntry.currency.displaySymbol }} {{ data.journalEntry.amount | formatNumber }}
</td> </td>
</tr> </tr>
@@ -81,12 +81,12 @@
<ng-container matColumnDef="debit"> <ng-container matColumnDef="debit">
<th mat-header-cell class="center" *matHeaderCellDef mat-sort-header> Debit </th> <th mat-header-cell class="center" *matHeaderCellDef mat-sort-header> Debit </th>
<td mat-cell *matCellDef="let transaction"><span *ngIf="transaction.entryType.value === 'DEBIT'"> {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | number }} </span></td> <td mat-cell *matCellDef="let transaction"><span *ngIf="transaction.entryType.value === 'DEBIT'"> {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
<ng-container matColumnDef="credit"> <ng-container matColumnDef="credit">
<th mat-header-cell class="center" *matHeaderCellDef mat-sort-header> Credit </th> <th mat-header-cell class="center" *matHeaderCellDef mat-sort-header> Credit </th>
<td mat-cell *matCellDef="let transaction"><span *ngIf="transaction.entryType.value === 'CREDIT'"> {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | number }} </span></td> <td mat-cell *matCellDef="let transaction"><span *ngIf="transaction.entryType.value === 'CREDIT'"> {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | formatNumber }} </span></td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -104,7 +104,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.amount | number }} </td> <td mat-cell *matCellDef="let element" [ngClass]="{'strikeoff':element.reversed}"> {{element.amount | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="actions"> <ng-container matColumnDef="actions">
@@ -36,7 +36,7 @@
<ng-container matColumnDef="score"> <ng-container matColumnDef="score">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Score </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Score </th>
<td mat-cell *matCellDef="let survey"> {{ survey.score | number }} </td> <td mat-cell *matCellDef="let survey"> {{ survey.score | formatNumber }} </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
@@ -9,13 +9,13 @@
<p> <p>
No. Of Loan Cycles :{{clientSummary?.loanCycle}} <br /> No. Of Loan Cycles :{{clientSummary?.loanCycle}} <br />
No. of Active Loans :{{clientSummary?.activeLoans}} <br /> No. of Active Loans :{{clientSummary?.activeLoans}} <br />
Last Loan Amount :{{clientSummary?.lastLoanAmount | number}} <br /> Last Loan Amount :{{clientSummary?.lastLoanAmount | formatNumber}} <br />
</p> </p>
</td> </td>
<td> <td>
<p> <p>
No. of Active Savings :{{clientSummary?.activeSavings}} <br /> No. of Active Savings :{{clientSummary?.activeSavings}} <br />
Total Savings :{{clientSummary?.totalSavings | number}} <br /> Total Savings :{{clientSummary?.totalSavings | formatNumber}} <br />
</p> </p>
</td> </td>
</tr> </tr>
@@ -54,22 +54,22 @@
<ng-container matColumnDef="Due"> <ng-container matColumnDef="Due">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Due </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Due </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amount | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.amount | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Paid"> <ng-container matColumnDef="Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Paid </th> <th mat-header-cell class="r-amount" *matHeaderCellDef>Paid </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Waived"> <ng-container matColumnDef="Waived">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Waived </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Waived </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountWaived | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountWaived | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Outstanding"> <ng-container matColumnDef="Outstanding">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Outstanding </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Outstanding </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountOutstanding | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountOutstanding | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Actions"> <ng-container matColumnDef="Actions">
@@ -128,12 +128,12 @@
</ng-container> </ng-container>
<ng-container matColumnDef="Loan Balance"> <ng-container matColumnDef="Loan Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Loan Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Loan Balance </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Amount Paid"> <ng-container matColumnDef="Amount Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.amountPaid | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Type"> <ng-container matColumnDef="Type">
@@ -203,12 +203,12 @@
<ng-container matColumnDef="Loan Balance"> <ng-container matColumnDef="Loan Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Loan Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef>Loan Balance </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.loanBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Amount Paid"> <ng-container matColumnDef="Amount Paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Amount Paid </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Type"> <ng-container matColumnDef="Type">
@@ -265,7 +265,7 @@
<ng-container matColumnDef="Balance"> <ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Actions"> <ng-container matColumnDef="Actions">
@@ -363,7 +363,7 @@
<ng-container matColumnDef="Balance"> <ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Actions"> <ng-container matColumnDef="Actions">
@@ -455,7 +455,7 @@
<ng-container matColumnDef="Balance"> <ng-container matColumnDef="Balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | number}} </td> <td mat-cell class="r-amount" *matCellDef="let element"> {{element.accountBalance | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="Actions"> <ng-container matColumnDef="Actions">
@@ -640,17 +640,17 @@
<ng-container matColumnDef="Quantity"> <ng-container matColumnDef="Quantity">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Quantity</th> <th mat-header-cell class="r-amount" *matHeaderCellDef>Quantity</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.quantity | number }}</td> <td mat-cell class="r-amount" *matCellDef="let element">{{ element.quantity | formatNumber }}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Total Value"> <ng-container matColumnDef="Total Value">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Total Value</th> <th mat-header-cell class="r-amount" *matHeaderCellDef>Total Value</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.basePrice*element.quantity | number}}</td> <td mat-cell class="r-amount" *matCellDef="let element">{{ element.basePrice*element.quantity | formatNumber}}</td>
</ng-container> </ng-container>
<ng-container matColumnDef="Total Collateral Value"> <ng-container matColumnDef="Total Collateral Value">
<th mat-header-cell class="r-amount" *matHeaderCellDef>Total Collateral Value</th> <th mat-header-cell class="r-amount" *matHeaderCellDef>Total Collateral Value</th>
<td mat-cell class="r-amount" *matCellDef="let element">{{ element.pctToBase*element.basePrice*element.quantity/100 | number}}</td> <td mat-cell class="r-amount" *matCellDef="let element">{{ element.pctToBase*element.basePrice*element.quantity/100 | formatNumber}}</td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="collateralsColumns"></tr> <tr mat-header-row *matHeaderRowDef="collateralsColumns"></tr>
@@ -122,19 +122,19 @@
<tr> <tr>
<td>Maturity Amount</td> <td>Maturity Amount</td>
<td> <td>
<span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.maturityAmount | number}}</span> <span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.maturityAmount | formatNumber}}</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Recurring Deposit Amount</td> <td>Recurring Deposit Amount</td>
<td> <td>
<span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData?.mandatoryRecommendedDepositAmount | number}}</span> <span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData?.mandatoryRecommendedDepositAmount | formatNumber}}</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Deposits till Date</td> <td>Deposits till Date</td>
<td><span <td><span
*ngIf="recurringDepositsAccountData.summary.totalDeposits">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalDeposits | number}}</span> *ngIf="recurringDepositsAccountData.summary.totalDeposits">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalDeposits | formatNumber}}</span>
<span <span
*ngIf="!recurringDepositsAccountData.summary.totalDeposits">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;0</span> *ngIf="!recurringDepositsAccountData.summary.totalDeposits">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;0</span>
</td> </td>
@@ -142,7 +142,7 @@
<tr> <tr>
<td>Withdrwals till Date</td> <td>Withdrwals till Date</td>
<td><span <td><span
*ngIf="recurringDepositsAccountData.summary.totalWithdrawals">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalWithdrawals | number}}</span> *ngIf="recurringDepositsAccountData.summary.totalWithdrawals">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalWithdrawals | formatNumber}}</span>
<span <span
*ngIf="!recurringDepositsAccountData.summary.totalWithdrawals">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;0</span> *ngIf="!recurringDepositsAccountData.summary.totalWithdrawals">{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;0</span>
</td> </td>
@@ -150,7 +150,7 @@
<tr *ngIf="recurringDepositsAccountData.summary.totalInterestEarned >= 0"> <tr *ngIf="recurringDepositsAccountData.summary.totalInterestEarned >= 0">
<td >Interest Earned</td> <td >Interest Earned</td>
<td><span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalInterestEarned| number}}</span> <td><span>{{recurringDepositsAccountData.currency.displaySymbol}}&nbsp;{{recurringDepositsAccountData.summary.totalInterestEarned| formatNumber}}</span>
</td> </td>
</tr> </tr>
@@ -244,7 +244,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let charge"> {{ charge.amount| number }} </td> <td mat-cell *matCellDef="let charge"> {{ charge.amount| formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="collectedon"> <ng-container matColumnDef="collectedon">
@@ -104,7 +104,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let charge"> {{ charge.amount| number }} </td> <td mat-cell *matCellDef="let charge"> {{ charge.amount| formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="collectedon"> <ng-container matColumnDef="collectedon">
@@ -244,7 +244,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let charge"> {{ charge.amount| number }} </td> <td mat-cell *matCellDef="let charge"> {{ charge.amount| formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="collectedon"> <ng-container matColumnDef="collectedon">
@@ -93,7 +93,7 @@
<div fxFlexFill *ngIf="loanDetails.canDefineInstallmentAmount"> <div fxFlexFill *ngIf="loanDetails.canDefineInstallmentAmount">
<span fxFlex="50%"> Fixed EMI amount</span> <span fxFlex="50%"> Fixed EMI amount</span>
<span fxFlex="50%"> {{loanDetails.fixedEmiAmount | number}} </span> <span fxFlex="50%"> {{loanDetails.fixedEmiAmount | formatNumber}} </span>
</div> </div>
<div fxFlexFill *ngIf="loanDetails.isTopup"> <div fxFlexFill *ngIf="loanDetails.isTopup">
@@ -108,7 +108,7 @@
<div fxFlexFill *ngIf="loanDetails.isTopup"> <div fxFlexFill *ngIf="loanDetails.isTopup">
<span fxFlex="50%"> Topup closure amount</span> <span fxFlex="50%"> Topup closure amount</span>
<span fxFlex="50%"> {{loanDetails.topupAmount| number}} </span> <span fxFlex="50%"> {{loanDetails.topupAmount| formatNumber}} </span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -51,7 +51,7 @@
<ng-container matColumnDef="outstanding"> <ng-container matColumnDef="outstanding">
<th mat-header-cell class="r-amount" *matHeaderCellDef mat-sort-header> Outstanding </th> <th mat-header-cell class="r-amount" *matHeaderCellDef mat-sort-header> Outstanding </th>
<td mat-cell class="r-amount" *matCellDef="let charge"> {{ charge.currency.displaySymbol }}{{ <td mat-cell class="r-amount" *matCellDef="let charge"> {{ charge.currency.displaySymbol }}{{
charge.amountOutstanding| number }} </td> charge.amountOutstanding| formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="actions"> <ng-container matColumnDef="actions">
@@ -10,7 +10,7 @@
<b>Number of Repayments :</b> <b>Number of Repayments :</b>
</td> </td>
<td fxFlex="25%" class="left"> <td fxFlex="25%" class="left">
{{loanDetails?.numberOfRepayments | number}} {{loanDetails?.numberOfRepayments | formatNumber}}
</td> </td>
<td fxFlex="25%"> <td fxFlex="25%">
<b>Maturity Date :</b> <b>Maturity Date :</b>
@@ -25,7 +25,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ dataObject.principalPortion | number }} {{ dataObject.principalPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -33,7 +33,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ dataObject.interestPortion | number }} {{ dataObject.interestPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -41,7 +41,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ dataObject.feeChargesPortion | number }} {{ dataObject.feeChargesPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -49,7 +49,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ dataObject.penaltyChargesPortion | number }} {{ dataObject.penaltyChargesPortion | formatNumber }}
</div> </div>
</div> </div>
@@ -25,7 +25,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ prepayData.principalPortion | number }} {{ prepayData.principalPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -33,7 +33,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ prepayData.interestPortion | number }} {{ prepayData.interestPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -41,7 +41,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ prepayData.feeChargesPortion | number }} {{ prepayData.feeChargesPortion | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -49,7 +49,7 @@
</div> </div>
<div fxFlex="50%" class="r-amount right-label"> <div fxFlex="50%" class="r-amount right-label">
{{ prepayData.penaltyChargesPortion | number }} {{ prepayData.penaltyChargesPortion | formatNumber }}
</div> </div>
</div> </div>
@@ -43,18 +43,18 @@
<tr> <tr>
<td>Approved Amount</td> <td>Approved Amount</td>
<td> <td>
<span>{{dataObject.approvedPrincipal | number}}</span> <span>{{dataObject.approvedPrincipal | formatNumber}}</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Disburse Amount</td> <td>Disburse Amount</td>
<td> <td>
<span>{{dataObject.principal | number}}</span> <span>{{dataObject.principal | formatNumber}}</span>
</td> </td>
</tr> </tr>
<tr> <tr>
<td>Arrears By</td> <td>Arrears By</td>
<td>{{dataObject.summary.totalOverdue | number}} <td>{{dataObject.summary.totalOverdue | formatNumber}}
<span *ngIf="dataObject.summary.totalOverdue < 0">Not Provided</span> <span *ngIf="dataObject.summary.totalOverdue < 0">Not Provided</span>
</td> </td>
</tr> </tr>
@@ -2,7 +2,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">Maximum allowed outstanding balance:</span> <span fxFlex="40%">Maximum allowed outstanding balance:</span>
<span fxFlex="60%">{{ loanDetails.maxOutstandingLoanBalance | number }}</span> <span fxFlex="60%">{{ loanDetails.maxOutstandingLoanBalance | formatNumber }}</span>
</div> </div>
<h3>Loan Tranche Details</h3> <h3>Loan Tranche Details</h3>
@@ -31,26 +31,26 @@
</span> </span>
<span class="loans-overview" <span class="loans-overview"
*ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.pastDueDays > 0"> *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.pastDueDays > 0">
Past Due Days : {{loanDetailsData?.delinquent.pastDueDays | number}}<br /> Past Due Days : {{loanDetailsData?.delinquent.pastDueDays | formatNumber}}<br />
</span> </span>
<span class="loans-overview" *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.delinquentDays > 0 <span class="loans-overview" *ngIf="loanDetailsData.delinquent && loanDetailsData.delinquent.delinquentDays > 0
&& loanDetailsData.delinquent.pastDueDays != loanDetailsData.delinquent.delinquentDays"> && loanDetailsData.delinquent.pastDueDays != loanDetailsData.delinquent.delinquentDays">
Delinquent Days : {{loanDetailsData?.delinquent.delinquentDays | number}} Delinquent Days : {{loanDetailsData?.delinquent.delinquentDays | formatNumber}}
</span> </span>
</div> </div>
<div *ngIf="loanDetailsData.summary" class="loans-overview mat-typography" fxFlex="40%"> <div *ngIf="loanDetailsData.summary" class="loans-overview mat-typography" fxFlex="40%">
<h3> Loan Account OverView </h3> <h3> Loan Account OverView </h3>
<span>Current Balance: {{loanDetailsData.currency.displaySymbol}} <span>Current Balance: {{loanDetailsData.currency.displaySymbol}}
{{loanDetailsData.summary.totalOutstanding | number}}</span><br> {{loanDetailsData.summary.totalOutstanding | formatNumber}}</span><br>
<span *ngIf="loanDetailsData.inArrears">Arrears By: {{loanDetailsData.summary.totalOverdue | number}} <span *ngIf="loanDetailsData.inArrears">Arrears By: {{loanDetailsData.summary.totalOverdue | formatNumber}}
<span *ngIf="!(loanDetailsData.summary.totalOverdue>=0)">Not Provided</span> <span *ngIf="!(loanDetailsData.summary.totalOverdue>=0)">Not Provided</span>
</span><br> </span><br>
<span *ngIf="loanDetailsData.inArrears">Arrears Since: {{loanDetailsData.summary.overdueSinceDate | <span *ngIf="loanDetailsData.inArrears">Arrears Since: {{loanDetailsData.summary.overdueSinceDate |
dateFormat}} dateFormat}}
</span> </span>
<span *ngIf="loanDetailsData.totalOverpaid && loanDetailsData.totalOverpaid > 0"> <span *ngIf="loanDetailsData.totalOverpaid && loanDetailsData.totalOverpaid > 0">
Overpaid By: {{loanDetailsData.currency.displaySymbol}} {{loanDetailsData.totalOverpaid | number}} Overpaid By: {{loanDetailsData.currency.displaySymbol}} {{loanDetailsData.totalOverpaid | formatNumber}}
</span> </span>
</div> </div>
@@ -10,38 +10,38 @@
<ng-container matColumnDef="principalDue"> <ng-container matColumnDef="principalDue">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Principal Due </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Principal Due </th>
<td mat-cell *matCellDef="let ele"> {{ ele.principalDue | number }} </td> <td mat-cell *matCellDef="let ele"> {{ ele.principalDue | formatNumber }} </td>
<td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalPrincipalExpected | number }} </b> </td> <td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalPrincipalExpected | formatNumber }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="balanceOfLoan"> <ng-container matColumnDef="balanceOfLoan">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Balance Of Loan </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Balance Of Loan </th>
<td mat-cell *matCellDef="let ele"> {{ ele.principalLoanBalanceOutstanding | number }} </td> <td mat-cell *matCellDef="let ele"> {{ ele.principalLoanBalanceOutstanding | formatNumber }} </td>
<td mat-footer-cell *matFooterCellDef> &nbsp; </td> <td mat-footer-cell *matFooterCellDef> &nbsp; </td>
</ng-container> </ng-container>
<ng-container matColumnDef="interest"> <ng-container matColumnDef="interest">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Interest </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Interest </th>
<td mat-cell *matCellDef="let ele"> {{ ele.interestOriginalDue | number}} </td> <td mat-cell *matCellDef="let ele"> {{ ele.interestOriginalDue | formatNumber}} </td>
<td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalInterestCharged | number }} </b> </td> <td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalInterestCharged | formatNumber }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="fees"> <ng-container matColumnDef="fees">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Fees </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Fees </th>
<td mat-cell *matCellDef="let ele"> {{ ele.feeChargesDue | number}} </td> <td mat-cell *matCellDef="let ele"> {{ ele.feeChargesDue | formatNumber}} </td>
<td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalFeeChargesCharged | number }} </b> </td> <td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalFeeChargesCharged | formatNumber }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="penalties"> <ng-container matColumnDef="penalties">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Penalties </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Penalties </th>
<td mat-cell *matCellDef="let ele"> {{ ele.penaltyChargesDue | number}} </td> <td mat-cell *matCellDef="let ele"> {{ ele.penaltyChargesDue | formatNumber}} </td>
<td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalPenaltyChargesCharged | number }} </b> </td> <td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalPenaltyChargesCharged | formatNumber }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="outstanding"> <ng-container matColumnDef="outstanding">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Outstanding </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Outstanding </th>
<td mat-cell *matCellDef="let ele"> {{ ele.totalOutstandingForPeriod | number}} </td> <td mat-cell *matCellDef="let ele"> {{ ele.totalOutstandingForPeriod | formatNumber}} </td>
<td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalRepaymentExpected | number }} </b> </td> <td mat-footer-cell *matFooterCellDef> <b> {{ originalScheduleDetails.totalRepaymentExpected | formatNumber }} </b> </td>
</ng-container> </ng-container>
<!-- Header row first group --> <!-- Header row first group -->
@@ -14,7 +14,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th>
<td mat-cell *matCellDef="let charge"> {{ charge.amount| number }} </td> <td mat-cell *matCellDef="let charge"> {{ charge.amount| formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="collectedon"> <ng-container matColumnDef="collectedon">
@@ -36,62 +36,62 @@
<ng-container matColumnDef="balanceOfLoan"> <ng-container matColumnDef="balanceOfLoan">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance Of Loan </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance Of Loan </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.principalLoanBalanceOutstanding | number }} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.principalLoanBalanceOutstanding | formatNumber }} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> &nbsp; </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> &nbsp; </td>
</ng-container> </ng-container>
<ng-container matColumnDef="principalDue"> <ng-container matColumnDef="principalDue">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Principal Due </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Principal Due </th>
<td mat-cell class="check r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.principalDue | number }} </td> <td mat-cell class="check r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.principalDue | formatNumber }} </td>
<td mat-footer-cell class="check r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPrincipalExpected | currency }}</b> </td> <td mat-footer-cell class="check r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPrincipalExpected | currency }}</b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="interest"> <ng-container matColumnDef="interest">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Interest </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Interest </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.interestOriginalDue | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.interestOriginalDue | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalInterestCharged | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalInterestCharged | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="fees"> <ng-container matColumnDef="fees">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Fees </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Fees </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.feeChargesDue | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.feeChargesDue | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalFeeChargesCharged | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalFeeChargesCharged | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="penalties"> <ng-container matColumnDef="penalties">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Penalties </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Penalties </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.penaltyChargesDue | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.penaltyChargesDue | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPenaltyChargesCharged | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPenaltyChargesCharged | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="due"> <ng-container matColumnDef="due">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Due </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Due </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalDueForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalDueForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepaymentExpected | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepaymentExpected | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="paid"> <ng-container matColumnDef="paid">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Paid </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Paid </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepayment | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepayment | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="inadvance"> <ng-container matColumnDef="inadvance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> In advance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> In advance </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidInAdvanceForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidInAdvanceForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPaidInAdvance | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPaidInAdvance | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="late"> <ng-container matColumnDef="late">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Late </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Late </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidLateForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalPaidLateForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPaidLate | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPaidLate | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container *ngIf="isWaived"> <ng-container *ngIf="isWaived">
<ng-container matColumnDef="waived"> <ng-container matColumnDef="waived">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Waived </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Waived </th>
<td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalWaivedForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele" [ngClass]="installmentStyle(ele)"> {{ ele.totalWaivedForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalWaived | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalWaived | currency }} </b> </td>
</ng-container> </ng-container>
</ng-container> </ng-container>
@@ -106,7 +106,7 @@
<ng-container matColumnDef="outstanding"> <ng-container matColumnDef="outstanding">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Outstanding </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Outstanding </th>
<td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.totalOutstandingForPeriod | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.totalOutstandingForPeriod | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalOutstanding | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalOutstanding | currency }} </b> </td>
</ng-container> </ng-container>
@@ -152,25 +152,25 @@
<ng-container matColumnDef="balanceOfLoan"> <ng-container matColumnDef="balanceOfLoan">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance Of Loan </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance Of Loan </th>
<td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.principalLoanBalanceOutstanding | number }} </td> <td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.principalLoanBalanceOutstanding | formatNumber }} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> &nbsp; </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> &nbsp; </td>
</ng-container> </ng-container>
<ng-container matColumnDef="principalDue"> <ng-container matColumnDef="principalDue">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Principal Due </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Principal Due </th>
<td mat-cell class="check r-amount" *matCellDef="let ele"> {{ ele.principalDue | number }} </td> <td mat-cell class="check r-amount" *matCellDef="let ele"> {{ ele.principalDue | formatNumber }} </td>
<td mat-footer-cell class="check r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPrincipalExpected | currency }}</b> </td> <td mat-footer-cell class="check r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalPrincipalExpected | currency }}</b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="interest"> <ng-container matColumnDef="interest">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Interest </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Interest </th>
<td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.interestOriginalDue | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.interestOriginalDue | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalInterestCharged | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalInterestCharged | currency }} </b> </td>
</ng-container> </ng-container>
<ng-container matColumnDef="fees"> <ng-container matColumnDef="fees">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Fees </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Fees </th>
<td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.feeChargesDue | number}} </td> <td mat-cell class="r-amount" *matCellDef="let ele"> {{ ele.feeChargesDue | formatNumber}} </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalFeeChargesCharged | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalFeeChargesCharged | currency }} </b> </td>
</ng-container> </ng-container>
@@ -178,10 +178,10 @@
<th mat-header-cell class="r-amount" *matHeaderCellDef> Installment Amount </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Installment Amount </th>
<td mat-cell class="r-amount" *matCellDef="let ele"> <td mat-cell class="r-amount" *matCellDef="let ele">
<span *ngIf="!ele.changed"> <span *ngIf="!ele.changed">
{{ ele.totalDueForPeriod | number}} {{ ele.totalDueForPeriod | formatNumber}}
</span> </span>
<span *ngIf="ele.changed" class="amount-changed"> <span *ngIf="ele.changed" class="amount-changed">
<b>{{ ele.totalDueForPeriod | number}}</b> <b>{{ ele.totalDueForPeriod | formatNumber}}</b>
</span> </span>
</td> </td>
<td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepaymentExpected | currency }} </b> </td> <td mat-footer-cell class="r-amount" *matFooterCellDef> <b> {{ repaymentScheduleDetails.totalRepaymentExpected | currency }} </b> </td>
@@ -41,32 +41,32 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell class="center" *matHeaderCellDef> Amount </th> <th mat-header-cell class="center" *matHeaderCellDef> Amount </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.amount | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.amount | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="principal"> <ng-container matColumnDef="principal">
<th mat-header-cell class="center" *matHeaderCellDef> Breakdown </th> <th mat-header-cell class="center" *matHeaderCellDef> Breakdown </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.principalPortion | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.principalPortion | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="interest"> <ng-container matColumnDef="interest">
<th mat-header-cell *matHeaderCellDef> </th> <th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.interestPortion | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.interestPortion | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="fee"> <ng-container matColumnDef="fee">
<th mat-header-cell *matHeaderCellDef> </th> <th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.feeChargesPortion | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.feeChargesPortion | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="penalties"> <ng-container matColumnDef="penalties">
<th mat-header-cell *matHeaderCellDef> </th> <th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.penaltyChargesPortion | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.penaltyChargesPortion | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="loanBalance"> <ng-container matColumnDef="loanBalance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Loan Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Loan Balance </th>
<td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.outstandingLoanBalance | number }} </td> <td mat-cell class="r-amount td-min-space" *matCellDef="let transaction" [ngClass]="loanTransactionColor(transaction)"> {{ transaction.outstandingLoanBalance | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="actions"> <ng-container matColumnDef="actions">
@@ -101,7 +101,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amount | number }} {{ chargeData.amount | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -109,7 +109,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountPaid | number }} {{ chargeData.amountPaid | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -117,7 +117,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountWaived | number }} {{ chargeData.amountWaived | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -125,7 +125,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountOutstanding | number }} {{ chargeData.amountOutstanding | formatNumber }}
</div> </div>
</div> </div>
@@ -112,7 +112,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th>
<td mat-cell *matCellDef="let instruction"> {{ instruction.amount | number }} </td> <td mat-cell *matCellDef="let instruction"> {{ instruction.amount | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="status"> <ng-container matColumnDef="status">
@@ -46,7 +46,7 @@
</div> </div>
<div fxFlex="25%" fxFlex.lt-md="50%"> <div fxFlex="25%" fxFlex.lt-md="50%">
{{ cashierData.netCash | number }} [{{currencySelector.value}}] {{ cashierData.netCash | formatNumber }} [{{currencySelector.value}}]
</div> </div>
</div> </div>
@@ -94,23 +94,23 @@
</ng-container> </ng-container>
<ng-container matColumnDef="allocation"> <ng-container matColumnDef="allocation">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Allocation ({{cashierData.sumCashAllocation | number}}) </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Allocation ({{cashierData.sumCashAllocation | formatNumber}}) </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Allocate Cash" ? (transaction.txnAmount | number) : '-' }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Allocate Cash" ? (transaction.txnAmount | formatNumber) : '-' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="cashIn"> <ng-container matColumnDef="cashIn">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Cash In ({{cashierData.sumInwardCash | number}}) </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Cash In ({{cashierData.sumInwardCash | formatNumber}}) </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Cash In" ? (transaction.txnAmount | number) : '-' }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Cash In" ? (transaction.txnAmount | formatNumber) : '-' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="cashOut"> <ng-container matColumnDef="cashOut">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Cash Out ({{cashierData.sumOutwardCash | number}}) </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Cash Out ({{cashierData.sumOutwardCash | formatNumber}}) </th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Cash Out" ? (transaction.txnAmount | number) : '-' }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Cash Out" ? (transaction.txnAmount | formatNumber) : '-' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="settlement"> <ng-container matColumnDef="settlement">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Settlement ({{cashierData.sumCashSettlement | number}})</th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Settlement ({{cashierData.sumCashSettlement | formatNumber}})</th>
<td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Settle Cash" ? (transaction.txnAmount | number) : '-' }} </td> <td mat-cell *matCellDef="let transaction"> {{ transaction.txnType.value === "Settle Cash" ? (transaction.txnAmount | formatNumber) : '-' }} </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
+8
View File
@@ -0,0 +1,8 @@
import { FormatNumberPipe } from './format-number.pipe';
describe('FormatNumberPipe', () => {
it('create an instance', () => {
const pipe = new FormatNumberPipe();
expect(pipe).toBeTruthy();
});
});
+24
View File
@@ -0,0 +1,24 @@
import { DecimalPipe } from '@angular/common';
import { Pipe, PipeTransform } from '@angular/core';
import { SettingsService } from 'app/settings/settings.service';
@Pipe({
name: 'formatNumber'
})
export class FormatNumberPipe implements PipeTransform {
constructor(private decimalFormat: DecimalPipe,
private settingsService: SettingsService) {
}
transform(value: string | number, ...args: unknown[]): string {
if (!value) {
return '';
}
const locale = this.settingsService.language.code;
const decimals = this.settingsService.decimals;
const format = `1.${decimals}-${decimals}`;
return this.decimalFormat.transform(value, format, locale);
}
}
+4 -3
View File
@@ -9,13 +9,14 @@ import { UrlToStringPipe } from './url-to-string.pipe';
import { DateFormatPipe } from './date-format.pipe'; import { DateFormatPipe } from './date-format.pipe';
import { DatetimeFormatPipe } from './datetime-format.pipe'; import { DatetimeFormatPipe } from './datetime-format.pipe';
import { ExternalIdentifierPipe } from './external-identifier.pipe'; import { ExternalIdentifierPipe } from './external-identifier.pipe';
import { FormatNumberPipe } from './format-number.pipe';
@NgModule({ @NgModule({
imports: [ imports: [
CommonModule CommonModule
], ],
declarations: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe], declarations: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ],
providers: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe], providers: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ],
exports: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe] exports: [StatusLookupPipe, AccountsFilterPipe, ChargesFilterPipe, ChargesPenaltyFilterPipe, FindPipe, UrlToStringPipe, DateFormatPipe, DatetimeFormatPipe, ExternalIdentifierPipe, FormatNumberPipe ]
}) })
export class PipesModule { } export class PipesModule { }
@@ -42,7 +42,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th> <th mat-header-cell *matHeaderCellDef mat-sort-header> Amount </th>
<td mat-cell *matCellDef="let charge" class="r-amount"> {{ charge.amount | number }} </td> <td mat-cell *matCellDef="let charge" class="r-amount"> {{ charge.amount | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="penalty"> <ng-container matColumnDef="penalty">
@@ -46,7 +46,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">Currency in Multiples Of:</span> <span fxFlex="40%">Currency in Multiples Of:</span>
<span fxFlex="60%">{{ fixedDepositProductData.currency.inMultiplesOf | number}}</span> <span fxFlex="60%">{{ fixedDepositProductData.currency.inMultiplesOf | formatNumber}}</span>
</div> </div>
<h3 class="mat-h3" fxFlexFill>Terms</h3> <h3 class="mat-h3" fxFlexFill>Terms</h3>
@@ -125,7 +125,7 @@
<div fxFlexFill *ngIf="fixedDepositProductData.minBalanceForInterestCalculation"> <div fxFlexFill *ngIf="fixedDepositProductData.minBalanceForInterestCalculation">
<span fxFlex="40%">Balance Required For Interest Calculation:</span> <span fxFlex="40%">Balance Required For Interest Calculation:</span>
<span fxFlex="60%">{{ fixedDepositProductData.minBalanceForInterestCalculation | number }}</span> <span fxFlex="60%">{{ fixedDepositProductData.minBalanceForInterestCalculation | formatNumber }}</span>
</div> </div>
<div fxFlexFill> <div fxFlexFill>
@@ -329,7 +329,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let charge"> <td mat-cell *matCellDef="let charge">
{{ charge.amount | number }} {{ charge.amount | formatNumber }}
</td> </td>
</ng-container> </ng-container>
@@ -52,7 +52,7 @@
<ng-container matColumnDef="interestRate"> <ng-container matColumnDef="interestRate">
<th mat-header-cell *matHeaderCellDef matTooltip="Annualised Interest rate" mat-sort-header> Interest Rate </th> <th mat-header-cell *matHeaderCellDef matTooltip="Annualised Interest rate" mat-sort-header> Interest Rate </th>
<td mat-cell *matCellDef="let floatingRatePeriod"> {{ floatingRatePeriod.interestRate | number }} </td> <td mat-cell *matCellDef="let floatingRatePeriod"> {{ floatingRatePeriod.interestRate | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="isDifferential"> <ng-container matColumnDef="isDifferential">
@@ -75,9 +75,9 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">Principal:</span> <span fxFlex="40%">Principal:</span>
<span fxFlex="60%">{{ loanProduct.principal | number }} <span fxFlex="60%">{{ loanProduct.principal | formatNumber }}
(Min {{ (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) | number }} (Min {{ (loanProduct.minPrincipal ? loanProduct.minPrincipal : loanProduct.principal) | formatNumber }}
: Max {{ (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) | number }}) : Max {{ (loanProduct.maxPrincipal ? loanProduct.maxPrincipal : loanProduct.principal) | formatNumber }})
</span> </span>
</div> </div>
@@ -88,9 +88,9 @@
<div fxFlexFill *ngIf="loanProduct.allowApprovedDisbursedAmountsOverApplied"> <div fxFlexFill *ngIf="loanProduct.allowApprovedDisbursedAmountsOverApplied">
<span fxFlex="40%">Over Applied Amount:</span> <span fxFlex="40%">Over Applied Amount:</span>
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'percentage'">{{ loanProduct.overAppliedNumber | number <span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'percentage'">{{ loanProduct.overAppliedNumber | formatNumber
}} %</span> }} %</span>
<span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'flat'">{{ loanProduct.overAppliedNumber | number }} {{ <span fxFlex="60%" *ngIf="loanProduct.overAppliedCalculationType === 'flat'">{{ loanProduct.overAppliedNumber | formatNumber }} {{
loanProduct.currencyCode }}</span> loanProduct.currencyCode }}</span>
</div> </div>
@@ -26,7 +26,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ taxComponentData.percentage | number }} % {{ taxComponentData.percentage | formatNumber }} %
</div> </div>
<div fxFlex="50%" class="mat-body-strong" *ngIf="taxComponentData.debitAccountType"> <div fxFlex="50%" class="mat-body-strong" *ngIf="taxComponentData.debitAccountType">
@@ -47,7 +47,7 @@
<div fxFlexFill> <div fxFlexFill>
<span fxFlex="40%">Currency in Multiples Of:</span> <span fxFlex="40%">Currency in Multiples Of:</span>
<span fxFlex="60%">{{ recurringDepositProduct.currency.inMultiplesOf | number}}</span> <span fxFlex="60%">{{ recurringDepositProduct.currency.inMultiplesOf | formatNumber}}</span>
</div> </div>
<h3 class="mat-h3" fxFlexFill>Terms</h3> <h3 class="mat-h3" fxFlexFill>Terms</h3>
@@ -330,7 +330,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let charge"> <td mat-cell *matCellDef="let charge">
{{ charge.amount | number }} {{ charge.amount | formatNumber }}
</td> </td>
</ng-container> </ng-container>
@@ -113,7 +113,7 @@
<td>Interest On Overdraft</td> <td>Interest On Overdraft</td>
<td> <td>
{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalOverdraftInterestDerived {{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalOverdraftInterestDerived
| number}}</td> | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.interestNotPosted < 0"> <tr *ngIf="savingsAccountData.summary.interestNotPosted < 0">
<td>Overdraft Interest Not Posted</td> <td>Overdraft Interest Not Posted</td>
@@ -122,7 +122,7 @@
</tr> </tr>
<tr> <tr>
<td>Nominal Interest Rate</td> <td>Nominal Interest Rate</td>
<td>{{savingsAccountData.nominalAnnualInterestRate | number}} %</td> <td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td>
</tr> </tr>
<tr> <tr>
<td>Interest Compounding Period</td> <td>Interest Compounding Period</td>
@@ -167,28 +167,28 @@
</tr> </tr>
<tr *ngIf="savingsAccountData.annualFee"> <tr *ngIf="savingsAccountData.annualFee">
<td>Annual Fee</td> <td>Annual Fee</td>
<td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.annualFee.amount | number}} <td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.annualFee.amount | formatNumber}}
</td> </td>
</tr> </tr>
<tr *ngIf="savingsAccountData.allowOverdraft"> <tr *ngIf="savingsAccountData.allowOverdraft">
<td>Over Draft Limit</td> <td>Over Draft Limit</td>
<td>{{savingsAccountData.overdraftLimit | number}}</td> <td>{{savingsAccountData.overdraftLimit | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.allowOverdraft"> <tr *ngIf="savingsAccountData.allowOverdraft">
<td>Min Overdraft Required for Interest Calculation</td> <td>Min Overdraft Required for Interest Calculation</td>
<td>{{savingsAccountData.minOverdraftForInterestCalculation | number}}</td> <td>{{savingsAccountData.minOverdraftForInterestCalculation | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.minBalanceForInterestCalculation"> <tr *ngIf="savingsAccountData.minBalanceForInterestCalculation">
<td>Min Balance Required for Interest Calculation</td> <td>Min Balance Required for Interest Calculation</td>
<td>{{savingsAccountData.minBalanceForInterestCalculation | number}}</td> <td>{{savingsAccountData.minBalanceForInterestCalculation | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.minRequiredBalance"> <tr *ngIf="savingsAccountData.minRequiredBalance">
<td>Minimum Required Balance</td> <td>Minimum Required Balance</td>
<td>{{savingsAccountData.minRequiredBalance | number}}</td> <td>{{savingsAccountData.minRequiredBalance | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.enforceMinRequiredBalance"> <tr *ngIf="savingsAccountData.enforceMinRequiredBalance">
<td>Enforce Minimum Required Balance</td> <td>Enforce Minimum Required Balance</td>
<td>{{savingsAccountData.enforceMinRequiredBalance | number}}</td> <td>{{savingsAccountData.enforceMinRequiredBalance | formatNumber}}</td>
</tr> </tr>
<tr *ngIf="savingsAccountData.summary.lastInterestCalculationDate"> <tr *ngIf="savingsAccountData.summary.lastInterestCalculationDate">
<td>Interest Recalculation Date</td> <td>Interest Recalculation Date</td>
@@ -196,7 +196,7 @@
</tr> </tr>
<tr *ngIf="savingsAccountData.onHoldFunds"> <tr *ngIf="savingsAccountData.onHoldFunds">
<td>On Hold Funds</td> <td>On Hold Funds</td>
<td><a *mifosxHasPermission="'READ_SAVINGSACCOUNT'">{{savingsAccountData.onHoldFunds | number}}</a></td> <td><a *mifosxHasPermission="'READ_SAVINGSACCOUNT'">{{savingsAccountData.onHoldFunds | formatNumber}}</a></td>
</tr> </tr>
<tr *ngIf="savingsAccountData.withHoldTax"> <tr *ngIf="savingsAccountData.withHoldTax">
<td>Withhold Tax Group</td> <td>Withhold Tax Group</td>
@@ -255,7 +255,7 @@
</tr> </tr>
<tr> <tr>
<td>Nominal Interest Rate</td> <td>Nominal Interest Rate</td>
<td>{{savingsAccountData.nominalAnnualInterestRate | number}} %</td> <td>{{savingsAccountData.nominalAnnualInterestRate | formatNumber}} %</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -291,7 +291,7 @@
<tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0"> <tr *ngIf="savingsAccountData.summary.totalInterestEarned >= 0">
<td>Total Interest Earned</td> <td>Total Interest Earned</td>
<td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalInterestEarned <td>{{savingsAccountData.currency.displaySymbol}}&nbsp;{{savingsAccountData.summary.totalInterestEarned
| number}}</td> | formatNumber}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@@ -31,17 +31,17 @@
<ng-container matColumnDef="debit"> <ng-container matColumnDef="debit">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Debit </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Debit </th>
<td mat-cell class="r-amount" *matCellDef="let transaction"> {{ isDebit(transaction.transactionType) ? (transaction.amount | number) : 'N/A'}} </td> <td mat-cell class="r-amount" *matCellDef="let transaction"> {{ isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A'}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="credit"> <ng-container matColumnDef="credit">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Credit </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Credit </th>
<td mat-cell class="r-amount" *matCellDef="let transaction"> {{ !isDebit(transaction.transactionType) ? (transaction.amount | number) : 'N/A' }} </td> <td mat-cell class="r-amount" *matCellDef="let transaction"> {{ !isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A' }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="balance"> <ng-container matColumnDef="balance">
<th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th> <th mat-header-cell class="r-amount" *matHeaderCellDef> Balance </th>
<td mat-cell class="r-amount" *matCellDef="let transaction"> {{ transaction.runningBalance | number }} </td> <td mat-cell class="r-amount" *matCellDef="let transaction"> {{ transaction.runningBalance | formatNumber }} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="viewReciept"> <ng-container matColumnDef="viewReciept">
@@ -91,7 +91,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amount | number }} {{ chargeData.amount | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -99,7 +99,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountPaid | number }} {{ chargeData.amountPaid | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -107,7 +107,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountWaived | number }} {{ chargeData.amountWaived | formatNumber }}
</div> </div>
<div fxFlex="50%" class="mat-body-strong"> <div fxFlex="50%" class="mat-body-strong">
@@ -115,7 +115,7 @@
</div> </div>
<div fxFlex="50%"> <div fxFlex="50%">
{{ chargeData.amountOutstanding | number }} {{ chargeData.amountOutstanding | formatNumber }}
</div> </div>
</div> </div>
+9 -15
View File
@@ -15,21 +15,6 @@
<div fxLayout="column"> <div fxLayout="column">
<mat-form-field>
<mat-label>Name of the Organization</mat-label>
<input matInput>
</mat-form-field>
<mat-form-field>
<mat-label>Description</mat-label>
<textarea matInput></textarea>
</mat-form-field>
<mat-form-field>
<mat-label>Summary</mat-label>
<textarea matInput></textarea>
</mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Default Language</mat-label> <mat-label>Default Language</mat-label>
<mat-select [formControl]="language" [compareWith]="compareOptions"> <mat-select [formControl]="language" [compareWith]="compareOptions">
@@ -48,6 +33,15 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field>
<mat-label>Decimals to Display</mat-label>
<mat-select [formControl]="decimalsToDisplay">
<mat-option *ngFor="let decimalOpt of decimals" [value]="decimalOpt">
{{ decimalOpt }}
</mat-option>
</mat-select>
</mat-form-field>
</div> </div>
</mat-expansion-panel> </mat-expansion-panel>
+18
View File
@@ -34,6 +34,18 @@ export class SettingsComponent implements OnInit {
'MM-dd-yy', 'MM-dd-yy',
'yyyy-MM-dd' 'yyyy-MM-dd'
]; ];
/** Decimals. */
decimals: string[] = [
'0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
];
/** Placeholder for fonts. */ /** Placeholder for fonts. */
fonts: any; fonts: any;
@@ -41,6 +53,8 @@ export class SettingsComponent implements OnInit {
language = new FormControl(''); language = new FormControl('');
/** Date Format Setting */ /** Date Format Setting */
dateFormat = new FormControl(''); dateFormat = new FormControl('');
/** Decimals to Display Setting */
decimalsToDisplay = new FormControl('');
/** /**
* @param {SettingsService} settingsService Settings Service * @param {SettingsService} settingsService Settings Service
@@ -50,6 +64,7 @@ export class SettingsComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.language.patchValue(this.settingsService.language); this.language.patchValue(this.settingsService.language);
this.dateFormat.patchValue(this.settingsService.dateFormat); this.dateFormat.patchValue(this.settingsService.dateFormat);
this.decimalsToDisplay.patchValue(this.settingsService.decimals);
this.buildDependencies(); this.buildDependencies();
} }
@@ -63,6 +78,9 @@ export class SettingsComponent implements OnInit {
this.dateFormat.valueChanges.subscribe((dateFormat: string) => { this.dateFormat.valueChanges.subscribe((dateFormat: string) => {
this.settingsService.setDateFormat(dateFormat); this.settingsService.setDateFormat(dateFormat);
}); });
this.decimalsToDisplay.valueChanges.subscribe((decimals: string) => {
this.settingsService.setDecimalToDisplay(decimals);
});
} }
/** /**
+18
View File
@@ -40,6 +40,14 @@ export class SettingsService {
localStorage.setItem('mifosXLanguage', JSON.stringify(language)); localStorage.setItem('mifosXLanguage', JSON.stringify(language));
} }
/**
* Sets decimals to Display throughout the app.
* @param {string} decimals.
*/
setDecimalToDisplay(decimals: string) {
localStorage.setItem('mifosXDecimalsToDisplay', decimals);
}
setDefaultLanguage() { setDefaultLanguage() {
const defaultLanguage = environment.defaultLanguage ? environment.defaultLanguage : 'en-US'; const defaultLanguage = environment.defaultLanguage ? environment.defaultLanguage : 'en-US';
this.setLanguage({ this.setLanguage({
@@ -113,6 +121,16 @@ export class SettingsService {
return JSON.parse(localStorage.getItem('mifosXLanguage')); return JSON.parse(localStorage.getItem('mifosXLanguage'));
} }
/**
* Returns Decimals to Display setting
*/
get decimals() {
if (!localStorage.getItem('mifosXDecimalsToDisplay')) {
return '2';
}
return localStorage.getItem('mifosXDecimalsToDisplay');
}
/** /**
* Returns list of default server * Returns list of default server
*/ */
@@ -30,7 +30,7 @@
{{dataObject.data[0].row[i] | datetimeFormat}} {{dataObject.data[0].row[i] | datetimeFormat}}
</span> </span>
<span *ngSwitchCase="'INTEGER' || 'DECIMAL'"> <span *ngSwitchCase="'INTEGER' || 'DECIMAL'">
{{dataObject.data[0].row[i] | number}} {{dataObject.data[0].row[i] | formatNumber}}
</span> </span>
<span *ngSwitchCase="'TEXT'" class="long-text"> <span *ngSwitchCase="'TEXT'" class="long-text">
{{dataObject.data[0].row[i]}} {{dataObject.data[0].row[i]}}
@@ -1,4 +1,4 @@
import { Component, OnDestroy, OnInit } from '@angular/core'; import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { SystemService } from 'app/system/system.service'; import { SystemService } from 'app/system/system.service';
@Component({ @Component({
@@ -7,10 +7,10 @@ import { SystemService } from 'app/system/system.service';
styleUrls: ['./cob-workflow.component.scss'] styleUrls: ['./cob-workflow.component.scss']
}) })
export class CobWorkflowComponent implements OnInit, OnDestroy { export class CobWorkflowComponent implements OnInit, OnDestroy {
/** Wait time between API status calls 30 seg */
waitTime = 30000; waitTime = 30000;
/** Process running flag */
isCatchUpRunning = false; @Input() isCatchUpRunning = true;
/** Timer to refetch COB Catch-Up status every 5 seconds */ /** Timer to refetch COB Catch-Up status every 5 seconds */
timer: any; timer: any;
@@ -18,6 +18,7 @@ export class CobWorkflowComponent implements OnInit, OnDestroy {
ngOnInit(): void { ngOnInit(): void {
setTimeout(() => { this.getCOBCatchUpStatus(); }, this.waitTime); setTimeout(() => { this.getCOBCatchUpStatus(); }, this.waitTime);
this.getCOBCatchUpStatus();
} }
ngOnDestroy() { ngOnDestroy() {
@@ -1,6 +1,6 @@
<mat-card class="container-card"> <mat-card class="container-card">
<mat-card-content> <mat-card-content>
<mat-tab-group #tabGroup mat-align-tabs="center"> <mat-tab-group #tabGroup mat-align-tabs="center" (selectedTabChange)="onJobTabChange($event)">
<mat-tab label="Scheduler Jobs"> <mat-tab label="Scheduler Jobs">
<mifosx-manage-scheduler-jobs></mifosx-manage-scheduler-jobs> <mifosx-manage-scheduler-jobs></mifosx-manage-scheduler-jobs>
</mat-tab> </mat-tab>
@@ -8,7 +8,7 @@
<mifosx-workflow-jobs></mifosx-workflow-jobs> <mifosx-workflow-jobs></mifosx-workflow-jobs>
</mat-tab> </mat-tab>
<mat-tab label="COB"> <mat-tab label="COB">
<mifosx-cob-workflow></mifosx-cob-workflow> <mifosx-cob-workflow [isCatchUpRunning]="isCatchUpRunning"></mifosx-cob-workflow>
</mat-tab> </mat-tab>
</mat-tab-group> </mat-tab-group>
@@ -1,4 +1,6 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MatTabChangeEvent } from '@angular/material/tabs';
import { SystemService } from '../system.service';
@Component({ @Component({
selector: 'mifosx-manage-jobs', selector: 'mifosx-manage-jobs',
@@ -6,10 +8,20 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./manage-jobs.component.scss'] styleUrls: ['./manage-jobs.component.scss']
}) })
export class ManageJobsComponent implements OnInit { export class ManageJobsComponent implements OnInit {
/** Process running flag */
isCatchUpRunning = true;
constructor() { } constructor(private systemService: SystemService) { }
ngOnInit(): void { ngOnInit(): void {
} }
onJobTabChange(event: MatTabChangeEvent) {
if (event.index === 2) {
this.systemService.getCOBCatchUpStatus().subscribe((response: any) => {
this.isCatchUpRunning = response.isCatchUpRunning;
});
}
}
} }
@@ -2,7 +2,7 @@
<div #schedulerStatus> <div #schedulerStatus>
<h2 class="no-m">Scheduler Status:<span class="m-l-20 m-r-20">{{ schedulerActive ? 'Active' : 'Inactive' }}</span></h2> <h2 class="no-m">Scheduler Status:<span class="m-l-20 m-r-20">{{ schedulerActive ? 'Active' : 'Inactive' }}</span></h2>
</div> </div>
<button mat-raised-button class="suspend"> <button mat-raised-button class="suspend" (click)="suspendScheduler()" *ngIf="schedulerActive">
<fa-icon icon="times-circle" class="m-r-10"></fa-icon> <fa-icon icon="times-circle" class="m-r-10"></fa-icon>
Suspend Suspend
</button> </button>
@@ -49,7 +49,7 @@
<ng-container matColumnDef="amount"> <ng-container matColumnDef="amount">
<th mat-header-cell *matHeaderCellDef> Amount </th> <th mat-header-cell *matHeaderCellDef> Amount </th>
<td mat-cell *matCellDef="let loan"> {{ loan.principal | number}} </td> <td mat-cell *matCellDef="let loan"> {{ loan.principal | formatNumber}} </td>
</ng-container> </ng-container>
<ng-container matColumnDef="loanPurpose"> <ng-container matColumnDef="loanPurpose">
@@ -45,7 +45,7 @@
<ng-container matColumnDef="principal"> <ng-container matColumnDef="principal">
<th mat-header-cell *matHeaderCellDef> Principal </th> <th mat-header-cell *matHeaderCellDef> Principal </th>
<td mat-cell *matCellDef="let loan"> {{loan.principal | number}} </td> <td mat-cell *matCellDef="let loan"> {{loan.principal | formatNumber}} </td>
</ng-container> </ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>