diff --git a/src/app/directives/directives.module.ts b/src/app/directives/directives.module.ts index 390a004b1..b92c18f0c 100644 --- a/src/app/directives/directives.module.ts +++ b/src/app/directives/directives.module.ts @@ -4,6 +4,7 @@ import { CommonModule } from '@angular/common'; /** Custom Directives */ import { HasPermissionDirective } from './has-permission/has-permission.directive'; +import { FormatAmountDirective } from './format-amount.directive'; /** * Directives Module @@ -14,7 +15,7 @@ import { HasPermissionDirective } from './has-permission/has-permission.directiv imports: [ CommonModule ], - declarations: [HasPermissionDirective], - exports: [HasPermissionDirective] + declarations: [HasPermissionDirective, FormatAmountDirective], + exports: [HasPermissionDirective, FormatAmountDirective] }) export class DirectivesModule { } diff --git a/src/app/directives/format-amount.directive.ts b/src/app/directives/format-amount.directive.ts new file mode 100644 index 000000000..98d94ad5a --- /dev/null +++ b/src/app/directives/format-amount.directive.ts @@ -0,0 +1,46 @@ +import { Directive, HostListener, ElementRef, Input, OnInit, Inject } from '@angular/core'; +import { formatCurrency } from '@angular/common'; +import { NgControl } from '@angular/forms'; +import { LOCALE_ID } from '@angular/core'; + +@Directive({ + selector: '[mifosxFormatAmount]', +}) +export class FormatAmountDirective implements OnInit { + format = 'N0'; + digitsInfo = '1.0-0'; + currencyCode: string; + displaySymbol: string; + @Input() sufix = ''; + + @Input('mifosxFormatAmount') set _(values: string) { + const parts: string[] = values.split(':'); + this.currencyCode = parts[0]; + this.displaySymbol = (parts.length > 1) ? parts[1] : '$'; + this.digitsInfo = (parts.length > 2) ? parts[2] : '1.2-2'; + } + + @HostListener('blur', ['$event.target']) blur(target: any) { + target.value = this.parse(target.value); + } + @HostListener('focus', ['$event.target']) focus(target: any) { + target.value = this.control.value; + } + + ngOnInit() { + setTimeout(() => { + this.el.nativeElement.value = this.parse(this.el.nativeElement.value); + }); + } + + constructor( + @Inject(LOCALE_ID) private locale: string, + private el: ElementRef, + private control: NgControl + ) { } + + parse(value: any) { + return formatCurrency(value, this.locale, this.displaySymbol, this.currencyCode, this.digitsInfo) + this.sufix; + } + +} diff --git a/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.html b/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.html index d53371a29..058e48b65 100644 --- a/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.html +++ b/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.html @@ -19,13 +19,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.Fixed EMI amount" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.ts b/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.ts index 47fce51ce..f03e5c1e1 100644 --- a/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/disburse-to-savings-account/disburse-to-savings-account.component.ts @@ -4,6 +4,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { Dates } from 'app/core/utils/dates'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; @Component({ selector: 'mifosx-disburse-to-savings-account', @@ -20,6 +21,7 @@ export class DisburseToSavingsAccountComponent implements OnInit { maxDate = new Date(); /** Disbursement Loan form. */ disbursementForm: UntypedFormGroup; + currency: Currency; /** * Get data from `Resolver`. @@ -40,6 +42,9 @@ export class DisburseToSavingsAccountComponent implements OnInit { ngOnInit() { this.maxDate = this.settingsService.businessDate; this.setDisbursementToSavingsForm(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } /** @@ -73,6 +78,7 @@ export class DisburseToSavingsAccountComponent implements OnInit { locale }; const loanId = this.route.snapshot.params['loanId']; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.loanActionButtons(loanId, 'disbursetosavings', data).subscribe((response: any) => { this.router.navigate(['../../general'], { relativeTo: this.route }); }); diff --git a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.html b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.html index 5438dd90c..45b0fc97b 100644 --- a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.html +++ b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.html @@ -19,13 +19,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts index b2f92b3d9..684114b1d 100644 --- a/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/disburse/disburse.component.ts @@ -7,6 +7,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; +import { Currency } from 'app/shared/models/general.model'; /** * Disburse Loan Option @@ -31,6 +32,7 @@ export class DisburseComponent implements OnInit { maxDate = new Date(); /** Disbursement Loan Form */ disbursementLoanForm: UntypedFormGroup; + currency: Currency; /** * @param {FormBuilder} formBuilder Form Builder. @@ -57,6 +59,9 @@ export class DisburseComponent implements OnInit { this.maxDate = this.settingsService.maxFutureDate; this.createDisbursementLoanForm(); this.setDisbursementLoanDetails(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } /** @@ -114,6 +119,7 @@ export class DisburseComponent implements OnInit { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.loanActionButtons(this.loanId, 'disburse', data ) .subscribe((response: any) => { this.router.navigate(['../../general'], { relativeTo: this.route }); diff --git a/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.html b/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.html index 53095845f..4cb9a4e16 100644 --- a/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.html +++ b/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.html @@ -19,13 +19,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.ts b/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.ts index cc791e6f2..f2ed11195 100644 --- a/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/loan-credit-balance-refund/loan-credit-balance-refund.component.ts @@ -4,6 +4,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { Dates } from 'app/core/utils/dates'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; @Component({ selector: 'mifosx-loan-credit-balance-refund', @@ -21,6 +22,7 @@ export class LoanCreditBalanceRefundComponent implements OnInit { maxDate = new Date(); /** Credit Balance Loan Form */ creditBalanceLoanForm: UntypedFormGroup; + currency: Currency; /** * @param {FormBuilder} formBuilder Form Builder. @@ -46,6 +48,9 @@ export class LoanCreditBalanceRefundComponent implements OnInit { this.maxDate = this.settingsService.businessDate; this.createCreditBalanceLoanForm(); this.setCreditBalanceLoanDetails(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } /** @@ -81,6 +86,7 @@ export class LoanCreditBalanceRefundComponent implements OnInit { locale }; const command = this.dataObject.type.code.split('.')[1]; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.submitLoanActionButton(this.loanId, data, command) .subscribe((response: any) => { this.router.navigate(['../../transactions'], { relativeTo: this.route }); diff --git a/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.html b/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.html index 1722ab848..24bb66b79 100644 --- a/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.html +++ b/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.html @@ -53,15 +53,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - {{ dataObject.currency.code }} - - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.ts b/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.ts index bdcc07b64..3ab2f3678 100644 --- a/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/make-repayment/make-repayment.component.ts @@ -7,6 +7,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; +import { Currency } from 'app/shared/models/general.model'; /** * Loan Make Repayment Component @@ -31,6 +32,7 @@ export class MakeRepaymentComponent implements OnInit, OnDestroy { maxDate = new Date(); /** Repayment Loan Form */ repaymentLoanForm: UntypedFormGroup; + currency: Currency | null = null; /** * @param {FormBuilder} formBuilder Form Builder. @@ -56,6 +58,9 @@ export class MakeRepaymentComponent implements OnInit, OnDestroy { this.maxDate = this.settingsService.businessDate; this.createRepaymentLoanForm(); this.setRepaymentLoanDetails(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } ngOnDestroy(): void { @@ -117,6 +122,7 @@ export class MakeRepaymentComponent implements OnInit, OnDestroy { locale }; const command = this.dataObject.type.code.split('.')[1]; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.submitLoanActionButton(this.loanId, data, command) .subscribe((response: any) => { this.router.navigate(['../../transactions'], { relativeTo: this.route }); diff --git a/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.html b/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.html index 568b07c9f..74d8a2840 100644 --- a/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.html +++ b/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.html @@ -53,15 +53,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - {{ prepayData.currency.code }} - - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.ts b/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.ts index d00ad074c..096c59ccf 100644 --- a/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/prepay-loan/prepay-loan.component.ts @@ -7,6 +7,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; +import { Currency } from 'app/shared/models/general.model'; /** @@ -38,6 +39,7 @@ export class PrepayLoanComponent implements OnInit, OnDestroy { prepayLoanForm: UntypedFormGroup; prepayData: any; + currency: Currency | null = null; /** * @param {FormBuilder} formBuilder Form Builder. @@ -64,6 +66,9 @@ export class PrepayLoanComponent implements OnInit, OnDestroy { this.createprepayLoanForm(); this.setPrepayLoanDetails(); this.prepayData = this.dataObject; + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } ngOnDestroy(): void { @@ -139,6 +144,7 @@ export class PrepayLoanComponent implements OnInit, OnDestroy { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.submitLoanActionButton(this.loanId, data, 'repayment') .subscribe((response: any) => { this.router.navigate(['../../general'], { relativeTo: this.route }); diff --git a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html index 371a2d959..7633a55b3 100644 --- a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html +++ b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.html @@ -19,15 +19,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - {{ dataObject.currency.code }} - - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.ts b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.ts index 777963d5d..3224bf091 100644 --- a/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/recovery-repayment/recovery-repayment.component.ts @@ -7,6 +7,7 @@ import { ActivatedRoute, Router } from '@angular/router'; import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; +import { Currency } from 'app/shared/models/general.model'; /** * Loan Recovery Repayment Action @@ -31,6 +32,7 @@ export class RecoveryRepaymentComponent implements OnInit { maxDate = new Date(); /** Recovery Repayment Loan Form */ recoveryRepaymentLoanForm: UntypedFormGroup; + currency: Currency | null = null; /** * @param {FormBuilder} formBuilder Form Builder. @@ -56,6 +58,9 @@ export class RecoveryRepaymentComponent implements OnInit { this.maxDate = this.settingsService.businessDate; this.createRecoveryRepaymentLoanForm(); this.setRecoveryRepaymentLoanDetails(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } /** @@ -114,6 +119,7 @@ export class RecoveryRepaymentComponent implements OnInit { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loanService.submitLoanActionButton(this.loanId, data, 'recoverypayment') .subscribe((response: any) => { this.router.navigate(['../../general'], { relativeTo: this.route }); diff --git a/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.html b/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.html index e2cec7efe..69933cb15 100644 --- a/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.html +++ b/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.html @@ -19,13 +19,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.Note" | translate}} diff --git a/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.ts b/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.ts index a61b39bb3..5d32bb6b0 100644 --- a/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.ts +++ b/src/app/loans/loans-view/loan-account-actions/waive-interest/waive-interest.component.ts @@ -7,6 +7,7 @@ import { Router, ActivatedRoute } from '@angular/router'; import { LoansService } from 'app/loans/loans.service'; import { Dates } from 'app/core/utils/dates'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; /** * Waive Interest component. @@ -26,6 +27,7 @@ export class WaiveInterestComponent implements OnInit { minDate = new Date(2000, 0, 1); /** Maximum Date allowed. */ maxDate = new Date(); + currency: Currency; /** * Get data from `Resolver`. @@ -44,6 +46,9 @@ export class WaiveInterestComponent implements OnInit { ngOnInit() { this.maxDate = this.settingsService.businessDate; this.setLoanInterestForm(); + if (this.dataObject.currency) { + this.currency = this.dataObject.currency; + } } /** @@ -73,6 +78,7 @@ export class WaiveInterestComponent implements OnInit { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; const loanId = this.route.snapshot.params['loanId']; this.loanService.submitLoanActionButton(loanId, data, 'waiveinterest').subscribe((response: any) => { this.router.navigate(['../../general'], {relativeTo: this.route}); diff --git a/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.html b/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.html index 39fc5d406..8ef2420ed 100644 --- a/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.html +++ b/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.html @@ -17,13 +17,10 @@ - - {{"labels.inputs.Transaction Amount" | translate}} - - - {{"labels.inputs.Transaction Amount" | translate}} {{"labels.commons.is" | translate}} {{"labels.commons.required" | translate}} - - + + {{"labels.inputs.External Id" | translate}} diff --git a/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.ts b/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.ts index 8758c15e2..b4ace495d 100644 --- a/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.ts +++ b/src/app/loans/loans-view/transactions/edit-transaction/edit-transaction.component.ts @@ -7,6 +7,7 @@ import { Dates } from 'app/core/utils/dates'; /** Custom Services */ import { LoansService } from 'app/loans/loans.service'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; /** * Edit Transaction component. @@ -38,6 +39,7 @@ export class EditTransactionComponent implements OnInit { loanAccountId: string; /** Transaction Template */ transactionTemplateData: any; + currency: Currency; /** * Retrieves the Loan Account transaction template data from `resolve`. @@ -56,6 +58,9 @@ export class EditTransactionComponent implements OnInit { private settingsService: SettingsService) { this.route.data.subscribe((data: { loansAccountTransactionTemplate: any }) => { this.transactionTemplateData = data.loansAccountTransactionTemplate; + if (data.loansAccountTransactionTemplate.currency) { + this.currency = data.loansAccountTransactionTemplate.currency; + } this.paymentTypeOptions = this.transactionTemplateData.paymentTypeOptions; }); this.loanAccountId = this.route.snapshot.params['loanId']; @@ -123,6 +128,7 @@ export class EditTransactionComponent implements OnInit { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; this.loansService.executeLoansAccountTransactionsCommand(this.loanAccountId, 'modify', data, this.transactionTemplateData.id) .subscribe((res: any) => { this.router.navigate(['../'], { relativeTo: this.route }); diff --git a/src/app/pipes/format-number.pipe.ts b/src/app/pipes/format-number.pipe.ts index 26f2de00d..0edd4ab47 100644 --- a/src/app/pipes/format-number.pipe.ts +++ b/src/app/pipes/format-number.pipe.ts @@ -15,10 +15,9 @@ export class FormatNumberPipe implements PipeTransform { if (!value) { return defaultValue ? defaultValue : ''; } - const locale = this.settingsService.language.code; const decimals = this.settingsService.decimals; const format = `1.${decimals}-${decimals}`; - return this.decimalFormat.transform(value, format, locale); + return this.decimalFormat.transform(value, format); } } diff --git a/src/app/pipes/translate.pipe.spec.ts b/src/app/pipes/translate.pipe.spec.ts deleted file mode 100644 index e3f3b1488..000000000 --- a/src/app/pipes/translate.pipe.spec.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* tslint:disable:no-unused-variable */ - -import { TestBed, async } from '@angular/core/testing'; -import { TranslatePipe } from './translate.pipe'; - -describe('Pipe: Translatee', () => { - it('create an instance', () => { - let pipe = new TranslatePipe(); - expect(pipe).toBeTruthy(); - }); -}); diff --git a/src/app/savings/common-resolvers/savings-account-actions.resolver.ts b/src/app/savings/common-resolvers/savings-account-actions.resolver.ts index 8e484b2bd..689e0d4cd 100644 --- a/src/app/savings/common-resolvers/savings-account-actions.resolver.ts +++ b/src/app/savings/common-resolvers/savings-account-actions.resolver.ts @@ -34,6 +34,7 @@ export class SavingsAccountActionsResolver implements Resolve { return this.savingsService.getSavingsChargeTemplateResource(savingAccountId); case 'Withdrawal': case 'Deposit': + case 'Hold Amount': return this.savingsService.getSavingsTransactionTemplateResource(savingAccountId); case 'Close': return forkJoin([ diff --git a/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.html b/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.html index 38ee35e19..dae635403 100644 --- a/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.html +++ b/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.html @@ -31,13 +31,10 @@ - - {{'labels.inputs.Transaction Amount' | translate}} - - - {{'labels.inputs.Transaction Amount' | translate}} {{ "labels.commons.is" | translate}} {{ "labels.commons.required" | translate}} - - + + diff --git a/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.ts b/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.ts index 92f312f31..070ce2888 100644 --- a/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.ts +++ b/src/app/savings/saving-account-actions/manage-savings-account/manage-savings-account.component.ts @@ -1,9 +1,10 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, Input, OnInit } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; import { Dates } from 'app/core/utils/dates'; import { SavingsService } from 'app/savings/savings.service'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; import { SystemService } from 'app/system/system.service'; @Component({ @@ -13,6 +14,7 @@ import { SystemService } from 'app/system/system.service'; }) export class ManageSavingsAccountComponent implements OnInit { + @Input() currency: Currency; /** Minimum date allowed. */ minDate = new Date(2000, 0, 1); /** Maximum date allowed. */ @@ -127,6 +129,7 @@ export class ManageSavingsAccountComponent implements OnInit { locale }; command = 'holdAmount'; + payload['transactionAmount'] = payload['transactionAmount'] * 1; this.savingsService.executeSavingsAccountTransactionsCommand(this.savingAccountId, command, payload).subscribe((response: any) => { this.router.navigate(['../../transactions'], { relativeTo: this.route }); diff --git a/src/app/savings/saving-account-actions/saving-account-actions.component.html b/src/app/savings/saving-account-actions/saving-account-actions.component.html index 91b1df423..06cefab0e 100644 --- a/src/app/savings/saving-account-actions/saving-account-actions.component.html +++ b/src/app/savings/saving-account-actions/saving-account-actions.component.html @@ -7,7 +7,9 @@ - + - + + diff --git a/src/app/savings/saving-account-actions/saving-account-actions.component.ts b/src/app/savings/saving-account-actions/saving-account-actions.component.ts index 35728a59b..caa5bf825 100644 --- a/src/app/savings/saving-account-actions/saving-account-actions.component.ts +++ b/src/app/savings/saving-account-actions/saving-account-actions.component.ts @@ -1,6 +1,7 @@ /** Angular Imports */ import { Component } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { Currency } from 'app/shared/models/general.model'; /** * Savings account actions component. @@ -57,7 +58,7 @@ export class SavingAccountActionsComponent { 'Unblock Withdrawal': false }; - currencyCode: string; + currency: Currency; /** * @param {ActivatedRoute} route Activated Route @@ -65,7 +66,7 @@ export class SavingAccountActionsComponent { constructor(private route: ActivatedRoute) { this.route.data.subscribe((data: { savingsAccountActionData: any }) => { if (data.savingsAccountActionData) { - this.currencyCode = data.savingsAccountActionData.currency.code; + this.currency = data.savingsAccountActionData.currency; } }); const name = this.route.snapshot.params['name']; diff --git a/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.html b/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.html index 8d017c5a5..662af9209 100644 --- a/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.html +++ b/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.html @@ -20,15 +20,10 @@ - - {{'labels.inputs.Transaction Amount' | translate}} - {{ currencyCode }} - - - - {{'labels.inputs.Transaction Amount' | translate}} {{ "labels.commons.is" | translate}} {{ "labels.commons.required" | translate}} - - + + {{'labels.inputs.Payment Type' | translate}} diff --git a/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.ts b/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.ts index fd78fee86..83cda4648 100644 --- a/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.ts +++ b/src/app/savings/saving-account-actions/savings-account-transactions/savings-account-transactions.component.ts @@ -1,5 +1,5 @@ /** Angular Imports */ -import { Component, Input, OnInit } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl } from '@angular/forms'; import { Router, ActivatedRoute } from '@angular/router'; @@ -7,6 +7,7 @@ import { Router, ActivatedRoute } from '@angular/router'; import { SavingsService } from '../../savings.service'; import { SettingsService } from 'app/settings/settings.service'; import { Dates } from 'app/core/utils/dates'; +import { Currency } from 'app/shared/models/general.model'; /** * Create savings account transactions component. @@ -18,8 +19,6 @@ import { Dates } from 'app/core/utils/dates'; }) export class SavingsAccountTransactionsComponent implements OnInit { - @Input() currencyCode: string; - /** Minimum Due Date allowed. */ minDate = new Date(2000, 0, 1); /** Maximum Due Date allowed. */ @@ -42,6 +41,7 @@ export class SavingsAccountTransactionsComponent implements OnInit { transactionCommand: string; /** saving account's Id */ savingAccountId: string; + currency: Currency | null = null; /** * Retrieves the Saving Account transaction template data from `resolve`. @@ -60,6 +60,9 @@ export class SavingsAccountTransactionsComponent implements OnInit { private settingsService: SettingsService) { this.route.data.subscribe((data: { savingsAccountActionData: any }) => { this.paymentTypeOptions = data.savingsAccountActionData.paymentTypeOptions; + if (data.savingsAccountActionData.currency) { + this.currency = data.savingsAccountActionData.currency; + } }); this.transactionCommand = this.route.snapshot.params['name'].toLowerCase(); this.transactionType[this.transactionCommand] = true; @@ -122,6 +125,7 @@ export class SavingsAccountTransactionsComponent implements OnInit { dateFormat, locale }; + data['transactionAmount'] = data['transactionAmount'] * 1; this.savingsService.executeSavingsAccountTransactionsCommand(this.savingAccountId, this.transactionCommand, data).subscribe(res => { this.router.navigate(['../../transactions'], { relativeTo: this.route }); }); diff --git a/src/app/savings/savings-account-view/custom-dialogs/release-amount-dialog/release-amount-dialog.component.html b/src/app/savings/savings-account-view/custom-dialogs/release-amount-dialog/release-amount-dialog.component.html index f80249ca6..c66838917 100644 --- a/src/app/savings/savings-account-view/custom-dialogs/release-amount-dialog/release-amount-dialog.component.html +++ b/src/app/savings/savings-account-view/custom-dialogs/release-amount-dialog/release-amount-dialog.component.html @@ -1,8 +1,8 @@ -

Release Amount

+

{{'labels.heading.Release Amount' | translate}}

-

Are you sure you want to release this amount ?

+

{{'labels.text.Are you sure you want to release this amount' | translate}}

- - + + diff --git a/src/app/savings/savings-account-view/custom-dialogs/undo-transaction-dialog/undo-transaction-dialog.component.html b/src/app/savings/savings-account-view/custom-dialogs/undo-transaction-dialog/undo-transaction-dialog.component.html index 688f28271..6cbd6f170 100644 --- a/src/app/savings/savings-account-view/custom-dialogs/undo-transaction-dialog/undo-transaction-dialog.component.html +++ b/src/app/savings/savings-account-view/custom-dialogs/undo-transaction-dialog/undo-transaction-dialog.component.html @@ -1,8 +1,8 @@ -

Undo Transaction

+

{{'labels.heading.Undo Transaction' | translate}}

-

Are you sure you want to undo this transaction ?

+

{{'labels.text.Are you sure you want to undo this transaction' | translate}}

- - + + diff --git a/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.html b/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.html index 8660544f4..a16a76a38 100644 --- a/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.html +++ b/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.html @@ -17,13 +17,10 @@
- - Transaction Amount - - - Transaction Amount is required - - + + Payment Type diff --git a/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.ts b/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.ts index 255677096..d6f678afe 100644 --- a/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.ts +++ b/src/app/savings/savings-account-view/transactions/edit-transaction/edit-transaction.component.ts @@ -7,6 +7,7 @@ import { Dates } from 'app/core/utils/dates'; /** Custom Services */ import { SavingsService } from 'app/savings/savings.service'; import { SettingsService } from 'app/settings/settings.service'; +import { Currency } from 'app/shared/models/general.model'; /** * Edit Transaction component. @@ -38,6 +39,7 @@ export class EditTransactionComponent implements OnInit { savingAccountId: string; /** Transaction Template */ transactionTemplateData: any; + currency: Currency; /** * Retrieves the Saving Account transaction template data from `resolve`. @@ -56,6 +58,9 @@ export class EditTransactionComponent implements OnInit { private settingsService: SettingsService) { this.route.data.subscribe((data: { savingsAccountTransactionTemplate: any }) => { this.transactionTemplateData = data.savingsAccountTransactionTemplate; + if (data.savingsAccountTransactionTemplate.currency) { + this.currency = data.savingsAccountTransactionTemplate.currency; + } this.paymentTypeOptions = this.transactionTemplateData.paymentTypeOptions; }); this.savingAccountId = this.route.snapshot.params['savingAccountId']; diff --git a/src/app/shared/input-amount/input-amount.component.html b/src/app/shared/input-amount/input-amount.component.html new file mode 100644 index 000000000..41d84e2da --- /dev/null +++ b/src/app/shared/input-amount/input-amount.component.html @@ -0,0 +1,21 @@ + + {{'labels.inputs.' + inputLabel | translate}} + {{ currency.code }} + + + + {{'labels.inputs.' + inputLabel | translate}} {{ "labels.commons.is" | translate}} {{ + "labels.commons.required" | translate}} + + {{inputFormControl.value | currency:currency.code:currency.displaySymbol:'1.2-2'}} + + + {{'labels.inputs.' + inputLabel | translate}} + {{ currency.code }} + + + {{inputFormControl.value | currency:currency.code:currency.displaySymbol:'1.2-2'}} + \ No newline at end of file diff --git a/src/app/shared/input-amount/input-amount.component.scss b/src/app/shared/input-amount/input-amount.component.scss new file mode 100644 index 000000000..a3eddcdfb --- /dev/null +++ b/src/app/shared/input-amount/input-amount.component.scss @@ -0,0 +1,21 @@ +.expandcollapsebutton { + margin-top: -7px; +} + +.container { + max-width: 37rem; +} + +.right-input { + text-align: right; +} + +.right-label { + padding-right: 25px !important; +} + +.right-hint { + min-width: 100%; + text-align: right; + font-weight: 500; +} \ No newline at end of file diff --git a/src/app/shared/input-amount/input-amount.component.spec.ts b/src/app/shared/input-amount/input-amount.component.spec.ts new file mode 100644 index 000000000..c4ad83b5d --- /dev/null +++ b/src/app/shared/input-amount/input-amount.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InputAmountComponent } from './input-amount.component'; + +describe('InputAmountComponent', () => { + let component: InputAmountComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ InputAmountComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(InputAmountComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/input-amount/input-amount.component.ts b/src/app/shared/input-amount/input-amount.component.ts new file mode 100644 index 000000000..f1ffeecf9 --- /dev/null +++ b/src/app/shared/input-amount/input-amount.component.ts @@ -0,0 +1,45 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { Currency } from '../models/general.model'; +import { UntypedFormControl } from '@angular/forms'; + +@Component({ + selector: 'mifosx-input-amount', + templateUrl: './input-amount.component.html', + styleUrls: ['./input-amount.component.scss'] +}) +export class InputAmountComponent implements OnInit { + + @Input() isRequired = false; + @Input() currency: Currency; + @Input() inputLabel: string; + @Input() inputFormControl: UntypedFormControl; + + displayHint = false; + + constructor() { } + + ngOnInit(): void { + } + + numberOnly(event: any): boolean { + const charCode = (event.which) ? event.which : event.keyCode; + if (charCode === 46) { + if (!(this.inputFormControl.value.indexOf('.') > -1)) { + return true; + } + return false; + } else if (charCode > 31 && (charCode < 48 || charCode > 57)) { + return false; + } + return true; + } + + inputBlur(): void { + this.displayHint = false; + } + + inputFocus(): void { + this.displayHint = true; + } + +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 9f9f59b76..dda0153e0 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -49,6 +49,7 @@ import { ViewSavingsAccountingDetailsComponent } from './accounting/view-savings import { ThemeToggleComponent } from './theme-toggle/theme-toggle.component'; import { LongTextComponent } from './long-text/long-text.component'; import { DropdownComponent } from './dropdown/dropdown.component'; +import { InputAmountComponent } from './input-amount/input-amount.component'; /** * Shared Module @@ -104,7 +105,8 @@ import { DropdownComponent } from './dropdown/dropdown.component'; ViewSavingsAccountingDetailsComponent, ThemeToggleComponent, LongTextComponent, - DropdownComponent + DropdownComponent, + InputAmountComponent ], exports: [ FileUploadComponent, @@ -137,7 +139,9 @@ import { DropdownComponent } from './dropdown/dropdown.component'; GlAccountDisplayComponent, ViewSavingsAccountingDetailsComponent, ThemeToggleComponent, - LongTextComponent + LongTextComponent, + DropdownComponent, + InputAmountComponent ] }) export class SharedModule { } diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index 5336f23db..1d3eef815 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -572,6 +572,7 @@ "Escheat": "Escheat", "On Hold": "Pozastaveno", "Release": "Uvolnění", + "Release Amount": "Částka uvolnění", "Daily": "Denně", "Monthly": "Měsíční", "Quarterly": "Čtvrtletně", @@ -2440,6 +2441,7 @@ "Undo Activation": "Znovu aktivace", "Undo Approval": "Zrušit schválení", "Undo Disbursal": "Zrušit výplatu", + "Undo Last Disbursal": "Zrušit poslední výplatu", "Undo Re-Age": "Zrušit Stárnutí", "Undo Re-Amortize": "Zrušit Amortizovat", "User Management": "správa uživatelů", diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index ccdf8ecd4..eccf86f31 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -572,6 +572,7 @@ "Escheat": "Betrug", "On Hold": "In der Warteschleife", "Release": "Freigeben", + "Release Amount": "Freigabebetrag", "Daily": "Täglich", "Monthly": "Monatlich", "Quarterly": "Vierteljährlich", @@ -2440,6 +2441,7 @@ "Undo Activation": "Aktivierung rückgängig", "Undo Approval": "Genehmigung rückgängig machen", "Undo Disbursal": "Auszahlung rückgängig machen", + "Undo Last Disbursal": "Letzte Auszahlung rückgängig machen", "Undo Re-Age": "Altern rückgängig machen", "Undo Re-Amortize": "Amortisieren rückgängig machen", "User Management": "Benutzerverwaltung", diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 580201319..9d60ab7e2 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -572,6 +572,7 @@ "Escheat": "Escheat", "On Hold": "On Hold", "Release": "Release", + "Release Amount": "Release Amount", "Daily": "Daily", "Monthly": "Monthly", "Weekly": "Weekly", @@ -2441,6 +2442,7 @@ "Undo Activation": "Undo Activation", "Undo Approval": "Undo Approval", "Undo Disbursal": "Undo Disbursal", + "Undo Last Disbursal": "Undo Last Disbursal", "Undo Re-Age": "Undo Re-Age", "Undo Re-Amortize": "Undo Re-Amortize", "User Management": "User Management", diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index e59fa966a..41a876394 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -454,7 +454,7 @@ "Refresh": "Actualizar", "Reject": "Rechazar", "Reject transfer": "Rechazar transferencia", - "Release Amount": "Liberar monto", + "Release Amount": "Liberar Monto", "Remove": "Eliminar", "Request OTP": "Solicitar OTP", "Reschedule": "Reprogramar", @@ -572,6 +572,7 @@ "Escheat": "Privación de propiedad", "On Hold": "Retener Monto", "Release": "Liberar Monto", + "Release Amount": "Liberación Monto", "Daily": "Diario", "Monthly": "Mensual", "Quarterly": "Trimestral", @@ -968,7 +969,7 @@ "Recurring Deposit Transactions": "Transacciones de depósito recurrentes", "Reject Share": "Rechazar Acción", "Reject Checker": "Rechazador", - "Release Amount": "Cantidad de liberación", + "Release Amount": "Liberar Monto", "Repaid Every": "Frecuencia de Pago", "Report Parameter": "Parámetro de reporte", "Reschedule Loan": "Reprogramación del Crédito", @@ -2392,10 +2393,10 @@ "Goodwill Credit": "Crédito de buena voluntad", "Groups": "Grupos", "Help": "Ayuda", - "Hold Amount": "Monto retenido", + "Hold Amount": "Retener Monto", "Individual Collection Sheet": "Hoja de recuperación individual", "Institution": "Institución", - "Keyboard Shortcuts": "Atajos de teclado", + "Keyboard Shortcuts": "Accesos de teclado", "Language Selector": "Selector de idioma", "Loan Screen Report": "Reporte de pantalla de Crédito", "Loan Screen Reports": "Reportes de pantalla de Créditos", @@ -2439,6 +2440,7 @@ "Undo Activation": "Deshacer la activación", "Undo Approval": "Deshacer aprobación", "Undo Disbursal": "Deshacer desembolso", + "Undo Last Disbursal": "Deshacer el último desembolso", "Undo Re-Age": "Deshacer Envejecimiento", "Undo Re-Amortize": "Deshacer Amortizar", "User Management": "Gestión de usuarios", diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 2fb835077..01d406eec 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -572,6 +572,7 @@ "Escheat": "Escroquerie", "On Hold": "En attente", "Release": "Libérer", + "Release Amount": "Montant de la libération", "Daily": "Tous les jours", "Monthly": "Mensuel", "Weekly": "Hebdomadaire", @@ -2440,6 +2441,7 @@ "Undo Activation": "Annuler l'activation", "Undo Approval": "Annuler l'approbation", "Undo Disbursal": "Annuler le décaissement", + "Undo Last Disbursal": "Annuler le dernier décaissement", "Undo Re-Age": "Annuler le Vieillissement", "Undo Re-Amortize": "Annuler le Amortir", "User Management": "Gestion des utilisateurs", diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 3864e3358..e4bc61d63 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -572,6 +572,7 @@ "Escheat": "Incameramento", "On Hold": "In attesa", "Release": "Pubblicazione", + "Release Amount": "Importo di rilascio", "Daily": "Quotidiano", "Monthly": "Mensile", "Quarterly": "Trimestrale", @@ -2440,6 +2441,7 @@ "Undo Activation": "Annullare l'attivazione", "Undo Approval": "Annulla l'approvazione", "Undo Disbursal": "Annullare l'esborso", + "Undo Last Disbursal": "Annulla l'ultimo esborso", "Undo Re-Age": "Annullare l'invecchiamento", "Undo Re-Amortize": "Annullare l'ammortizzare", "User Management": "Gestione utenti", diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index 05a579f72..86b362a6a 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -572,6 +572,7 @@ "Escheat": "복귀", "On Hold": "보류 중", "Release": "풀어 주다", + "Release Amount": "출시 금액", "Daily": "일일", "Monthly": "월간 간행물", "Quarterly": "분기별", @@ -2440,6 +2441,7 @@ "Undo Activation": "실행 취소 활성화", "Undo Approval": "승인 취소", "Undo Disbursal": "지급 취소", + "Undo Last Disbursal": "마지막 지불 취소", "Undo Re-Age": "노화 취소", "Undo Re-Amortize": "상각합니다 취소", "User Management": "사용자 관리", diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 939105f1f..dc4e937d8 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -572,6 +572,7 @@ "Escheat": "Escheat", "On Hold": "Sulaikyta", "Release": "Paleisti", + "Release Amount": "Išleidimo suma", "Daily": "Kasdien", "Monthly": "Kas mėnesį", "Quarterly": "Kas ketvirtį", @@ -2440,6 +2441,7 @@ "Undo Activation": "Anuliuoti aktyvaciją", "Undo Approval": "Anuliuoti patvirtinimą", "Undo Disbursal": "Anuliuoti išmokėjimą", + "Undo Last Disbursal": "Anuliuoti paskutinę išmokėjimą", "Undo Re-Age": "Anuliuoti senėjimas", "Undo Re-Amortize": "Anuliuoti amortize", "User Management": "Vartotojo valdymas", diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index 14bd99fa0..ebcc9c9be 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -572,6 +572,7 @@ "Escheat": "Escheat", "On Hold": "Aizturēts", "Release": "Atbrīvot", + "Release Amount": "Izlaiduma summa", "Daily": "Ikdienas", "Monthly": "Ikmēneša", "Quarterly": "Ceturkšņa", @@ -2440,6 +2441,7 @@ "Undo Activation": "Atsaukt aktivizēšanu", "Undo Approval": "Atsaukt apstiprinājumu", "Undo Disbursal": "Atsaukt izmaksu", + "Undo Last Disbursal": "Atsaukt pēdējo izmaksu", "Undo Re-Age": "Atsaukt novecošanās", "Undo Re-Amortize": "Atsaukt amortizēt", "User Management": "Lietotāju pārvaldība", diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index 64028ca89..6e389f5b9 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -572,6 +572,7 @@ "Escheat": "एस्केट", "On Hold": "होल्डमा छ", "Release": "रिलीज", + "Release Amount": "रिलिज रकम", "Daily": "दैनिक", "Monthly": "मासिक", "Quarterly": "त्रैमासिक", @@ -2440,6 +2441,7 @@ "Undo Activation": "अन्डु सक्रियता", "Undo Approval": "अनुमोदन अनडू गर्नुहोस्", "Undo Disbursal": "वितरण पूर्ववत गर्नुहोस्", + "Undo Last Disbursal": "पछिल्लो वितरण पूर्ववत गर्नुहोस्", "Undo Re-Age": "बुढ्यौडो अनडू", "Undo Re-Amortize": "परिणत गर्नुहोस् अनडू", "User Management": "प्रयोगकर्ता व्यवस्थापन", diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index 64cfe0cbf..b9901f65b 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -572,6 +572,7 @@ "Escheat": "Fuga", "On Hold": "Em espera", "Release": "Liberar", + "Release Amount": "Valor de liberação", "Daily": "Diário", "Monthly": "Por mês", "Quarterly": "Trimestralmente", @@ -2440,6 +2441,7 @@ "Undo Activation": "Desfazer ativação", "Undo Approval": "Desfazer aprovação", "Undo Disbursal": "Desfazer desembolso", + "Undo Last Disbursal": "Desfazer último desembolso", "Undo Re-Age": "Desfazer envelhecimento", "Undo Re-Amortize": "Desfazer amortizar", "User Management": "Gerenciamento de usuários", diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index 46f68e7de..7437b87a8 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -572,6 +572,7 @@ "Escheat": "Escheat", "On Hold": "Imesimama", "Release": "Kutolewa", + "Release Amount": "Kiasi cha Kutolewa", "Daily": "Kila siku", "Monthly": "Kila mwezi", "Quarterly": "Kila robo", @@ -2440,6 +2441,7 @@ "Undo Activation": "Uanzishaji", "Undo Approval": "Tendua Uidhinishaji", "Undo Disbursal": "Tendua Utoaji", + "Undo Last Disbursal": "Tendua Utoaji wa Mwisho", "Undo Re-Age": "Tendua Kuzeeka", "Undo Re-Amortize": "Tendua Adize", "User Management": "Usimamizi wa Mtumiaji",