diff --git a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html index 13853b5173..c805bae826 100644 --- a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html +++ b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.html @@ -372,6 +372,13 @@

{{ 'labels.inputs.Loan Schedule' | translate}}

+
+ {{ 'labels.inputs.SUPPORTED INTEREST REFUND TYPES' | translate}}: + + {{mapHumanReadableValueStringEnumOptionDataList(supportedInterestRefundTypes)}} + +
+

{{ 'labels.inputs.Down Payments' | translate}}

diff --git a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts index c282051103..54654224dc 100644 --- a/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts +++ b/src/app/products/loan-products/common/loan-product-summary/loan-product-summary.component.ts @@ -3,7 +3,7 @@ import { DelinquencyBucket, LoanProduct } from '../../models/loan-product.model' import { AccountingMapping, Charge, ChargeToIncomeAccountMapping, GLAccount, PaymentChannelToFundSourceMapping, PaymentType, PaymentTypeOption } from '../../../../shared/models/general.model'; import { AdvancePaymentAllocationData, CreditAllocation, PaymentAllocation } from '../../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; import { LoanProducts } from '../../loan-products'; -import { CodeName, OptionData } from '../../../../shared/models/option-data.model'; +import { CodeName, OptionData, StringEnumOptionData } from '../../../../shared/models/option-data.model'; import { Accounting } from 'app/core/utils/accounting'; @Component({ @@ -19,6 +19,7 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { @Input() useDueForRepaymentsConfigurations: boolean; @Input() paymentAllocations: PaymentAllocation | null; @Input() creditAllocations: CreditAllocation | null; + @Input() supportedInterestRefundTypes: StringEnumOptionData[] | null; variationsDisplayedColumns: string[] = ['valueConditionType', 'borrowerCycleNumber', 'minValue', 'defaultValue', 'maxValue']; chargesDisplayedColumns: string[] = ['name', 'chargeCalculationType', 'amount', 'chargeTimeType']; @@ -331,4 +332,8 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges { return this.accounting.getAccountRuleName(value.toUpperCase()); } + mapHumanReadableValueStringEnumOptionDataList(incomingParameter: StringEnumOptionData[]): string[] { + return incomingParameter.map(v => v.value); + } + } diff --git a/src/app/products/loan-products/create-loan-product/create-loan-product.component.html b/src/app/products/loan-products/create-loan-product/create-loan-product.component.html index 5d2b433e74..d16ce52e66 100644 --- a/src/app/products/loan-products/create-loan-product/create-loan-product.component.html +++ b/src/app/products/loan-products/create-loan-product/create-loan-product.component.html @@ -51,6 +51,15 @@ + + {{'labels.inputs.INTEREST REFUND' | translate}} + + + + {{'labels.inputs.PAYMENT ALLOCATION' | translate}} diff --git a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts index 7a7cf7f50f..4e8e99a8b7 100644 --- a/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts +++ b/src/app/products/loan-products/create-loan-product/create-loan-product.component.ts @@ -9,12 +9,14 @@ import { LoanProductTermsStepComponent } from '../loan-product-stepper/loan-prod import { LoanProductSettingsStepComponent } from '../loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component'; import { LoanProductChargesStepComponent } from '../loan-product-stepper/loan-product-charges-step/loan-product-charges-step.component'; import { LoanProductAccountingStepComponent } from '../loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component'; +import { LoanProductInterestRefundStepComponent } from '../loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component'; /** Custom Services */ import { ProductsService } from 'app/products/products.service'; import { LoanProducts } from '../loan-products'; import { AdvancedPaymentAllocation, AdvancedPaymentStrategy, PaymentAllocation } from '../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; import { Accounting } from 'app/core/utils/accounting'; +import { StringEnumOptionData } from '../../../shared/models/option-data.model'; @Component({ selector: 'mifosx-create-loan-product', @@ -25,6 +27,7 @@ export class CreateLoanProductComponent implements OnInit { @ViewChild(LoanProductDetailsStepComponent, { static: true }) loanProductDetailsStep: LoanProductDetailsStepComponent; @ViewChild(LoanProductCurrencyStepComponent, { static: true }) loanProductCurrencyStep: LoanProductCurrencyStepComponent; + @ViewChild(LoanProductInterestRefundStepComponent, {static: true}) loanProductInterestRefundStep: LoanProductInterestRefundStepComponent; @ViewChild(LoanProductTermsStepComponent, { static: true }) loanProductTermsStep: LoanProductTermsStepComponent; @ViewChild(LoanProductSettingsStepComponent, { static: true }) loanProductSettingsStep: LoanProductSettingsStepComponent; @ViewChild(LoanProductChargesStepComponent, { static: true }) loanProductChargesStep: LoanProductChargesStepComponent; @@ -37,6 +40,7 @@ export class CreateLoanProductComponent implements OnInit { isAdvancedPaymentStrategy = false; paymentAllocation: PaymentAllocation[] = []; creditAllocation: PaymentAllocation[] = []; + supportedInterestRefundTypes: StringEnumOptionData[] = []; advancedPaymentAllocations: AdvancedPaymentAllocation[] = []; advancedCreditAllocations: AdvancedPaymentAllocation[] = []; @@ -79,6 +83,12 @@ export class CreateLoanProductComponent implements OnInit { } } + get loanProductInterestRefundForm() { + if (this.loanProductInterestRefundStep != null) { + return this.loanProductInterestRefundStep.loanProductInterestRefundForm; + } + } + get loanProductTermsForm() { return this.loanProductTermsStep.loanProductTermsForm; } @@ -99,6 +109,10 @@ export class CreateLoanProductComponent implements OnInit { this.creditAllocation = paymentAllocation; } + setSupportedInterestRefundTypes(supportedInterestRefundTypes: StringEnumOptionData[]): void { + this.supportedInterestRefundTypes = supportedInterestRefundTypes; + } + get loanProductSettingsForm() { return this.loanProductSettingsStep.loanProductSettingsForm; } @@ -129,6 +143,7 @@ export class CreateLoanProductComponent implements OnInit { if (this.isAdvancedPaymentStrategy) { loanProduct['paymentAllocation'] = this.paymentAllocation; loanProduct['creditAllocation'] = this.creditAllocation; + loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes; } return loanProduct; } @@ -139,6 +154,7 @@ export class CreateLoanProductComponent implements OnInit { loanProduct['dueDaysForRepaymentEvent'] = null; loanProduct['overDueDaysForRepaymentEvent'] = null; } + loanProduct['supportedInterestRefundTypes'] = this.mapStringEnumOptionToIdList(loanProduct['supportedInterestRefundTypes']); delete loanProduct['useDueForRepaymentsConfigurations']; this.productsService.createLoanProduct(loanProduct) @@ -147,4 +163,7 @@ export class CreateLoanProductComponent implements OnInit { }); } + mapStringEnumOptionToIdList(incomingValues: StringEnumOptionData[]): string[] { + return incomingValues.map(v => v.id); + } } diff --git a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.html b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.html index cf9629de81..5100411115 100644 --- a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.html +++ b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.html @@ -51,6 +51,15 @@ + + {{'labels.inputs.INTEREST REFUND' | translate}} + + + + {{'labels.inputs.PAYMENT ALLOCATION' | translate}} diff --git a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts index ae890b0c9c..d485bd40e8 100644 --- a/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts +++ b/src/app/products/loan-products/edit-loan-product/edit-loan-product.component.ts @@ -14,8 +14,10 @@ import { LoanProductAccountingStepComponent } from '../loan-product-stepper/loan import { ProductsService } from 'app/products/products.service'; import { GlobalConfiguration } from 'app/system/configurations/global-configurations-tab/configuration.model'; import { LoanProducts } from '../loan-products'; -import { AdvancedCreditAllocation, AdvancedPaymentAllocation, AdvancedPaymentStrategy, CreditAllocation, PaymentAllocation, PaymentAllocationOrder, PaymentAllocationTransactionTypes } from '../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; +import { AdvancedCreditAllocation, AdvancedPaymentAllocation, AdvancedPaymentStrategy, CreditAllocation, PaymentAllocation } from '../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; import { Accounting } from 'app/core/utils/accounting'; +import { LoanProductInterestRefundStepComponent } from '../loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component'; +import { StringEnumOptionData } from '../../../shared/models/option-data.model'; @Component({ selector: 'mifosx-edit-loan-product', @@ -26,6 +28,7 @@ export class EditLoanProductComponent implements OnInit { @ViewChild(LoanProductDetailsStepComponent, { static: true }) loanProductDetailsStep: LoanProductDetailsStepComponent; @ViewChild(LoanProductCurrencyStepComponent, { static: true }) loanProductCurrencyStep: LoanProductCurrencyStepComponent; + @ViewChild(LoanProductInterestRefundStepComponent, { static: true }) loanProductInterestRefundStep: LoanProductInterestRefundStepComponent; @ViewChild(LoanProductTermsStepComponent, { static: true }) loanProductTermsStep: LoanProductTermsStepComponent; @ViewChild(LoanProductSettingsStepComponent, { static: true }) loanProductSettingsStep: LoanProductSettingsStepComponent; @ViewChild(LoanProductChargesStepComponent, { static: true }) loanProductChargesStep: LoanProductChargesStepComponent; @@ -41,6 +44,7 @@ export class EditLoanProductComponent implements OnInit { creditAllocation: CreditAllocation[] = []; advancedPaymentAllocations: AdvancedPaymentAllocation[] = []; advancedCreditAllocations: AdvancedCreditAllocation[] = []; + supportedInterestRefundTypes: StringEnumOptionData[] = []; /** * @param {ActivatedRoute} route Activated Route. @@ -77,6 +81,7 @@ export class EditLoanProductComponent implements OnInit { if (this.isAdvancedPaymentStrategy) { this.paymentAllocation = this.loanProductAndTemplate.paymentAllocation; this.creditAllocation = this.loanProductAndTemplate.creditAllocation; + this.supportedInterestRefundTypes = this.loanProductAndTemplate.supportedInterestRefundTypes; } } @@ -96,6 +101,12 @@ export class EditLoanProductComponent implements OnInit { return this.loanProductSettingsStep.loanProductSettingsForm; } + get loanProductInterestRefundForm() { + if (this.loanProductInterestRefundStep != null) { + return this.loanProductInterestRefundStep.loanProductInterestRefundForm; + } + } + advancePaymentStrategy(value: string): void { this.isAdvancedPaymentStrategy = LoanProducts.isAdvancedPaymentAllocationStrategy(value); } @@ -115,6 +126,10 @@ export class EditLoanProductComponent implements OnInit { this.wasPaymentAllocationChanged = true; } + setSupportedInterestRefundTypes(supportedInterestRefundTypes: StringEnumOptionData[]): void { + this.supportedInterestRefundTypes = supportedInterestRefundTypes; + } + paymentAllocationChanged(value: boolean): void { this.wasPaymentAllocationChanged = value; } @@ -154,9 +169,11 @@ export class EditLoanProductComponent implements OnInit { // Default empty array loanProduct['paymentAllocation'] = []; loanProduct['creditAllocation'] = []; + loanProduct['supportedInterestRefundTypes'] = []; if (this.isAdvancedPaymentStrategy) { loanProduct['paymentAllocation'] = this.paymentAllocation; loanProduct['creditAllocation'] = this.creditAllocation; + loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes; } return loanProduct; } @@ -167,6 +184,7 @@ export class EditLoanProductComponent implements OnInit { loanProduct['dueDaysForRepaymentEvent'] = null; loanProduct['overDueDaysForRepaymentEvent'] = null; } + loanProduct['supportedInterestRefundTypes'] = this.mapStringEnumOptionToIdList(loanProduct['supportedInterestRefundTypes']); delete loanProduct['useDueForRepaymentsConfigurations']; this.productsService.updateLoanProduct(this.loanProductAndTemplate.id, loanProduct) @@ -175,4 +193,8 @@ export class EditLoanProductComponent implements OnInit { }); } + mapStringEnumOptionToIdList(incomingValues: StringEnumOptionData[]): string[] { + return incomingValues.map(v => v.id); + } + } diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.html new file mode 100644 index 0000000000..3d22299147 --- /dev/null +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.html @@ -0,0 +1,14 @@ +
+ +
+ + + {{'labels.inputs.SUPPORTED INTEREST REFUND TYPES' | translate}} + + + {{ supportedTransaction.value }} + + + +
+
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.scss b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.scss new file mode 100644 index 0000000000..aa8d23226f --- /dev/null +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.scss @@ -0,0 +1,3 @@ +.margin-t { + margin-top: 1em; +} diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.spec.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.spec.ts new file mode 100644 index 0000000000..15fd377aa3 --- /dev/null +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoanProductInterestRefundStepComponent } from './loan-product-interest-refund-step.component'; + +describe('LoanProductInterestRefundStepComponent', () => { + let component: LoanProductInterestRefundStepComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ LoanProductInterestRefundStepComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(LoanProductInterestRefundStepComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.ts new file mode 100644 index 0000000000..727c80ad2c --- /dev/null +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component.ts @@ -0,0 +1,54 @@ +import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; +import { UntypedFormBuilder, UntypedFormGroup} from '@angular/forms'; +import { StringEnumOptionData } from '../../../../shared/models/option-data.model'; + +@Component({ + selector: 'mifosx-loan-product-interest-refund-step', + templateUrl: './loan-product-interest-refund-step.component.html', + styleUrls: ['./loan-product-interest-refund-step.component.scss'] +}) +export class LoanProductInterestRefundStepComponent implements OnInit { + + @Input() loanProductsTemplate: any; + @Output() supportedInterestRefundTypes = new EventEmitter(); + + loanProductInterestRefundForm: UntypedFormGroup; + + supportedInterestRefundTypesOptions: StringEnumOptionData[]; + + constructor(private formBuilder: UntypedFormBuilder) { + this.createLoanProductInterestRefundForm(); + this.setConditionalControls(); + } + + ngOnInit() { + this.supportedInterestRefundTypesOptions = this.loanProductsTemplate.supportedInterestRefundTypesOptions; + const values: StringEnumOptionData[] = this.loanProductsTemplate.supportedInterestRefundTypes; + const supportedInterestRefundTypes: string[] = this.mapStringEnumOptionToIdList(values); + this.loanProductInterestRefundForm.patchValue({ + 'supportedInterestRefundTypes': supportedInterestRefundTypes + }); + this.supportedInterestRefundTypes.emit(values); + } + + createLoanProductInterestRefundForm() { + this.loanProductInterestRefundForm = this.formBuilder.group({ + 'supportedInterestRefundTypes': '' + }); + } + + setConditionalControls() { + this.loanProductInterestRefundForm.get('supportedInterestRefundTypes').valueChanges + .subscribe(value => { + this.supportedInterestRefundTypes.emit(this.mapIdToStringEnumOptionList(value, this.loanProductsTemplate.supportedInterestRefundTypesOptions)); + }); + } + + mapStringEnumOptionToIdList(incomingValues: StringEnumOptionData[]): string[] { + return incomingValues.map(v => v.id); + } + + mapIdToStringEnumOptionList(incomingValues: string[], options: StringEnumOptionData[]): StringEnumOptionData[] { + return options.filter(v => incomingValues.includes(v.id)); + } +} diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html index 84a1665a58..462de57ec8 100644 --- a/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html +++ b/src/app/products/loan-products/loan-product-stepper/loan-product-preview-step/loan-product-preview-step.component.html @@ -6,6 +6,7 @@ [useDueForRepaymentsConfigurations]="loanProduct.useDueForRepaymentsConfigurations" [paymentAllocations]="loanProduct.paymentAllocation" [creditAllocations]="loanProduct.creditAllocation" +[supportedInterestRefundTypes]="loanProduct.supportedInterestRefundTypes" > diff --git a/src/app/products/loan-products/models/loan-product.model.ts b/src/app/products/loan-products/models/loan-product.model.ts index d415c10164..094ed0a11f 100644 --- a/src/app/products/loan-products/models/loan-product.model.ts +++ b/src/app/products/loan-products/models/loan-product.model.ts @@ -1,5 +1,5 @@ import { AccountingMapping, ChargeToIncomeAccountMapping, Currency, PaymentChannelToFundSourceMapping } from 'app/shared/models/general.model'; -import { OptionData } from 'app/shared/models/option-data.model'; +import { OptionData, StringEnumOptionData } from 'app/shared/models/option-data.model'; import { CreditAllocation, PaymentAllocation } from '../loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model'; export interface LoanProduct { @@ -125,6 +125,7 @@ export interface LoanProduct { feeToIncomeAccountMappings?: ChargeToIncomeAccountMapping[]; penaltyToIncomeAccountMappings?: ChargeToIncomeAccountMapping[]; enableAccrualActivityPosting?: boolean; + supportedInterestRefundTypes?: StringEnumOptionData[]; } diff --git a/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.html b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.html index 5059d6368a..dce519fa01 100644 --- a/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.html +++ b/src/app/products/loan-products/view-loan-product/general-tab/general-tab.component.html @@ -18,5 +18,6 @@ [useDueForRepaymentsConfigurations]="useDueForRepaymentsConfigurations" [paymentAllocations]="loanProduct.paymentAllocation" [creditAllocations]="loanProduct.creditAllocation" +[supportedInterestRefundTypes]="loanProduct.supportedInterestRefundTypes" > diff --git a/src/app/products/products.module.ts b/src/app/products/products.module.ts index 35307d9e92..c60f459031 100644 --- a/src/app/products/products.module.ts +++ b/src/app/products/products.module.ts @@ -12,6 +12,7 @@ import { ProductsComponent } from './products.component'; import { LoanProductsComponent } from './loan-products/loan-products.component'; import { LoanProductDetailsStepComponent } from './loan-products/loan-product-stepper/loan-product-details-step/loan-product-details-step.component'; import { LoanProductCurrencyStepComponent } from './loan-products/loan-product-stepper/loan-product-currency-step/loan-product-currency-step.component'; +import { LoanProductInterestRefundStepComponent } from './loan-products/loan-product-stepper/loan-product-interest-refund-step/loan-product-interest-refund-step.component'; import { LoanProductTermsStepComponent } from './loan-products/loan-product-stepper/loan-product-terms-step/loan-product-terms-step.component'; import { LoanProductSettingsStepComponent } from './loan-products//loan-product-stepper/loan-product-settings-step/loan-product-settings-step.component'; import { LoanProductChargesStepComponent } from './loan-products/loan-product-stepper/loan-product-charges-step/loan-product-charges-step.component'; @@ -138,6 +139,7 @@ import { LoanProductSummaryComponent } from './loan-products/common/loan-product LoanProductsComponent, LoanProductDetailsStepComponent, LoanProductCurrencyStepComponent, + LoanProductInterestRefundStepComponent, LoanProductTermsStepComponent, LoanProductSettingsStepComponent, LoanProductPaymentStrategyStepComponent, diff --git a/src/app/shared/models/option-data.model.ts b/src/app/shared/models/option-data.model.ts index 0159694270..0b5fe737f2 100644 --- a/src/app/shared/models/option-data.model.ts +++ b/src/app/shared/models/option-data.model.ts @@ -8,3 +8,9 @@ export interface CodeName { code: string; name: string; } + +export interface StringEnumOptionData { + id: string; + value: string; + code: string; +} diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json index dbd28e6122..4bc251228a 100644 --- a/src/assets/translations/cs-CS.json +++ b/src/assets/translations/cs-CS.json @@ -2388,7 +2388,9 @@ "to": "na", "Down Payments": "Zálohy", "Enable Down Payments": "Povolit zálohové platby", - "valid": "platný" + "valid": "platný", + "INTEREST REFUND": "VRÁCENÍ ÚROKU", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Podporované typy vrácení úroků" }, "links": { "Community": "Společenství", @@ -3373,6 +3375,7 @@ "Withdraw": "Ustoupit", "Yes": "Ano", "loan product will be active and available to clients": "Datum, kdy bude úvěrový produkt aktivní a dostupný klientům. Pokud nevyplníte, bude úvěrový produkt aktivní, jakmile bude vytvořen.", - "loan product will become inactive and unavailable to clients": "Datum, kdy se úvěrový produkt stane neaktivním a nedostupným pro klienty. Pokud je prázdné, produkt zatížení se nikdy nestane neaktivním." + "loan product will become inactive and unavailable to clients": "Datum, kdy se úvěrový produkt stane neaktivním a nedostupným pro klienty. Pokud je prázdné, produkt zatížení se nikdy nestane neaktivním.", + "Refund transactions where interest refund will automatically be calculated": "Transakce s vrácením peněz, kde bude automaticky vypočítána refundace úroků" } } diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json index b77b766f0f..5de2cf3305 100644 --- a/src/assets/translations/de-DE.json +++ b/src/assets/translations/de-DE.json @@ -2388,7 +2388,9 @@ "to": "Zu", "Down Payments": "Anzahlungen", "Enable Down Payments": "Anzahlungen aktivieren", - "valid": "gültig" + "valid": "gültig", + "INTEREST REFUND": "ZINSRÜCKERSTATTUNG", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Unterstützte Zinsrückerstattungsarten" }, "links": { "Community": "Gemeinschaft", @@ -3372,6 +3374,7 @@ "Withdraw": "Zurückziehen", "Yes": "Ja", "loan product will be active and available to clients": "Das Datum, an dem das Kreditprodukt aktiv und für Kunden verfügbar sein wird. Wenn das Feld leer ist, ist das Kreditprodukt aktiv, sobald es erstellt wird.", - "loan product will become inactive and unavailable to clients": "Das Datum, an dem das Kreditprodukt inaktiv wird und für Kunden nicht mehr verfügbar ist. Wenn es leer ist, wird das Ladeprodukt niemals inaktiv." + "loan product will become inactive and unavailable to clients": "Das Datum, an dem das Kreditprodukt inaktiv wird und für Kunden nicht mehr verfügbar ist. Wenn es leer ist, wird das Ladeprodukt niemals inaktiv.", + "Refund transactions where interest refund will automatically be calculated": "Rückerstattungstransaktionen, bei denen die Zinsrückerstattung automatisch berechnet wird" } } diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json index 4bb7e2143b..533d1c97df 100644 --- a/src/assets/translations/en-US.json +++ b/src/assets/translations/en-US.json @@ -2389,7 +2389,9 @@ "to": "to", "Down Payments": "Down Payments", "Enable Down Payments": "Enable Down Payments", - "valid": "valid" + "valid": "valid", + "INTEREST REFUND": "INTEREST REFUND", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Supported interest refund types" }, "links": { "Community": "Community", @@ -3374,6 +3376,7 @@ "Withdraw": "Withdraw", "Yes": "Yes", "loan product will be active and available to clients": "The date that the loan product will be active and available to clients. If blank, the loan product will be active as soon as it is created.", - "loan product will become inactive and unavailable to clients": "The date that the loan product will become inactive and unavailable to clients. If blank, the load product will never become inactive." + "loan product will become inactive and unavailable to clients": "The date that the loan product will become inactive and unavailable to clients. If blank, the load product will never become inactive.", + "Refund transactions where interest refund will automatically be calculated": "Refund transactions where interest refund will automatically be calculated" } } diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json index 81971b0f91..3e754fb4fe 100644 --- a/src/assets/translations/es-MX.json +++ b/src/assets/translations/es-MX.json @@ -2387,7 +2387,9 @@ "to": "a", "Down Payments": "Pago Inicial", "Enable Down Payments": "Habilitar Pagos Iniciales", - "valid": "válido" + "valid": "válido", + "INTEREST REFUND": "REEMBOLSO DE INTERESES", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de intereses admitidos" }, "links": { "Community": "Comunidad", @@ -3372,6 +3374,7 @@ "Withdraw": "Retirar", "Yes": "Sí", "loan product will be active and available to clients": "La fecha en que el producto de Crédito estará activo y disponible para los clientes. Si está en blanco, el producto de Crédito estará activo tan pronto como se cree.", - "loan product will become inactive and unavailable to clients": "La fecha en que el producto de Crédito quedará inactivo y no estará disponible para los clientes. Si está en blanco, el producto de carga nunca quedará inactivo." + "loan product will become inactive and unavailable to clients": "La fecha en que el producto de Crédito quedará inactivo y no estará disponible para los clientes. Si está en blanco, el producto de carga nunca quedará inactivo.", + "Refund transactions where interest refund will automatically be calculated": "Transacciones de reembolso en las que el reembolso de intereses se calculará automáticamente" } } diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json index 1ee1c9e781..d5a38fc37b 100644 --- a/src/assets/translations/fr-FR.json +++ b/src/assets/translations/fr-FR.json @@ -2388,7 +2388,9 @@ "to": "à", "Down Payments": "Acomptes", "Enable Down Payments": "Activer les acomptes", - "valid": "valide" + "valid": "valide", + "INTEREST REFUND": "REMBOURSEMENT DES INTÉRÊTS", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Types de remboursement d'intérêts pris en charge" }, "links": { "Community": "Communauté", @@ -3373,6 +3375,7 @@ "Withdraw": "Retirer", "Yes": "Oui", "loan product will be active and available to clients": "La date à laquelle le produit de prêt sera actif et disponible pour les clients. Si ce champ est vide, le produit de prêt sera actif dès sa création.", - "loan product will become inactive and unavailable to clients": "Date à laquelle le produit de prêt deviendra inactif et indisponible pour les clients. S'il est vide, le produit chargé ne deviendra jamais inactif." + "loan product will become inactive and unavailable to clients": "Date à laquelle le produit de prêt deviendra inactif et indisponible pour les clients. S'il est vide, le produit chargé ne deviendra jamais inactif.", + "Refund transactions where interest refund will automatically be calculated": "Opérations de remboursement pour lesquelles le remboursement des intérêts sera automatiquement calculé" } } diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json index 5d4cbfcec3..5b87989207 100644 --- a/src/assets/translations/it-IT.json +++ b/src/assets/translations/it-IT.json @@ -2388,7 +2388,9 @@ "to": "A", "Down Payments": "Acconti", "Enable Down Payments": "Abilita acconti", - "valid": "valido" + "valid": "valido", + "INTEREST REFUND": "RIMBORSO DEGLI INTERESSI", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipi di rimborso degli interessi supportati" }, "links": { "Community": "Comunità", @@ -3373,6 +3375,7 @@ "Withdraw": "Ritirare", "Yes": "SÌ", "loan product will be active and available to clients": "La data in cui il prodotto di prestito sarà attivo e disponibile per i clienti. Se vuoto, il prodotto di prestito sarà attivo non appena verrà creato.", - "loan product will become inactive and unavailable to clients": "La data in cui il prodotto di prestito diventerà inattivo e non disponibile per i clienti. Se vuoto, il prodotto caricato non diventerà mai inattivo." + "loan product will become inactive and unavailable to clients": "La data in cui il prodotto di prestito diventerà inattivo e non disponibile per i clienti. Se vuoto, il prodotto caricato non diventerà mai inattivo.", + "Refund transactions where interest refund will automatically be calculated": "Transazioni di rimborso in cui il rimborso degli interessi verrà calcolato automaticamente" } } diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json index 182808e8d8..aa1b68c6ff 100644 --- a/src/assets/translations/ko-KO.json +++ b/src/assets/translations/ko-KO.json @@ -2389,7 +2389,9 @@ "to": "에게", "Down Payments": "계약금", "Enable Down Payments": "계약금 활성화", - "valid": "유효한" + "valid": "유효한", + "INTEREST REFUND": "이자환급", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "지원되는 이자 환불 유형" }, "links": { "Community": "지역 사회", @@ -3373,6 +3375,7 @@ "Withdraw": "철회하다", "Yes": "예", "loan product will be active and available to clients": "대출 상품이 활성화되어 고객에게 제공되는 날짜입니다. 비어 있으면 대출 상품이 생성되자마자 활성화됩니다.", - "loan product will become inactive and unavailable to clients": "대출 상품이 비활성화되어 고객이 사용할 수 없게 되는 날짜입니다. 비어 있으면 로드 제품이 비활성화되지 않습니다." + "loan product will become inactive and unavailable to clients": "대출 상품이 비활성화되어 고객이 사용할 수 없게 되는 날짜입니다. 비어 있으면 로드 제품이 비활성화되지 않습니다.", + "Refund transactions where interest refund will automatically be calculated": "이자 환불이 자동으로 계산되는 환불 거래" } } diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json index 687c4ffc77..a8286740bc 100644 --- a/src/assets/translations/lt-LT.json +++ b/src/assets/translations/lt-LT.json @@ -2388,7 +2388,9 @@ "to": "į", "Down Payments": "Pradiniai mokėjimai", "Enable Down Payments": "Įgalinti pradinius mokėjimus", - "valid": "galioja" + "valid": "galioja", + "INTEREST REFUND": "PALŪKANŲ GRĄŽINIMAS", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Palaikomi palūkanų grąžinimo tipai" }, "links": { "Community": "bendruomenė", @@ -3373,6 +3375,7 @@ "Withdraw": "Atsitraukti", "Yes": "Taip", "loan product will be active and available to clients": "Data, kada paskolos produktas bus aktyvus ir bus prieinamas klientams. Jei tuščia, paskolos produktas bus aktyvus, kai tik bus sukurtas.", - "loan product will become inactive and unavailable to clients": "Data, kai paskolos produktas taps neaktyvus ir nepasiekiamas klientams. Jei tuščia, įkėlimo produktas niekada netaps neaktyvus." + "loan product will become inactive and unavailable to clients": "Data, kai paskolos produktas taps neaktyvus ir nepasiekiamas klientams. Jei tuščia, įkėlimo produktas niekada netaps neaktyvus.", + "Refund transactions where interest refund will automatically be calculated": "Atmaksas darījumi, kuros procentu atmaksa tiks aprēķināta automātiski" } } diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json index 50a9981722..513d11b5c9 100644 --- a/src/assets/translations/lv-LV.json +++ b/src/assets/translations/lv-LV.json @@ -2388,7 +2388,9 @@ "to": "uz", "Down Payments": "Pirmās iemaksas", "Enable Down Payments": "Iespējot pirmās iemaksas", - "valid": "derīgs" + "valid": "derīgs", + "INTEREST REFUND": "PROCENTU ATMAKSĀŠANA", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Atbalstītie procentu atmaksas veidi" }, "links": { "Community": "kopiena", @@ -3373,6 +3375,7 @@ "Withdraw": "Izņemt", "Yes": "Jā", "loan product will be active and available to clients": "Datums, kad aizdevuma produkts būs aktīvs un pieejams klientiem. Ja lauks ir tukšs, aizdevuma produkts būs aktīvs, tiklīdz tas tiks izveidots.", - "loan product will become inactive and unavailable to clients": "Datums, kad aizdevuma produkts kļūs neaktīvs un klientiem nebūs pieejams. Ja lauks ir tukšs, ielādes produkts nekad nekļūs neaktīvs." + "loan product will become inactive and unavailable to clients": "Datums, kad aizdevuma produkts kļūs neaktīvs un klientiem nebūs pieejams. Ja lauks ir tukšs, ielādes produkts nekad nekļūs neaktīvs.", + "Refund transactions where interest refund will automatically be calculated": "Grąžinimo operacijos, kai palūkanų grąžinimas bus skaičiuojamas automatiškai" } } diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json index bc5c3e5b99..0a083a4772 100644 --- a/src/assets/translations/ne-NE.json +++ b/src/assets/translations/ne-NE.json @@ -2388,7 +2388,9 @@ "to": "को", "Down Payments": "तल भुक्तानीहरू", "Enable Down Payments": "डाउन पेमेन्टहरू सक्षम गर्नुहोस्", - "valid": "मान्य" + "valid": "मान्य", + "INTEREST REFUND": "व्याज परतावा", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "समर्थित व्याज परतावा प्रकार" }, "links": { "Community": "समुदाय", @@ -3373,6 +3375,7 @@ "Withdraw": "निकाल्नु", "Yes": "हो", "loan product will be active and available to clients": "ऋण उत्पादन सक्रिय र ग्राहकहरूको लागि उपलब्ध हुने मिति। खाली भएमा, ऋण उत्पादन सिर्जना हुने बित्तिकै सक्रिय हुनेछ।", - "loan product will become inactive and unavailable to clients": "ऋण उत्पादन निष्क्रिय र ग्राहकहरु को लागी अनुपलब्ध हुने मिति। यदि खाली छ भने, लोड उत्पादन कहिल्यै निष्क्रिय हुनेछैन।" + "loan product will become inactive and unavailable to clients": "ऋण उत्पादन निष्क्रिय र ग्राहकहरु को लागी अनुपलब्ध हुने मिति। यदि खाली छ भने, लोड उत्पादन कहिल्यै निष्क्रिय हुनेछैन।", + "Refund transactions where interest refund will automatically be calculated": "फिर्ता लेनदेन जहाँ ब्याज फिर्ता स्वतः गणना हुनेछ" } } diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json index 6fdfc01a4d..6860444872 100644 --- a/src/assets/translations/pt-PT.json +++ b/src/assets/translations/pt-PT.json @@ -2388,7 +2388,9 @@ "to": "para", "Down Payments": "Adiantamentos", "Enable Down Payments": "Habilitar adiantamentos", - "valid": "válido" + "valid": "válido", + "INTEREST REFUND": "REEMBOLSO DE JUROS", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Tipos de reembolso de juros suportados" }, "links": { "Community": "Comunidade", @@ -3373,6 +3375,7 @@ "Withdraw": "Retirar", "Yes": "Sim", "loan product will be active and available to clients": "A data em que o produto de empréstimo estará ativo e disponível para os clientes. Se estiver em branco, o produto de empréstimo estará ativo assim que for criado.", - "loan product will become inactive and unavailable to clients": "A data em que o produto de empréstimo ficará inativo e indisponível para os clientes. Se estiver em branco, o produto de carregamento nunca ficará inativo." + "loan product will become inactive and unavailable to clients": "A data em que o produto de empréstimo ficará inativo e indisponível para os clientes. Se estiver em branco, o produto de carregamento nunca ficará inativo.", + "Refund transactions where interest refund will automatically be calculated": "Transações de reembolso em que o reembolso de juros será calculado automaticamente" } } diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json index 7dc727dff3..541f08b3f6 100644 --- a/src/assets/translations/sw-SW.json +++ b/src/assets/translations/sw-SW.json @@ -2388,7 +2388,9 @@ "to": "kwa", "Down Payments": "Malipo ya Chini", "Enable Down Payments": "Washa Malipo ya Chini", - "valid": "halali" + "valid": "halali", + "INTEREST REFUND": "MAREJESHO YA RIBA", + "SUPPORTED REFUND TRANSACTIONS FOR INTEREST REFUND": "Aina za kurejesha riba zinazotumika" }, "links": { "Community": "Jumuiya", @@ -3373,6 +3375,7 @@ "Withdraw": "Kutoa", "Yes": "Ndiyo", "loan product will be active and available to clients": "Tarehe ambayo bidhaa ya mkopo itaanza kutumika na inapatikana kwa wateja. Ikiwa tupu, bidhaa ya mkopo itaanza kutumika mara tu itakapoundwa.", - "loan product will become inactive and unavailable to clients": "Tarehe ambayo bidhaa ya mkopo itaacha kutumika na haitapatikana kwa wateja. Ikiwa tupu, bidhaa ya kupakia haitafanya kazi kamwe." + "loan product will become inactive and unavailable to clients": "Tarehe ambayo bidhaa ya mkopo itaacha kutumika na haitapatikana kwa wateja. Ikiwa tupu, bidhaa ya kupakia haitafanya kazi kamwe.", + "Refund transactions where interest refund will automatically be calculated": "Shughuli za kurejesha pesa ambapo urejeshaji wa riba utahesabiwa kiotomatiki" } }