diff --git a/src/app/account-transfers/view-account-transfer/view-account-transfer.component.html b/src/app/account-transfers/view-account-transfer/view-account-transfer.component.html index a0206b4e0..201165e3c 100644 --- a/src/app/account-transfers/view-account-transfer/view-account-transfer.component.html +++ b/src/app/account-transfers/view-account-transfer/view-account-transfer.component.html @@ -1,9 +1,11 @@
- - - +
+ + + +
diff --git a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.html b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.html index bb36cedbe..e36101a37 100644 --- a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.html +++ b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.html @@ -1,139 +1,195 @@
+ + {{"labels.inputs.Hide Reversed" | translate}} {{"labels.inputs.Hide Accruals" | translate}} +
- - - + - - + - - - - + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + - + - + - + - - + + - - - - - + + +
# {{(idx + 1)}} {{"labels.inputs.Id" | translate}} {{ transaction.id }} - {{ transaction.id }} {{"labels.inputs.Office" | translate}} {{ - transaction.officeName }} {{ transaction.officeName }} {{"labels.inputs.External Id" | translate}} {{"labels.inputs.Transaction Date" | translate}} {{ transaction.date | dateFormat }} {{"labels.inputs.Transaction Type" | translate}} {{ - transaction.type.value }} {{ transaction.type.value }} {{"labels.inputs.Amount" | translate}} {{ transaction.amount | formatNumber }} {{"labels.inputs.Breakdown" | translate}} {{ transaction.principalPortion | formatNumber }} {{ transaction.interestPortion | formatNumber }} {{ transaction.feeChargesPortion | formatNumber }} {{ transaction.penaltyChargesPortion | formatNumber }} {{"labels.inputs.Loan Balance" | translate}} {{ transaction.outstandingLoanBalance | formatNumber }} {{"labels.inputs.Actions" | translate}} - - - + + + + + + + + + + + + + + + + + + + # {{"labels.inputs.Id" | translate}} {{"labels.inputs.Office" | translate}} {{"labels.inputs.External Id" | translate}} {{"labels.inputs.Transaction Date" | translate}} {{"labels.inputs.Transaction Type" | translate}} {{"labels.inputs.Breakdown" | translate}} {{"labels.inputs.Loan Balance" | translate}} {{"labels.inputs.Actions" | translate}} {{"labels.inputs.Amount" | translate}} {{"labels.inputs.Principal" | translate}} {{"labels.inputs.Interest" | translate}} {{"labels.inputs.Fees" | translate}} {{"labels.inputs.Penalties" | translate}}
diff --git a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.scss b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.scss index 90d04fa14..c2121d35a 100644 --- a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.scss +++ b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.scss @@ -58,3 +58,8 @@ .transaction-button { min-width: 180px; } + +.action-button { + width: 100%; + height: 100%; +} diff --git a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts index 1b396dc0d..382153653 100644 --- a/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts +++ b/src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts @@ -10,6 +10,8 @@ import { MatDialog } from '@angular/material/dialog'; import { SettingsService } from 'app/settings/settings.service'; import { ConfirmationDialogComponent } from 'app/shared/confirmation-dialog/confirmation-dialog.component'; import { TranslateService } from '@ngx-translate/core'; +import { LoanTransaction } from 'app/products/loan-products/models/loan-account.model'; +import { LoanTransactionType } from 'app/loans/models/loan-transaction-type.model'; @Component({ selector: 'mifosx-transactions-tab', @@ -24,15 +26,19 @@ export class TransactionsTabComponent implements OnInit { tempTransaction: any; /** Form control to handle accural parameter */ hideAccrualsParam: UntypedFormControl; + hideReversedParam: UntypedFormControl; /** Stores the status of the loan account */ status: string; /** Columns to be displayed in original schedule table. */ displayedColumns: string[] = ['row', 'id', 'office', 'externalId', 'date', 'transactionType', 'amount', 'principal', 'interest', 'fee', 'penalties', 'loanBalance', 'actions']; + displayedHeader1Columns: string[] = ['h1-row', 'h1-id', 'h1-office', 'h1-external-id', 'h1-transaction-date', 'h1-transaction-type', 'h1-space', 'h1-breakdown', 'h1-loan-balance', 'h1-actions']; + displayedHeader2Columns: string[] = ['h2-space', 'h2-amount', 'h2-principal', 'h2-interest', 'h2-fees', 'h2-penalties', 'h2-action']; dataSource: MatTableDataSource; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; @ViewChild(MatSort, { static: true }) sort: MatSort; + loanId: number; /** * Retrieves the loans with associations data from `resolve`. * @param {ActivatedRoute} route Activated Route. @@ -49,10 +55,12 @@ export class TransactionsTabComponent implements OnInit { this.tempTransaction = data.loanDetailsData.transactions; this.status = data.loanDetailsData.status.value; }); + this.loanId = this.route.parent.parent.snapshot.params['loanId']; } ngOnInit() { this.hideAccrualsParam = new UntypedFormControl(false); + this.hideReversedParam = new UntypedFormControl(false); this.setLoanTransactions(this.transactions); } @@ -65,8 +73,8 @@ export class TransactionsTabComponent implements OnInit { this.dataSource.paginator = this.paginator; this.dataSource.sort = this.sort; if (this.tempTransaction) { - this.tempTransaction.forEach((element: any) => { - if (this.isAccrual(element.transactionType)) { + this.tempTransaction.forEach((element: LoanTransaction) => { + if (this.isAccrual(element.type)) { this.tempTransaction = this.removeItem(this.tempTransaction, element); } }); @@ -108,29 +116,36 @@ export class TransactionsTabComponent implements OnInit { * WAIVE_INTEREST:4 * WAIVE_CHARGES:9 * ACCRUAL:10 + * REFUND:16 + * CHARGE_PAYMENT:17 + * REFUND_FOR_ACTIVE_LOAN:18 + * INCOME_POSTING: 19 * CREDIT_BALANCE_REFUND:20 * MERCHANT_ISSUED_REFUND:21 * PAYOUT_REFUND:22 * GOODWILL_CREDIT:23 + * CHARGE_REFUND:24 + * CHARGEBACK:25 * CHARGE_ADJUSTMENT:26 + * CHARGE_OFF:27 * DOWN_PAYMENT:28 * REAGE:29 * REAMORTIZE:30 */ - showTransactions(transactionsData: any) { + showTransactions(transactionsData: LoanTransaction) { if ([1, 2, 4, 9, 20, 21, 22, 23, 26, 28, 29, 30].includes(transactionsData.type.id)) { this.router.navigate([transactionsData.id], { relativeTo: this.route }); } } - allowUndoTransaction(transaction: any) { + allowUndoTransaction(transaction: LoanTransaction) { if (transaction.manuallyReversed) { return false; } - return ([27].includes(transaction.type.id)); + return !(transaction.type.disbursement || transaction.type.chargeoff || this.isReAgoeOrReAmortize(transaction.type) ); } - loanTransactionColor(transaction: any): string { + loanTransactionColor(transaction: LoanTransaction): string { if (transaction.manuallyReversed) { return 'strike'; } @@ -167,13 +182,13 @@ export class TransactionsTabComponent implements OnInit { * Stops the propagation to view pages. * @param $event Mouse Event */ - undoTransaction(transaction: any, $event: MouseEvent) { + undoTransaction(transaction: LoanTransaction, $event: MouseEvent) { $event.stopPropagation(); const locale = this.settingsService.language.code; const dateFormat = this.settingsService.dateFormat; const loanId = this.route.parent.parent.snapshot.params['loanId']; let command = 'undo'; - let operationDate = transaction.date; + let operationDate = this.dateUtils.parseDate(transaction.date); let payload = {}; if (this.isChargeOff(transaction.type)) { command = 'undo-charge-off'; @@ -207,31 +222,78 @@ export class TransactionsTabComponent implements OnInit { }); } - private isAccrual(transactionType: any): boolean { + undoReAgeOrReAmortize(transaction: LoanTransaction): void { + const actionName = transaction.type.reAmortize ? 'Re-Amortize' : 'Re-Age'; + const undoTransactionAccountDialogRef = this.dialog.open(ConfirmationDialogComponent, { + data: { + heading: this.translateService.instant('labels.heading.Undo Transaction'), + dialogContext: this.translateService.instant('labels.dialogContext.Are you sure you want undo the transaction type') + ' ' + this.translateService.instant('labels.menus.' + actionName) + } + }); + undoTransactionAccountDialogRef.afterClosed().subscribe((response: any) => { + if (response.confirm) { + const undoCommand = actionName === 'Re-Age' ? 'undoReAge' : 'undoReAmortize'; + this.loansService.executeLoansAccountTransactionsCommand(String(this.loanId), undoCommand, {}).subscribe(() => { + this.reload(); + }); + } + }); + } + + private isAccrual(transactionType: LoanTransactionType): boolean { return (transactionType.accrual || transactionType.code === 'loanTransactionType.overdueCharge'); } - private isChargeOff(transactionType: any): boolean { + private isChargeOff(transactionType: LoanTransactionType): boolean { return (transactionType.chargeoff || transactionType.code === 'loanTransactionType.chargeOff'); } - private isDownPayment(transactionType: any): boolean { + private isDownPayment(transactionType: LoanTransactionType): boolean { return (transactionType.downPayment || transactionType.code === 'loanTransactionType.downPayment'); } - private isReAge(transactionType: any): boolean { - return (transactionType.code === 'loanTransactionType.reAge'); + private isReAge(transactionType: LoanTransactionType): boolean { + return (transactionType.reAge || transactionType.code === 'loanTransactionType.reAge'); } - private isReAmortize(transactionType: any): boolean { - return (transactionType.code === 'loanTransactionType.reAmortize'); + private isReAmortize(transactionType: LoanTransactionType): boolean { + return (transactionType.reAmortize || transactionType.code === 'loanTransactionType.reAmortize'); + } + + private isReAgoeOrReAmortize(transactionType: LoanTransactionType): boolean { + return this.isReAmortize(transactionType) || this.isReAge(transactionType); + } + + viewJournalEntry(transactionType: LoanTransactionType): boolean { + return !(this.isReAmortize(transactionType) || this.isReAge(transactionType)); } private reload() { const clientId = this.route.parent.parent.snapshot.params['clientId']; - const loanId = this.route.parent.parent.snapshot.params['loanId']; const url: string = this.router.url; this.router.navigateByUrl(`/clients/${clientId}/loans-accounts`, { skipLocationChange: true }) .then(() => this.router.navigate([url])); } + + hideReversed() { + let transactions: LoanTransaction[] = this.transactions; + if (!this.hideReversedParam.value) { + transactions = []; + this.transactions.forEach((t: LoanTransaction) => { + if (!t.manuallyReversed) { + transactions.push(t); + } + }); + } + this.dataSource = new MatTableDataSource(transactions); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + + displaySubMenu(transaction: LoanTransaction): boolean { + if (this.isReAgoeOrReAmortize(transaction.type) && transaction.manuallyReversed) { + return false; + } + return true; + } } diff --git a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.html b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.html index 50b33cf43..267d816cd 100644 --- a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.html +++ b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.html @@ -1,18 +1,19 @@
-
-

All Transactions

+

{{"labels.headings.All Transactions" | translate }}

{{"labels.inputs.Hide Reversed" | translate}} {{"labels.inputs.Hide Accruals" | translate}} + +
@@ -24,51 +25,64 @@ - Id - {{ transaction.id }} + {{"labels.inputs.Id" | translate}} + {{ transaction.id }} - Transaction Date - {{ transaction.date | dateFormat }} + {{"labels.inputs.Transaction Date" | translate}} + {{ transaction.date | dateFormat }} - Transaction Type - {{ transaction.transactionType.value }} + {{"labels.inputs.Transaction Type" | translate}} + {{ transaction.transactionType.value }} - Debit - {{ isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A'}} + {{"labels.inputs.Debit" | translate}} + {{ isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A'}} - Credit - {{ !isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A' }} + {{"labels.inputs.Credit" | translate}} + {{ !isDebit(transaction.transactionType) ? (transaction.amount | formatNumber) : 'N/A' }} - Balance - {{ transaction.runningBalance | formatNumber }} + {{"labels.inputs.Balance" | translate}} + {{ transaction.runningBalance | formatNumber }} - Actions - - - + + + + + + - + diff --git a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss index 72ec04a33..418923a79 100644 --- a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss +++ b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.scss @@ -1,3 +1,5 @@ +@import "assets/styles/helper"; + .tab-container { padding: 1%; margin: 1%; @@ -27,4 +29,8 @@ .strike { text-decoration: line-through; color: red; +} + +.transfer { + color: $status-transfer; } \ No newline at end of file diff --git a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.ts b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.ts index d5550cc78..82bd699b1 100644 --- a/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.ts +++ b/src/app/savings/savings-account-view/transactions-tab/transactions-tab.component.ts @@ -5,7 +5,12 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { SavingsAccountTransaction } from 'app/savings/models/savings-account-transaction.model'; +import { Dates } from 'app/core/utils/dates'; +import { SavingsAccountTransaction, SavingsAccountTransactionType } from 'app/savings/models/savings-account-transaction.model'; +import { SavingsService } from 'app/savings/savings.service'; +import { SettingsService } from 'app/settings/settings.service'; +import { UndoTransactionDialogComponent } from '../custom-dialogs/undo-transaction-dialog/undo-transaction-dialog.component'; +import { MatDialog } from '@angular/material/dialog'; /** * Transactions Tab Component. @@ -35,17 +40,24 @@ export class TransactionsTabComponent implements OnInit { accountWithTransactions = false; + accountId: string; + /** * Retrieves savings account data from `resolve`. * @param {ActivatedRoute} route Activated Route. */ constructor(private route: ActivatedRoute, - private router: Router) { + private router: Router, + private savingsService: SavingsService, + private settingsService: SettingsService, + private dialog: MatDialog, + private dateUtils: Dates) { this.route.parent.parent.data.subscribe((data: { savingsAccountData: any }) => { this.transactionsData = data.savingsAccountData.transactions; this.tempTransaction = this.transactionsData; this.status = data.savingsAccountData.status.value; }); + this.accountId = this.route.parent.parent.snapshot.params['savingAccountId']; } ngOnInit() { @@ -76,12 +88,12 @@ export class TransactionsTabComponent implements OnInit { * Checks if transaction is debit. * @param {any} transactionType Transaction Type */ - isDebit(transactionType: any) { + isDebit(transactionType: SavingsAccountTransactionType) { return transactionType.withdrawal === true || transactionType.feeDeduction === true || transactionType.overdraftInterest === true || transactionType.withholdTax === true; } - isAccrual(transactionType: any): boolean { + isAccrual(transactionType: SavingsAccountTransactionType): boolean { return (transactionType.accrual || transactionType.code === 'savingsAccountTransactionType.accrual'); } @@ -100,7 +112,7 @@ export class TransactionsTabComponent implements OnInit { * Show Transactions Details * @param transactionsData Transactions Data */ - showTransactions(transactionsData: any) { + showTransactions(transactionsData: SavingsAccountTransaction) { if (transactionsData.transfer) { this.router.navigate([`../transfer-funds/account-transfers/${transactionsData.transfer.id}`], { relativeTo: this.route }); } else { @@ -139,4 +151,39 @@ export class TransactionsTabComponent implements OnInit { this.dataSource.sort = this.sort; } + savingsTransactionColor(transaction: SavingsAccountTransaction): string { + if (transaction.reversed) { + return 'strike'; + } + if (transaction.transfer) { + return 'transfer'; + } + return ''; + } + + undoTransaction(transactionData: SavingsAccountTransaction): void { + const undoTransactionAccountDialogRef = this.dialog.open(UndoTransactionDialogComponent); + undoTransactionAccountDialogRef.afterClosed().subscribe((response: any) => { + if (response.confirm) { + const locale = this.settingsService.language.code; + const dateFormat = this.settingsService.dateFormat; + const data = { + transactionDate: this.dateUtils.parseDate(transactionData.date), + transactionAmount: 0, + dateFormat, + locale + }; + this.savingsService.executeSavingsAccountTransactionsCommand(this.accountId, 'undo', data, transactionData.id).subscribe(() => { + this.reload(); + }); + } + }); + } + + private reload() { + const clientId = this.route.parent.parent.snapshot.params['clientId']; + const url: string = this.router.url; + this.router.navigateByUrl(`/clients/${clientId}/savings-accounts`, { skipLocationChange: true }) + .then(() => this.router.navigate([url])); + } } diff --git a/src/app/savings/savings-account-view/transactions/view-transaction/savings-transaction-general-tab/savings-transaction-general-tab.component.html b/src/app/savings/savings-account-view/transactions/view-transaction/savings-transaction-general-tab/savings-transaction-general-tab.component.html index b083f5d3e..40979d7e1 100644 --- a/src/app/savings/savings-account-view/transactions/view-transaction/savings-transaction-general-tab/savings-transaction-general-tab.component.html +++ b/src/app/savings/savings-account-view/transactions/view-transaction/savings-transaction-general-tab/savings-transaction-general-tab.component.html @@ -4,20 +4,20 @@
@@ -31,7 +31,7 @@
- Transaction Id + {{"labels.inputs.Id" | translate}}
@@ -39,7 +39,7 @@
- Type + {{"labels.inputs.Transaction Type" | translate}}
@@ -47,7 +47,7 @@
- Transaction Date + {{"labels.inputs.Transaction Date" | translate}}
@@ -55,7 +55,7 @@
- Currency + {{"labels.inputs.Currency" | translate}}
@@ -63,18 +63,18 @@
- Amount + {{"labels.inputs.Amount" | translate}}
{{ transactionData.amount | currency:transactionData.currency.code }}
-
- Note +
+ {{"labels.inputs.Note" | translate}}
-
+
{{ transactionData.note }}
diff --git a/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.html b/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.html index 3c40e4c36..ecbe7af21 100644 --- a/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.html +++ b/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.html @@ -63,14 +63,12 @@ - + - + @@ -87,24 +85,21 @@ - + - + - - +
{{ 'labels.inputs.Entry ID' | translate }} - {{ 'labels.inputs.Entry ID' | translate }} {{ transaction.id }} {{ 'labels.inputs.Type' | translate }} - {{ 'labels.inputs.Type' | translate }} {{ transaction.glAccountType.value }} {{ 'labels.inputs.Debit' | translate }} - {{ 'labels.inputs.Debit' | translate }} {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | formatNumber }} {{ 'labels.inputs.Credit' | translate }} - {{ 'labels.inputs.Credit' | translate }} {{ (transaction.currency.displaySymbol || transaction.currency.code) }} {{ transaction.amount | formatNumber }}
@@ -123,4 +118,9 @@ {{"labels.text.No data found" | translate}}
+ +
+ +
diff --git a/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.ts b/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.ts index 8d019dd74..17207bead 100644 --- a/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.ts +++ b/src/app/shared/accounting/view-journal-entry-transaction/view-journal-entry-transaction.component.ts @@ -1,4 +1,4 @@ -import { Component, Input, OnInit, ViewChild } from '@angular/core'; +import { Component, OnInit, ViewChild } from '@angular/core'; import { ViewJournalEntryComponent } from '../view-journal-entry/view-journal-entry.component'; import { RevertTransactionComponent } from 'app/accounting/revert-transaction/revert-transaction.component'; import { AccountingService } from 'app/accounting/accounting.service'; diff --git a/src/app/shared/icons.module.ts b/src/app/shared/icons.module.ts index 1498034ce..dcc1dc60f 100644 --- a/src/app/shared/icons.module.ts +++ b/src/app/shared/icons.module.ts @@ -109,7 +109,9 @@ import { faFileExport, faCalculator, faCalendarCheck, - faPause + faPause, + faReceipt, + faTableCells } from '@fortawesome/free-solid-svg-icons'; /** @@ -231,7 +233,10 @@ export class IconsModule { faTasks, faCoins, faPiggyBank, - faBars + faBars, + faUndo, + faReceipt, + faTableCells ); } diff --git a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.html b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.html index ffd2d8c9f..ad2f93293 100644 --- a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.html +++ b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.html @@ -1,49 +1,36 @@ - -
- {{ 'Payment Type' | translate}} +
+
+ {{ 'labels.inputs.Payment Type' | translate}}
-
+
{{ paymentDetailData.paymentType.name }}
- -
- {{ 'Account No.' | translate}} -
- -
- {{ paymentDetailData.accountNumber }} -
- -
- {{ 'Cheque Number' | translate}} -
- -
- {{ paymentDetailData.checkNumber }} -
- -
- {{ 'Routing Code' | translate}} -
- -
- {{ paymentDetailData.routingCode }} -
- -
- {{ 'Receipt No.' | translate}} -
- -
- {{ paymentDetailData.receiptNumber }} -
- -
- {{ 'Bank No.' | translate}} -
- -
- {{ paymentDetailData.bankNumber }} -
- +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
{{ 'labels.inputs.Payment Details' | translate}}
{{ 'labels.inputs.Account No' | translate}}{{ paymentDetailData.accountNumber }}
{{ 'labels.inputs.Cheque Number' | translate}}{{ paymentDetailData.checkNumber }}
{{ 'labels.inputs.Routing Code' | translate}}{{ paymentDetailData.routingCode }}
{{ 'labels.inputs.Receipt No' | translate}}{{ paymentDetailData.receiptNumber }}
{{ 'labels.inputs.Bank No' | translate}}{{ paymentDetailData.bankNumber }}
\ No newline at end of file diff --git a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.scss b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.scss index d52fc8cb8..035292502 100644 --- a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.scss +++ b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.scss @@ -2,7 +2,7 @@ .content { width: 100%; - background-color: $concrete; + padding-bottom: 25px; div { text-align: left; diff --git a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.ts b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.ts index 1c2bdc987..44749b1a7 100644 --- a/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.ts +++ b/src/app/shared/transaction-payment-detail/transaction-payment-detail.component.ts @@ -15,4 +15,18 @@ export class TransactionPaymentDetailComponent implements OnInit { ngOnInit(): void {} + hasSomeValue(): boolean { + return ( + this.isNotNullOrEmpty(this.paymentDetailData.accountNumber) || + this.isNotNullOrEmpty(this.paymentDetailData.bankNumber) || + this.isNotNullOrEmpty(this.paymentDetailData.checkNumber) || + this.isNotNullOrEmpty(this.paymentDetailData.receiptNumber) || + this.isNotNullOrEmpty(this.paymentDetailData.routingCode) + ); + } + + isNotNullOrEmpty(value: any): boolean { + return (value !== null && value !== ''); + } + } diff --git a/src/assets/styles/_background.scss b/src/assets/styles/_background.scss index adb6089ed..46110bb7b 100644 --- a/src/assets/styles/_background.scss +++ b/src/assets/styles/_background.scss @@ -1,7 +1,9 @@ body { table { - tr:nth-child(even) { - background-color: #f2f2f2; + tbody { + tr:nth-child(even) { + background-color: #f2f2f2; + } } } } diff --git a/src/assets/styles/_colours.scss b/src/assets/styles/_colours.scss index c085bfa23..616535719 100644 --- a/src/assets/styles/_colours.scss +++ b/src/assets/styles/_colours.scss @@ -73,6 +73,7 @@ $status-overpaid: #800080; $status-downpayment: #16a085; $status-reage: #e08e0b; $status-reamortize: #4461e2; +$status-transfer: #16a085; $status-active-overdue: #ff0000; $status-matured: #ff4000; $state-done: #2af72a; diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 64d064722..ce283d14b 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Příkaz k přidělování plateb", "Payment Allocation Rule": "Pravidlo přidělování plateb", "Payment Due At": "Splatnost platby v", + "Payment Details": "Platební údaje", "Payment Type": "Způsob platby", "Payment Type Id": "ID typu platby", "Payment due as of": "Splatnost platby ke dni", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index 3e561a23e..bf099d4e6 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Zahlungszuweisungsbestellung", "Payment Allocation Rule": "Zahlungszuweisungsregel", "Payment Due At": "Zahlung fällig am", + "Payment Details": "Zahlungsdetails", "Payment Type": "Zahlungsart", "Payment Type Id": "Zahlungsart-ID", "Payment due as of": "Zahlung fällig ab", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 02cf06dd5..a7cba7ba6 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -1683,6 +1683,7 @@ "Payment Allocation Order": "Payment Allocation Order", "Payment Allocation Rule": "Payment Allocation Rule", "Payment Due At": "Payment Due At", + "Payment Details": "Payment Details", "Payment Type": "Payment Type", "Payment Type Id": "Payment Type Id", "Payment due as of": "Payment due as of", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index 68ff90fe3..25560b274 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Orden de asignación de pagos", "Payment Allocation Rule": "Regla de asignación de pagos", "Payment Due At": "Pago vencido en", + "Payment Details": "Detalles del pago", "Payment Type": "Tipo de pago", "Payment Type Id": "Id del tipo de pago", "Payment due as of": "Pago vencido a partir de", @@ -2099,8 +2100,8 @@ "Assign Loan Officer": "Asignar oficial de Créditos", "Assign Staff": "Asignar personal", "Block Account": "Bloquear cuenta", - "Block Deposit": "Depósito en bloque", - "Block Withdrawal": "Retiro en bloque", + "Block Deposit": "Bloquear depósitos", + "Block Withdrawal": "Bloquear retiros", "Breadcrumbs": "Migas de pan", "Calculate Interest": "Calcular interés", "Centers": "Centros", @@ -2169,8 +2170,8 @@ "Theme Picker": "Selector de temas", "Transfer Funds": "Transferir fondos", "Unblock Account": "Desbloquear cuenta", - "Unblock Deposit": "Desbloquear depósito", - "Unblock Withdrawal": "Desbloquear retiro", + "Unblock Deposit": "Desbloquear depósitos", + "Unblock Withdrawal": "Desbloquear retiros", "Undo Activation": "Deshacer la activación", "Undo Approval": "Deshacer aprobación", "Undo Disbursal": "Deshacer desembolso", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 59fc1f80d..3f545b6cb 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Ordonnance d'allocation de paiement", "Payment Allocation Rule": "Règle d'allocation de paiement", "Payment Due At": "Paiement dû à", + "Payment Details": "Détails de paiement", "Payment Type": "Type de paiement", "Payment Type Id": "Identifiant du type de paiement", "Payment due as of": "Paiement dû à compter du", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 5c5a00031..05fad857a 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Ordine di allocazione dei pagamenti", "Payment Allocation Rule": "Regola di allocazione dei pagamenti", "Payment Due At": "Pagamento dovuto a", + "Payment Details": "Dettagli di pagamento", "Payment Type": "Modalità di pagamento", "Payment Type Id": "Identificativo tipo di pagamento", "Payment due as of": "Pagamento dovuto a partire dal", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index 150f59650..1cb48ab25 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -1685,6 +1685,7 @@ "Payment Allocation Order": "지불 할당 명령", "Payment Allocation Rule": "지불 할당 규칙", "Payment Due At": "지불 기한", + "Payment Details": "지불 세부 사항", "Payment Type": "결제 유형", "Payment Type Id": "결제 유형 ID", "Payment due as of": "지급 기한:", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 26dae0cb1..74d8946e4 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Mokėjimo paskirstymo užsakymas", "Payment Allocation Rule": "Mokėjimo paskirstymo taisyklė", "Payment Due At": "Mokėjimo terminas", + "Payment Details": "Mokėjimo detalės", "Payment Type": "Mokėjimo tipas", "Payment Type Id": "Mokėjimo tipo ID", "Payment due as of": "Mokėjimo terminas", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index 55d5b610d..fb7ff500c 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Maksājumu sadales pasūtījums", "Payment Allocation Rule": "Maksājumu sadales noteikums", "Payment Due At": "Maksājuma termiņš plkst", + "Payment Details": "Maksājumu informācija", "Payment Type": "Maksājuma veids", "Payment Type Id": "Maksājuma veida ID", "Payment due as of": "Maksājuma termiņš no plkst", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index 4a9774da9..79d2bdb9d 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "भुक्तानी सम्झौता अर्डर", "Payment Allocation Rule": "भुक्तानी सम्झौता नियम", "Payment Due At": "भुक्तान बाँकी मा", + "Payment Details": "भुक्तानी विवरण", "Payment Type": "भुक्तानी प्रकार", "Payment Type Id": "भुक्तानी प्रकार आईडी", "Payment due as of": "मिति सम्मको भुक्तानी", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index 89d5bb619..950dc85de 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Ordem de alocação de pagamento", "Payment Allocation Rule": "Regra de alocação de pagamento", "Payment Due At": "Pagamento devido em", + "Payment Details": "Detalhes do pagamento", "Payment Type": "Tipo de pagamento", "Payment Type Id": "ID do tipo de pagamento", "Payment due as of": "Pagamento devido a partir de", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index eee448c46..f0f1e2d00 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -1684,6 +1684,7 @@ "Payment Allocation Order": "Agizo la ugawaji wa malipo", "Payment Allocation Rule": "Sheria ya Ugawaji wa Malipo", "Payment Due At": "Malipo Yanayodaiwa Saa", + "Payment Details": "Maelezo ya malipo", "Payment Type": "Aina ya malipo", "Payment Type Id": "Kitambulisho cha Aina ya Malipo", "Payment due as of": "Malipo yanayodaiwa kufikia", diff --git a/src/theme/_dark_content.scss b/src/theme/_dark_content.scss index 9c149c698..ecd03883c 100644 --- a/src/theme/_dark_content.scss +++ b/src/theme/_dark_content.scss @@ -144,8 +144,10 @@ body.dark-theme { table { - tr:nth-child(even) { - background-color: #303135 !important; + tbody { + tr:nth-child(even) { + background-color: #303135 !important; + } } } } diff --git a/src/theme/_material-palette.scss b/src/theme/_material-palette.scss index 6fd22058e..57ff0f999 100644 --- a/src/theme/_material-palette.scss +++ b/src/theme/_material-palette.scss @@ -26,9 +26,9 @@ $accent-palette: ( /* ############ Dark mode palettes ################*/ $dark-primary-palette: ( - 100: #273350, - 500: #313f6b, - 700: #39415c, + 100: #5ba2ec, + 500: #1074b9, + 700: #004989, contrast: ( 100: white, 500: rgba(white, 0.87), @@ -37,9 +37,9 @@ $dark-primary-palette: ( ); $dark-accent-palette: ( - 100: #364461, - 500: #3e5372, - 700: #476385, + 100: #e7ffa5, + 500: #b4d575, + 700: #83a447, contrast: ( 100: white, 500: white,