diff --git a/src/app/loans/loans-view/account-details/account-details.component.html b/src/app/loans/loans-view/account-details/account-details.component.html
index dcf30a50c6..57403daf07 100644
--- a/src/app/loans/loans-view/account-details/account-details.component.html
+++ b/src/app/loans/loans-view/account-details/account-details.component.html
@@ -101,6 +101,28 @@
+
{{ 'labels.inputs.Buy down fees' | translate }}
+
+
+
+
+ {{ 'labels.inputs.Enable Buy down fee' | translate }}:
+ {{ loanProduct.enableBuyDownFee | yesNo }}
+
+
+
+ {{ 'labels.inputs.Buy down fee calculation type' | translate }}:
+ {{ loanProduct.buyDownFeeCalculationType?.value | translateKey: 'catalogs' }}
+
+
+
+ {{ 'labels.inputs.Buy down fee strategy' | translate }}:
+ {{ loanProduct.buyDownFeeStrategy?.value | translateKey: 'catalogs' }}
+
-
-
{{ 'labels.inputs.Income type' | translate }}:
-
{{ loanProduct.capitalizedIncomeType?.value | translateKey: 'catalogs' }}
+
+ {{ 'labels.inputs.Buy down fee income type' | translate }}:
+ {{ loanProduct.buyDownFeeIncomeType?.value | translateKey: 'catalogs' }}
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 5ebedfe8ca..1ae71804cb 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
@@ -353,6 +353,23 @@ export class LoanProductSummaryComponent implements OnInit, OnChanges {
);
this.loanProduct.capitalizedIncomeType = optionValue;
}
+ if (this.isAdvancedPaymentAllocation && this.loanProduct.enableBuyDownFee) {
+ optionValue = this.optionDataLookUp(
+ this.loanProduct.buyDownFeeCalculationType,
+ this.loanProductsTemplate.buyDownFeeCalculationTypeOptions
+ );
+ this.loanProduct.buyDownFeeCalculationType = optionValue;
+ optionValue = this.optionDataLookUp(
+ this.loanProduct.buyDownFeeStrategy,
+ this.loanProductsTemplate.buyDownFeeStrategyOptions
+ );
+ this.loanProduct.buyDownFeeStrategy = optionValue;
+ optionValue = this.optionDataLookUp(
+ this.loanProduct.buyDownFeeIncomeType,
+ this.loanProductsTemplate.buyDownFeeIncomeTypeOptions
+ );
+ this.loanProduct.buyDownFeeIncomeType = optionValue;
+ }
optionValue = this.optionDataLookUp(
this.loanProduct.interestRateFrequencyType,
this.loanProductsTemplate.interestRateFrequencyTypeOptions
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 3d169b613c..0277bbfaa6 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
@@ -54,6 +54,8 @@
(supportedInterestRefundTypes)="setSupportedInterestRefundTypes($event)"
>
+
+
@@ -91,15 +93,18 @@
-
- {{ 'labels.inputs.INCOME CAPITALIZATION' | translate }}
+
+ {{ 'labels.inputs.DEFERRED INCOME RECOGNITION' | translate }}
@@ -114,7 +119,7 @@
[loanProductsTemplate]="loanProductsTemplate"
[accountingRuleData]="accountingRuleData"
[loanProductFormValid]="loanProductFormValid"
- [capitalizedIncome]="capitalizedIncome"
+ [deferredIncomeRecognition]="deferredIncomeRecognition"
>
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 2a46c8be66..44cd583f9f 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
@@ -17,12 +17,12 @@ import { LoanProducts } from '../loan-products';
import {
AdvancedPaymentAllocation,
AdvancedPaymentStrategy,
- CapitalizedIncome,
+ DeferredIncomeRecognition,
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';
-import { LoanProductCapitalizedIncomeStepComponent } from '../loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component';
+import { LoanProductDeferredIncomeRecognitionStepComponent } from '../loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component';
import { UntypedFormGroup } from '@angular/forms';
import { MatStepper, MatStepperIcon, MatStep, MatStepLabel } from '@angular/material/stepper';
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
@@ -50,7 +50,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
StepperButtonsComponent,
LoanProductTermsStepComponent,
LoanProductChargesStepComponent,
- LoanProductCapitalizedIncomeStepComponent,
+ LoanProductDeferredIncomeRecognitionStepComponent,
LoanProductAccountingStepComponent,
LoanProductPreviewStepComponent
]
@@ -61,8 +61,8 @@ export class CreateLoanProductComponent implements OnInit {
loanProductCurrencyStep: LoanProductCurrencyStepComponent;
@ViewChild(LoanProductInterestRefundStepComponent, { static: true })
loanProductInterestRefundStep: LoanProductInterestRefundStepComponent;
- @ViewChild(LoanProductCapitalizedIncomeStepComponent, { static: true })
- loanProductCapitalizedIncomeStep: LoanProductCapitalizedIncomeStepComponent;
+ @ViewChild(LoanProductDeferredIncomeRecognitionStepComponent, { static: true })
+ loanProductDeferredIncomeRecognitionStep: LoanProductDeferredIncomeRecognitionStepComponent;
@ViewChild(LoanProductTermsStepComponent, { static: true }) loanProductTermsStep: LoanProductTermsStepComponent;
@ViewChild(LoanProductSettingsStepComponent, { static: true })
loanProductSettingsStep: LoanProductSettingsStepComponent;
@@ -81,8 +81,8 @@ export class CreateLoanProductComponent implements OnInit {
advancedPaymentAllocations: AdvancedPaymentAllocation[] = [];
advancedCreditAllocations: AdvancedPaymentAllocation[] = [];
- capitalizedIncome: CapitalizedIncome | null = null;
- loanIncomeCapitalizationForm: UntypedFormGroup;
+ deferredIncomeRecognition: DeferredIncomeRecognition | null = null;
+ loanDeferredIncomeRecognitionForm: UntypedFormGroup;
/**
* @param {ActivatedRoute} route Activated Route.
@@ -139,18 +139,33 @@ export class CreateLoanProductComponent implements OnInit {
advancePaymentStrategy(value: string) {
this.isAdvancedPaymentStrategy = LoanProducts.isAdvancedPaymentAllocationStrategy(value);
if (this.isAdvancedPaymentStrategy) {
+ if (this.deferredIncomeRecognition == null) {
+ this.deferredIncomeRecognition = {};
+ }
if (this.loanProductsTemplate.enableIncomeCapitalization) {
- this.capitalizedIncome = {
+ this.deferredIncomeRecognition.capitalizedIncome = {
enableIncomeCapitalization: true,
capitalizedIncomeCalculationType: this.loanProductsTemplate.capitalizedIncomeCalculationTypeOptions[0],
capitalizedIncomeStrategy: this.loanProductsTemplate.capitalizedIncomeStrategyOptions[0],
capitalizedIncomeType: this.loanProductsTemplate.capitalizedIncomeTypeOptions[0]
};
} else {
- this.capitalizedIncome = {
+ this.deferredIncomeRecognition.capitalizedIncome = {
enableIncomeCapitalization: false
};
}
+ if (this.loanProductsTemplate.enableBuyDownFee) {
+ this.deferredIncomeRecognition.buyDownFee = {
+ enableBuyDownFee: true,
+ buyDownFeeCalculationType: this.loanProductsTemplate.buyDownFeeCalculationTypeOptions[0],
+ buyDownFeeStrategy: this.loanProductsTemplate.buyDownFeeStrategyOptions[0],
+ buyDownFeeIncomeType: this.loanProductsTemplate.buyDownFeeIncomeTypeOptions[0]
+ };
+ } else {
+ this.deferredIncomeRecognition.buyDownFee = {
+ enableBuyDownFee: false
+ };
+ }
}
}
@@ -172,14 +187,14 @@ export class CreateLoanProductComponent implements OnInit {
this.supportedInterestRefundTypes = supportedInterestRefundTypes;
}
- setCapitalizedIncome(capitalizedIncome: CapitalizedIncome): void {
+ setDeferredIncomeRecognition(deferredIncomeRecognition: DeferredIncomeRecognition): void {
if (this.isAdvancedPaymentStrategy) {
- this.capitalizedIncome = capitalizedIncome;
+ this.deferredIncomeRecognition = deferredIncomeRecognition;
}
}
setViewChildForm(viewChildForm: UntypedFormGroup): void {
- this.loanIncomeCapitalizationForm = viewChildForm;
+ this.loanDeferredIncomeRecognitionForm = viewChildForm;
}
get loanProductSettingsForm() {
@@ -197,7 +212,7 @@ export class CreateLoanProductComponent implements OnInit {
this.loanProductCurrencyForm.valid &&
this.loanProductTermsForm.valid &&
this.loanProductSettingsForm.valid &&
- this.loanIncomeCapitalizationForm.valid &&
+ this.loanDeferredIncomeRecognitionForm.valid &&
this.loanProductAccountingForm.valid
);
} else {
@@ -224,12 +239,24 @@ export class CreateLoanProductComponent implements OnInit {
loanProduct['paymentAllocation'] = this.paymentAllocation;
loanProduct['creditAllocation'] = this.creditAllocation;
loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes;
- if (this.capitalizedIncome != null) {
- loanProduct['enableIncomeCapitalization'] = this.capitalizedIncome.enableIncomeCapitalization;
- if (this.capitalizedIncome.enableIncomeCapitalization) {
- loanProduct['capitalizedIncomeCalculationType'] = this.capitalizedIncome.capitalizedIncomeCalculationType;
- loanProduct['capitalizedIncomeStrategy'] = this.capitalizedIncome.capitalizedIncomeStrategy;
- loanProduct['capitalizedIncomeType'] = this.capitalizedIncome.capitalizedIncomeType;
+ if (this.deferredIncomeRecognition.capitalizedIncome != null) {
+ loanProduct['enableIncomeCapitalization'] =
+ this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization;
+ if (this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization) {
+ loanProduct['capitalizedIncomeCalculationType'] =
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType;
+ loanProduct['capitalizedIncomeStrategy'] =
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy;
+ loanProduct['capitalizedIncomeType'] = this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType;
+ }
+ }
+ if (this.deferredIncomeRecognition.buyDownFee != null) {
+ loanProduct['enableBuyDownFee'] = this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee;
+ if (this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee) {
+ loanProduct['buyDownFeeCalculationType'] =
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType;
+ loanProduct['buyDownFeeStrategy'] = this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy;
+ loanProduct['buyDownFeeIncomeType'] = this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType;
}
}
}
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 7bcc80a2e2..0219f6b697 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
@@ -94,14 +94,17 @@
- {{ 'labels.inputs.INCOME CAPITALIZATION' | translate }}
+ {{ 'labels.inputs.DEFERRED INCOME RECOGNITION' | translate }}
@@ -116,7 +119,7 @@
[loanProductsTemplate]="loanProductAndTemplate"
[accountingRuleData]="accountingRuleData"
[loanProductFormValid]="loanProductFormValidAndNotPristine"
- [capitalizedIncome]="capitalizedIncome"
+ [deferredIncomeRecognition]="deferredIncomeRecognition"
>
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 11521d86e4..540b48df26 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
@@ -18,14 +18,14 @@ import {
AdvancedCreditAllocation,
AdvancedPaymentAllocation,
AdvancedPaymentStrategy,
- CapitalizedIncome,
+ DeferredIncomeRecognition,
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';
-import { LoanProductCapitalizedIncomeStepComponent } from '../loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component';
+import { LoanProductDeferredIncomeRecognitionStepComponent } from '../loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component';
import { UntypedFormGroup } from '@angular/forms';
import { MatStepper, MatStepperIcon, MatStep, MatStepLabel } from '@angular/material/stepper';
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
@@ -53,7 +53,7 @@ import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
LoanProductPaymentStrategyStepComponent,
LoanProductTermsStepComponent,
LoanProductChargesStepComponent,
- LoanProductCapitalizedIncomeStepComponent,
+ LoanProductDeferredIncomeRecognitionStepComponent,
LoanProductAccountingStepComponent,
LoanProductPreviewStepComponent
]
@@ -64,8 +64,8 @@ export class EditLoanProductComponent implements OnInit {
loanProductCurrencyStep: LoanProductCurrencyStepComponent;
@ViewChild(LoanProductInterestRefundStepComponent, { static: true })
loanProductInterestRefundStep: LoanProductInterestRefundStepComponent;
- @ViewChild(LoanProductCapitalizedIncomeStepComponent, { static: true })
- loanProductCapitalizedIncomeStep: LoanProductCapitalizedIncomeStepComponent;
+ @ViewChild(LoanProductDeferredIncomeRecognitionStepComponent, { static: true })
+ loanProductCapitalizedIncomeStep: LoanProductDeferredIncomeRecognitionStepComponent;
@ViewChild(LoanProductTermsStepComponent, { static: true }) loanProductTermsStep: LoanProductTermsStepComponent;
@ViewChild(LoanProductSettingsStepComponent, { static: true })
loanProductSettingsStep: LoanProductSettingsStepComponent;
@@ -85,7 +85,7 @@ export class EditLoanProductComponent implements OnInit {
advancedCreditAllocations: AdvancedCreditAllocation[] = [];
supportedInterestRefundTypes: StringEnumOptionData[] = [];
- capitalizedIncome: CapitalizedIncome | null = null;
+ deferredIncomeRecognition: DeferredIncomeRecognition | null = null;
loanIncomeCapitalizationForm: UntypedFormGroup | null = null;
/**
@@ -123,18 +123,33 @@ export class EditLoanProductComponent implements OnInit {
this.paymentAllocation = this.loanProductAndTemplate.paymentAllocation;
this.creditAllocation = this.loanProductAndTemplate.creditAllocation;
this.supportedInterestRefundTypes = this.loanProductAndTemplate.supportedInterestRefundTypes;
+ if (this.deferredIncomeRecognition == null) {
+ this.deferredIncomeRecognition = {};
+ }
if (this.loanProductAndTemplate.enableIncomeCapitalization) {
- this.capitalizedIncome = {
+ this.deferredIncomeRecognition.capitalizedIncome = {
enableIncomeCapitalization: true,
capitalizedIncomeCalculationType: this.loanProductAndTemplate.capitalizedIncomeCalculationType.id,
capitalizedIncomeStrategy: this.loanProductAndTemplate.capitalizedIncomeStrategy.id,
capitalizedIncomeType: this.loanProductAndTemplate.capitalizedIncomeType.id
};
} else {
- this.capitalizedIncome = {
+ this.deferredIncomeRecognition.capitalizedIncome = {
enableIncomeCapitalization: false
};
}
+ if (this.loanProductAndTemplate.enableBuyDownFee) {
+ this.deferredIncomeRecognition.buyDownFee = {
+ enableBuyDownFee: true,
+ buyDownFeeCalculationType: this.loanProductAndTemplate.buyDownFeeCalculationType.id,
+ buyDownFeeStrategy: this.loanProductAndTemplate.buyDownFeeStrategy.id,
+ buyDownFeeIncomeType: this.loanProductAndTemplate.buyDownFeeIncomeType.id
+ };
+ } else {
+ this.deferredIncomeRecognition.buyDownFee = {
+ enableBuyDownFee: false
+ };
+ }
}
}
@@ -195,9 +210,9 @@ export class EditLoanProductComponent implements OnInit {
this.wasPaymentAllocationChanged = value;
}
- setCapitalizedIncome(capitalizedIncome: CapitalizedIncome): void {
+ setDeferredIncomeRecognition(deferredIncomeRecognition: DeferredIncomeRecognition): void {
if (this.isAdvancedPaymentStrategy) {
- this.capitalizedIncome = capitalizedIncome;
+ this.deferredIncomeRecognition = deferredIncomeRecognition;
}
}
@@ -259,12 +274,27 @@ export class EditLoanProductComponent implements OnInit {
loanProduct['paymentAllocation'] = this.paymentAllocation;
loanProduct['creditAllocation'] = this.creditAllocation;
loanProduct['supportedInterestRefundTypes'] = this.supportedInterestRefundTypes;
- if (this.capitalizedIncome != null) {
- loanProduct['enableIncomeCapitalization'] = this.capitalizedIncome.enableIncomeCapitalization;
- if (this.capitalizedIncome.enableIncomeCapitalization) {
- loanProduct['capitalizedIncomeCalculationType'] = this.capitalizedIncome.capitalizedIncomeCalculationType;
- loanProduct['capitalizedIncomeStrategy'] = this.capitalizedIncome.capitalizedIncomeStrategy;
- loanProduct['capitalizedIncomeType'] = this.capitalizedIncome.capitalizedIncomeType;
+ if (this.deferredIncomeRecognition != null) {
+ if (this.deferredIncomeRecognition.capitalizedIncome != null) {
+ loanProduct['enableIncomeCapitalization'] =
+ this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization;
+ if (this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization) {
+ loanProduct['capitalizedIncomeCalculationType'] =
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType;
+ loanProduct['capitalizedIncomeStrategy'] =
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy;
+ loanProduct['capitalizedIncomeType'] =
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType;
+ }
+ }
+ if (this.deferredIncomeRecognition.buyDownFee != null) {
+ loanProduct['enableBuyDownFee'] = this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee;
+ if (this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee) {
+ loanProduct['buyDownFeeCalculationType'] =
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType;
+ loanProduct['buyDownFeeStrategy'] = this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy;
+ loanProduct['buyDownFeeIncomeType'] = this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType;
+ }
}
}
}
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html
index b82055bb99..c28f9e2581 100644
--- a/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html
+++ b/src/app/products/loan-products/loan-product-stepper/loan-product-accounting-step/loan-product-accounting-step.component.html
@@ -181,7 +181,7 @@
{{ 'labels.heading.Income' | translate }}
{{ 'labels.heading.Liabilities' | translate }}
();
- @Output() setViewChildForm = new EventEmitter();
-
- constructor(private formBuilder: UntypedFormBuilder) {
- this.enableIncomeCapitalization =
- this.capitalizedIncome != null ? this.capitalizedIncome.enableIncomeCapitalization : false;
- this.createCapitalizedIncomeForm();
- this.setConditionalControls();
- }
-
- createCapitalizedIncomeForm() {
- if (this.enableIncomeCapitalization) {
- this.loanIncomeCapitalizationForm = this.formBuilder.group({
- enableIncomeCapitalization: [this.enableIncomeCapitalization],
- capitalizedIncomeCalculationType: [
- this.capitalizedIncome.capitalizedIncomeCalculationType,
- Validators.required
- ],
- capitalizedIncomeStrategy: [
- this.capitalizedIncome.capitalizedIncomeStrategy,
- Validators.required
- ],
- capitalizedIncomeType: [
- this.capitalizedIncome.capitalizedIncomeType,
- Validators.required
- ]
- });
- } else {
- this.loanIncomeCapitalizationForm = this.formBuilder.group({
- enableIncomeCapitalization: [this.enableIncomeCapitalization]
- });
- }
- this.setViewChildForm.emit(this.loanIncomeCapitalizationForm);
- }
-
- ngOnChanges(changes: SimpleChanges): void {
- this.enableIncomeCapitalization = this.capitalizedIncome
- ? this.capitalizedIncome.enableIncomeCapitalization
- : false;
- if (this.enableIncomeCapitalization) {
- this.loanIncomeCapitalizationForm.patchValue({
- enableIncomeCapitalization: this.enableIncomeCapitalization,
- capitalizedIncomeCalculationType: this.capitalizedIncome.capitalizedIncomeCalculationType,
- capitalizedIncomeStrategy: this.capitalizedIncome.capitalizedIncomeStrategy,
- capitalizedIncomeType: this.capitalizedIncome.capitalizedIncomeType
- });
- }
- this.setViewChildForm.emit(this.loanIncomeCapitalizationForm);
- }
-
- setConditionalControls() {
- this.loanIncomeCapitalizationForm.get('enableIncomeCapitalization').valueChanges.subscribe((enabled: boolean) => {
- this.enableIncomeCapitalization = enabled;
- if (this.enableIncomeCapitalization) {
- const capitalizedIncomeCalculationType =
- !this.capitalizedIncome.capitalizedIncomeCalculationType ||
- this.capitalizedIncome.capitalizedIncomeCalculationType == ''
- ? this.capitalizedIncomeCalculationTypeOptions[0].id
- : this.capitalizedIncome.capitalizedIncomeCalculationType;
- this.loanIncomeCapitalizationForm.addControl(
- 'capitalizedIncomeCalculationType',
- new UntypedFormControl(capitalizedIncomeCalculationType, Validators.required)
- );
- const capitalizedIncomeStrategy =
- !this.capitalizedIncome.capitalizedIncomeStrategy || this.capitalizedIncome.capitalizedIncomeStrategy == ''
- ? this.capitalizedIncomeStrategyOptions[0].id
- : this.capitalizedIncome.capitalizedIncomeStrategy;
- this.loanIncomeCapitalizationForm.addControl(
- 'capitalizedIncomeStrategy',
- new UntypedFormControl(capitalizedIncomeStrategy, Validators.required)
- );
- const capitalizedIncomeType =
- !this.capitalizedIncome.capitalizedIncomeType || this.capitalizedIncome.capitalizedIncomeType == ''
- ? this.capitalizedIncomeTypeOptions[0].id
- : this.capitalizedIncome.capitalizedIncomeType;
- this.loanIncomeCapitalizationForm.addControl(
- 'capitalizedIncomeType',
- new UntypedFormControl(capitalizedIncomeType, Validators.required)
- );
- this.setCapitalizedIncome.emit({
- enableIncomeCapitalization: true,
- capitalizedIncomeCalculationType: capitalizedIncomeCalculationType,
- capitalizedIncomeStrategy: capitalizedIncomeStrategy,
- capitalizedIncomeType: capitalizedIncomeType
- });
-
- this.loanIncomeCapitalizationForm
- .get('capitalizedIncomeCalculationType')
- .valueChanges.subscribe((newValue: string) => {
- this.setCapitalizedIncome.emit({
- enableIncomeCapitalization: true,
- capitalizedIncomeCalculationType: newValue,
- capitalizedIncomeStrategy: this.loanIncomeCapitalizationForm.value.capitalizedIncomeStrategy,
- capitalizedIncomeType: this.loanIncomeCapitalizationForm.value.capitalizedIncomeType
- });
- });
- this.loanIncomeCapitalizationForm
- .get('capitalizedIncomeStrategy')
- .valueChanges.subscribe((newValue: string) => {
- this.setCapitalizedIncome.emit({
- enableIncomeCapitalization: true,
- capitalizedIncomeCalculationType:
- this.loanIncomeCapitalizationForm.value.capitalizedIncomeCalculationType,
- capitalizedIncomeStrategy: newValue,
- capitalizedIncomeType: this.loanIncomeCapitalizationForm.value.capitalizedIncomeType
- });
- });
- this.loanIncomeCapitalizationForm.get('capitalizedIncomeType').valueChanges.subscribe((newValue: string) => {
- this.setCapitalizedIncome.emit({
- enableIncomeCapitalization: true,
- capitalizedIncomeCalculationType: this.loanIncomeCapitalizationForm.value.capitalizedIncomeCalculationType,
- capitalizedIncomeStrategy: this.loanIncomeCapitalizationForm.value.capitalizedIncomeStrategy,
- capitalizedIncomeType: newValue
- });
- });
- } else {
- this.loanIncomeCapitalizationForm.removeControl('capitalizedIncomeCalculationType');
- this.loanIncomeCapitalizationForm.removeControl('capitalizedIncomeStrategy');
- this.loanIncomeCapitalizationForm.removeControl('capitalizedIncomeType');
- this.setCapitalizedIncome.emit({ enableIncomeCapitalization: false });
- }
-
- this.setViewChildForm.emit(this.loanIncomeCapitalizationForm);
- });
- }
-}
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.html b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.html
similarity index 51%
rename from src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.html
rename to src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.html
index 7a49e75208..f7072ec876 100644
--- a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.html
+++ b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.html
@@ -1,4 +1,4 @@
-
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.scss b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.scss
similarity index 100%
rename from src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component.scss
rename to src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.scss
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.ts
new file mode 100644
index 0000000000..45cc0ef188
--- /dev/null
+++ b/src/app/products/loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component.ts
@@ -0,0 +1,257 @@
+import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';
+import {
+ UntypedFormBuilder,
+ UntypedFormControl,
+ UntypedFormGroup,
+ Validators,
+ ReactiveFormsModule
+} from '@angular/forms';
+import {
+ DeferredIncomeRecognition,
+ CapitalizedIncome,
+ BuyDownFee
+} from '../loan-product-payment-strategy-step/payment-allocation-model';
+import { StringEnumOptionData } from 'app/shared/models/option-data.model';
+import { MatCheckbox } from '@angular/material/checkbox';
+import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
+
+@Component({
+ selector: 'mifosx-loan-product-capitalized-income-step',
+ templateUrl: './loan-product-deferred-income-recognition-step.component.html',
+ styleUrls: ['./loan-product-deferred-income-recognition-step.component.scss'],
+ imports: [
+ ...STANDALONE_SHARED_IMPORTS,
+ MatCheckbox
+ ]
+})
+export class LoanProductDeferredIncomeRecognitionStepComponent implements OnChanges {
+ @Input() deferredIncomeRecognition: DeferredIncomeRecognition;
+ @Input() capitalizedIncomeCalculationTypeOptions: StringEnumOptionData[];
+ @Input() capitalizedIncomeStrategyOptions: StringEnumOptionData[];
+ @Input() capitalizedIncomeTypeOptions: StringEnumOptionData[];
+ @Input() buyDownFeeCalculationTypeOptions: StringEnumOptionData[];
+ @Input() buyDownFeeStrategyOptions: StringEnumOptionData[];
+ @Input() buyDownFeeIncomeTypeOptions: StringEnumOptionData[];
+
+ loanDeferredIncomeRecognitionForm: UntypedFormGroup;
+
+ enableIncomeCapitalization: boolean;
+ enableBuyDownFee: boolean;
+
+ @Output() setDeferredIncomeRecognition = new EventEmitter();
+ @Output() setViewChildForm = new EventEmitter();
+
+ constructor(private formBuilder: UntypedFormBuilder) {
+ this.enableIncomeCapitalization =
+ this.deferredIncomeRecognition != null
+ ? this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization
+ : false;
+ this.enableBuyDownFee =
+ this.deferredIncomeRecognition != null ? this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee : false;
+ this.createCapitalizedIncomeForm();
+ this.setConditionalControls();
+ }
+
+ createCapitalizedIncomeForm() {
+ this.loanDeferredIncomeRecognitionForm = this.formBuilder.group({
+ enableIncomeCapitalization: [this.enableIncomeCapitalization],
+ enableBuyDownFee: [this.enableBuyDownFee]
+ });
+ if (this.enableIncomeCapitalization) {
+ this.loanDeferredIncomeRecognitionForm.addControl('capitalizedIncomeCalculationType', [
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType,
+ Validators.required
+ ]);
+ this.loanDeferredIncomeRecognitionForm.addControl('capitalizedIncomeStrategy', [
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy,
+ Validators.required
+ ]);
+ this.loanDeferredIncomeRecognitionForm.addControl('capitalizedIncomeType', [
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType,
+ Validators.required
+ ]);
+ }
+ if (this.enableBuyDownFee) {
+ this.loanDeferredIncomeRecognitionForm.addControl('buyDownFeeCalculationType', [
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType,
+ Validators.required
+ ]);
+ this.loanDeferredIncomeRecognitionForm.addControl('buyDownFeeStrategy', [
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy,
+ Validators.required
+ ]);
+ this.loanDeferredIncomeRecognitionForm.addControl('buyDownFeeIncomeType', [
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType,
+ Validators.required
+ ]);
+ }
+ this.setViewChildForm.emit(this.loanDeferredIncomeRecognitionForm);
+ }
+
+ ngOnChanges(changes: SimpleChanges): void {
+ this.enableIncomeCapitalization = this.deferredIncomeRecognition.capitalizedIncome
+ ? this.deferredIncomeRecognition.capitalizedIncome.enableIncomeCapitalization
+ : false;
+ this.enableBuyDownFee = this.deferredIncomeRecognition.buyDownFee
+ ? this.deferredIncomeRecognition.buyDownFee.enableBuyDownFee
+ : false;
+ if (this.enableIncomeCapitalization) {
+ this.loanDeferredIncomeRecognitionForm.patchValue({
+ enableIncomeCapitalization: this.enableIncomeCapitalization,
+ capitalizedIncomeCalculationType:
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType,
+ capitalizedIncomeStrategy: this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy,
+ capitalizedIncomeType: this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType
+ });
+ }
+ if (this.enableBuyDownFee) {
+ this.loanDeferredIncomeRecognitionForm.patchValue({
+ enableBuyDownFee: this.enableBuyDownFee,
+ buyDownFeeCalculationType: this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType,
+ buyDownFeeStrategy: this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy,
+ buyDownFeeIncomeType: this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType
+ });
+ }
+ this.setViewChildForm.emit(this.loanDeferredIncomeRecognitionForm);
+ }
+
+ setConditionalControls() {
+ this.loanDeferredIncomeRecognitionForm
+ .get('enableIncomeCapitalization')
+ .valueChanges.subscribe((enabled: boolean) => {
+ this.enableIncomeCapitalization = enabled;
+ if (this.enableIncomeCapitalization) {
+ const capitalizedIncomeCalculationType =
+ !(
+ this.deferredIncomeRecognition.capitalizedIncome &&
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType
+ ) || this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType == ''
+ ? this.capitalizedIncomeCalculationTypeOptions[0].id
+ : this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeCalculationType;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'capitalizedIncomeCalculationType',
+ new UntypedFormControl(capitalizedIncomeCalculationType, Validators.required)
+ );
+ const capitalizedIncomeStrategy =
+ !this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy ||
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy == ''
+ ? this.capitalizedIncomeStrategyOptions[0].id
+ : this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeStrategy;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'capitalizedIncomeStrategy',
+ new UntypedFormControl(capitalizedIncomeStrategy, Validators.required)
+ );
+ const capitalizedIncomeType =
+ !this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType ||
+ this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType == ''
+ ? this.capitalizedIncomeTypeOptions[0].id
+ : this.deferredIncomeRecognition.capitalizedIncome.capitalizedIncomeType;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'capitalizedIncomeType',
+ new UntypedFormControl(capitalizedIncomeType, Validators.required)
+ );
+
+ this.loanDeferredIncomeRecognitionForm
+ .get('capitalizedIncomeCalculationType')
+ .valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ this.loanDeferredIncomeRecognitionForm
+ .get('capitalizedIncomeStrategy')
+ .valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ this.loanDeferredIncomeRecognitionForm
+ .get('capitalizedIncomeType')
+ .valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ } else {
+ this.loanDeferredIncomeRecognitionForm.removeControl('capitalizedIncomeCalculationType');
+ this.loanDeferredIncomeRecognitionForm.removeControl('capitalizedIncomeStrategy');
+ this.loanDeferredIncomeRecognitionForm.removeControl('capitalizedIncomeType');
+ }
+
+ this.emitValuesChange();
+ this.setViewChildForm.emit(this.loanDeferredIncomeRecognitionForm);
+ });
+
+ this.loanDeferredIncomeRecognitionForm.get('enableBuyDownFee').valueChanges.subscribe((enabled: boolean) => {
+ this.enableBuyDownFee = enabled;
+ if (this.enableBuyDownFee) {
+ const buyDownFeeCalculationType =
+ !this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType ||
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType == ''
+ ? this.buyDownFeeCalculationTypeOptions[0].id
+ : this.deferredIncomeRecognition.buyDownFee.buyDownFeeCalculationType;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'buyDownFeeCalculationType',
+ new UntypedFormControl(buyDownFeeCalculationType, Validators.required)
+ );
+ const buyDownFeeStrategy =
+ !this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy ||
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy == ''
+ ? this.buyDownFeeStrategyOptions[0].id
+ : this.deferredIncomeRecognition.buyDownFee.buyDownFeeStrategy;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'buyDownFeeStrategy',
+ new UntypedFormControl(buyDownFeeStrategy, Validators.required)
+ );
+ const buyDownFeeIncomeType =
+ !this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType ||
+ this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType == ''
+ ? this.buyDownFeeIncomeTypeOptions[0].id
+ : this.deferredIncomeRecognition.buyDownFee.buyDownFeeIncomeType;
+ this.loanDeferredIncomeRecognitionForm.addControl(
+ 'buyDownFeeIncomeType',
+ new UntypedFormControl(buyDownFeeIncomeType, Validators.required)
+ );
+
+ this.loanDeferredIncomeRecognitionForm
+ .get('buyDownFeeCalculationType')
+ .valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ this.loanDeferredIncomeRecognitionForm.get('buyDownFeeStrategy').valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ this.loanDeferredIncomeRecognitionForm
+ .get('buyDownFeeIncomeType')
+ .valueChanges.subscribe((newValue: string) => {
+ this.emitValuesChange();
+ });
+ } else {
+ this.loanDeferredIncomeRecognitionForm.removeControl('buyDownFeeCalculationType');
+ this.loanDeferredIncomeRecognitionForm.removeControl('buyDownFeeStrategy');
+ this.loanDeferredIncomeRecognitionForm.removeControl('buyDownFeeIncomeType');
+ }
+
+ this.emitValuesChange();
+ this.setViewChildForm.emit(this.loanDeferredIncomeRecognitionForm);
+ });
+ }
+
+ emitValuesChange(): void {
+ const capitalizedIncome: CapitalizedIncome = this.enableIncomeCapitalization
+ ? {
+ enableIncomeCapitalization: true,
+ capitalizedIncomeCalculationType:
+ this.loanDeferredIncomeRecognitionForm.value.capitalizedIncomeCalculationType,
+ capitalizedIncomeStrategy: this.loanDeferredIncomeRecognitionForm.value.capitalizedIncomeStrategy,
+ capitalizedIncomeType: this.loanDeferredIncomeRecognitionForm.value.capitalizedIncomeType
+ }
+ : { enableIncomeCapitalization: false };
+ const buyDownFee: BuyDownFee = this.enableBuyDownFee
+ ? {
+ enableBuyDownFee: true,
+ buyDownFeeCalculationType: this.loanDeferredIncomeRecognitionForm.value.buyDownFeeCalculationType,
+ buyDownFeeStrategy: this.loanDeferredIncomeRecognitionForm.value.buyDownFeeStrategy,
+ buyDownFeeIncomeType: this.loanDeferredIncomeRecognitionForm.value.buyDownFeeIncomeType
+ }
+ : { enableBuyDownFee: false };
+ this.setDeferredIncomeRecognition.emit({
+ capitalizedIncome: capitalizedIncome,
+ buyDownFee: buyDownFee
+ });
+ }
+}
diff --git a/src/app/products/loan-products/loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model.ts b/src/app/products/loan-products/loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model.ts
index 066ee01997..48ee7fb3d2 100644
--- a/src/app/products/loan-products/loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model.ts
+++ b/src/app/products/loan-products/loan-product-stepper/loan-product-payment-strategy-step/payment-allocation-model.ts
@@ -49,6 +49,18 @@ export interface CapitalizedIncome {
capitalizedIncomeType?: string;
}
+export interface BuyDownFee {
+ enableBuyDownFee: boolean;
+ buyDownFeeCalculationType?: string;
+ buyDownFeeStrategy?: string;
+ buyDownFeeIncomeType?: string;
+}
+
+export interface DeferredIncomeRecognition {
+ capitalizedIncome?: CapitalizedIncome;
+ buyDownFee?: BuyDownFee;
+}
+
export class PaymentAllocationTransactionTypes {
public static DEFAULT_TRANSACTION: PaymentAllocationTransactionType = { id: 1, value: 'Default', code: 'DEFAULT' };
}
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 2390d007b4..c064003485 100644
--- a/src/app/products/loan-products/models/loan-product.model.ts
+++ b/src/app/products/loan-products/models/loan-product.model.ts
@@ -71,6 +71,11 @@ export interface LoanProduct {
capitalizedIncomeStrategy?: OptionData;
capitalizedIncomeType?: OptionData;
+ enableBuyDownFee?: boolean;
+ buyDownFeeCalculationType?: OptionData;
+ buyDownFeeStrategy?: OptionData;
+ buyDownFeeIncomeType?: OptionData;
+
canDefineInstallmentAmount: boolean;
graceOnArrearsAgeing?: number;
overdueDaysForNPA?: number;
diff --git a/src/app/products/products.module.ts b/src/app/products/products.module.ts
index 5535fbd25d..b8701b6612 100644
--- a/src/app/products/products.module.ts
+++ b/src/app/products/products.module.ts
@@ -121,7 +121,7 @@ import { LoanProductPaymentStrategyStepComponent } from './loan-products/loan-pr
import { ViewAdvancePaymenyAllocationComponent } from './loan-products/view-loan-product/shared/view-advance-paymeny-allocation/view-advance-paymeny-allocation.component';
import { AdvancePaymentAllocationTabComponent } from './loan-products/loan-product-stepper/loan-product-payment-strategy-step/advance-payment-allocation-tab/advance-payment-allocation-tab.component';
import { LoanProductSummaryComponent } from './loan-products/common/loan-product-summary/loan-product-summary.component';
-import { LoanProductCapitalizedIncomeStepComponent } from './loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-capitalized-income-step.component';
+import { LoanProductDeferredIncomeRecognitionStepComponent } from './loan-products/loan-product-stepper/loan-product-capitalized-income-step/loan-product-deferred-income-recognition-step.component';
/**
* Products Module
@@ -249,7 +249,7 @@ import { LoanProductCapitalizedIncomeStepComponent } from './loan-products/loan-
ViewAdvancePaymenyAllocationComponent,
AdvancePaymentAllocationTabComponent,
LoanProductSummaryComponent,
- LoanProductCapitalizedIncomeStepComponent
+ LoanProductDeferredIncomeRecognitionStepComponent
]
})
export class ProductsModule {}
diff --git a/src/assets/translations/cs-CS.json b/src/assets/translations/cs-CS.json
index 36f233fc0b..2308c942f2 100644
--- a/src/assets/translations/cs-CS.json
+++ b/src/assets/translations/cs-CS.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Povolit kapitalizaci příjmu",
"Income capitalization calculation type": "Typ výpočtu kapitalizace příjmu",
"Income capitalization strategy": "Strategie kapitalizace příjmu",
- "Income capitalization type": "Typ kapitalizace příjmu"
+ "Income capitalization type": "Typ kapitalizace příjmu",
+ "DEFERRED INCOME RECOGNITION": "Vykazování odložených výnosů",
+ "Enable Buy down fee": "Povolit poplatek za odkup",
+ "Buy down fee calculation type": "Typ výpočtu poplatku za odkup",
+ "Buy down fee strategy": "Strategie poplatku za odkup",
+ "Buy down fee income type": "Typ příjmu z poplatku za odkup",
+ "Buy down fees": "Poplatky za odkup"
},
"links": {
"Community": "Společenství",
diff --git a/src/assets/translations/de-DE.json b/src/assets/translations/de-DE.json
index 61b47b1d7c..21b1a8c485 100644
--- a/src/assets/translations/de-DE.json
+++ b/src/assets/translations/de-DE.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Aktivieren Sie die Einkommenskapitalisierung",
"Income capitalization calculation type": "Berechnungsart der Einkommenskapitalisierung",
"Income capitalization strategy": "Strategie zur Ertragskapitalisierung",
- "Income capitalization type": "Art der Ertragskapitalisierung"
+ "Income capitalization type": "Art der Ertragskapitalisierung",
+ "DEFERRED INCOME RECOGNITION": "Erfassung abgegrenzter Erträge",
+ "Enable Buy down fee": "Buy-Down-Gebühr aktivieren",
+ "Buy down fee calculation type": "Berechnungsart der Buy-Down-Gebühr",
+ "Buy down fee strategy": "Strategie für Buy-Down-Gebühr",
+ "Buy down fee income type": "Einnahmeart der Buy-Down-Gebühr",
+ "Buy down fees": "Buy-Down-Gebühren"
},
"links": {
"Community": "Gemeinschaft",
diff --git a/src/assets/translations/en-US.json b/src/assets/translations/en-US.json
index c9c45092d3..5900fe27ff 100644
--- a/src/assets/translations/en-US.json
+++ b/src/assets/translations/en-US.json
@@ -2478,7 +2478,13 @@
"Enable income capitalization": "Enable income capitalization",
"Income capitalization calculation type": "Income capitalization calculation type",
"Income capitalization strategy": "Income capitalization strategy",
- "Income capitalization type": "Income capitalization type"
+ "Income capitalization type": "Income capitalization type",
+ "DEFERRED INCOME RECOGNITION": "Deferred income recognition",
+ "Enable Buy down fee": "Enable Buy down fee",
+ "Buy down fee calculation type": "Buy down fee calculation type",
+ "Buy down fee strategy": "Buy down fee strategy",
+ "Buy down fee income type": "Buy down fee income type",
+ "Buy down fees": "Buy down fees"
},
"links": {
"Community": "Community",
diff --git a/src/assets/translations/es-CL.json b/src/assets/translations/es-CL.json
index a59bd17ce0..0e617ba078 100644
--- a/src/assets/translations/es-CL.json
+++ b/src/assets/translations/es-CL.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Habilitar capitalización de ingresos",
"Income capitalization calculation type": "Tipo de cálculo de capitalización de ingresos",
"Income capitalization strategy": "Estrategia de capitalización de ingresos",
- "Income capitalization type": "Tipo de capitalización de ingresos"
+ "Income capitalization type": "Tipo de capitalización de ingresos",
+ "DEFERRED INCOME RECOGNITION": "Reconocimiento de ingresos diferidos",
+ "Enable Buy down fee": "Habilitar comisión de compra anticipada",
+ "Buy down fee calculation type": "Tipo de cálculo de comisión de compra anticipada",
+ "Buy down fee strategy": "Estrategia de comisión de compra anticipada",
+ "Buy down fee income type": "Tipo de ingreso de comisión de compra anticipada",
+ "Buy down fees": "Tarifas de compra anticipada"
},
"links": {
"Community": "Comunidad",
diff --git a/src/assets/translations/es-MX.json b/src/assets/translations/es-MX.json
index 1bd1949328..d4c809b8c2 100644
--- a/src/assets/translations/es-MX.json
+++ b/src/assets/translations/es-MX.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Habilitar capitalización de ingresos",
"Income capitalization calculation type": "Tipo de cálculo de capitalización de ingresos",
"Income capitalization strategy": "Estrategia de capitalización de ingresos",
- "Income capitalization type": "Tipo de capitalización de ingresos"
+ "Income capitalization type": "Tipo de capitalización de ingresos",
+ "DEFERRED INCOME RECOGNITION": "Reconocimiento de ingresos diferidos",
+ "Enable Buy down fee": "Habilitar comisión de compra anticipada",
+ "Buy down fee calculation type": "Tipo de cálculo de comisión de compra anticipada",
+ "Buy down fee strategy": "Estrategia de comisión de compra anticipada",
+ "Buy down fee income type": "Tipo de ingreso de comisión de compra anticipada",
+ "Buy down fees": "Tarifas de compra anticipada"
},
"links": {
"Community": "Comunidad",
diff --git a/src/assets/translations/fr-FR.json b/src/assets/translations/fr-FR.json
index 5898bac7f9..197877faea 100644
--- a/src/assets/translations/fr-FR.json
+++ b/src/assets/translations/fr-FR.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Activer la capitalisation des revenus",
"Income capitalization calculation type": "Type de calcul de capitalisation des revenus",
"Income capitalization strategy": "Stratégie de capitalisation des revenus",
- "Income capitalization type": "Type de capitalisation des revenus"
+ "Income capitalization type": "Type de capitalisation des revenus",
+ "DEFERRED INCOME RECOGNITION": "Comptabilisation des produits différés",
+ "Enable Buy down fee": "Activer les frais de rachat",
+ "Buy down fee calculation type": "Type de calcul des frais de rachat",
+ "Buy down fee strategy": "Stratégie des frais de rachat",
+ "Buy down fee income type": "Type de revenu des frais de rachat",
+ "Buy down fees": "Frais d'achat"
},
"links": {
"Community": "Communauté",
diff --git a/src/assets/translations/it-IT.json b/src/assets/translations/it-IT.json
index 188f5c0c19..0121581fca 100644
--- a/src/assets/translations/it-IT.json
+++ b/src/assets/translations/it-IT.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Abilita la capitalizzazione del reddito",
"Income capitalization calculation type": "Tipo di calcolo della capitalizzazione del reddito",
"Income capitalization strategy": "Strategia di capitalizzazione del reddito",
- "Income capitalization type": "Tipo di capitalizzazione del reddito"
+ "Income capitalization type": "Tipo di capitalizzazione del reddito",
+ "DEFERRED INCOME RECOGNITION": "Rilevazione dei risconti passivi",
+ "Enable Buy down fee": "Abilita commissione di buy down",
+ "Buy down fee calculation type": "Tipo di calcolo della commissione di buy down",
+ "Buy down fee strategy": "Strategia per la commissione di buy down",
+ "Buy down fee income type": "Tipo di ricavo da commissione di buy down",
+ "Buy down fees": "Commissioni di acquisto"
},
"links": {
"Community": "Comunità",
diff --git a/src/assets/translations/ko-KO.json b/src/assets/translations/ko-KO.json
index 3c47f80bb6..ad889fff29 100644
--- a/src/assets/translations/ko-KO.json
+++ b/src/assets/translations/ko-KO.json
@@ -2472,7 +2472,13 @@
"Enable income capitalization": "소득 자본화 활성화",
"Income capitalization calculation type": "소득 자본화 계산 유형",
"Income capitalization strategy": "소득 자본화 전략",
- "Income capitalization type": "소득 자본화 유형"
+ "Income capitalization type": "소득 자본화 유형",
+ "DEFERRED INCOME RECOGNITION": "이연수익 인식",
+ "Enable Buy down fee": "매수 수수료 활성화",
+ "Buy down fee calculation type": "매수 수수료 계산 유형",
+ "Buy down fee strategy": "매수 수수료 전략",
+ "Buy down fee income type": "매수 수수료 수익 유형",
+ "Buy down fees": "매수 수수료"
},
"links": {
"Community": "지역 사회",
diff --git a/src/assets/translations/lt-LT.json b/src/assets/translations/lt-LT.json
index 5a676fa166..f784f96d0d 100644
--- a/src/assets/translations/lt-LT.json
+++ b/src/assets/translations/lt-LT.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Įgalinti pajamų kapitalizaciją",
"Income capitalization calculation type": "Pajamų kapitalizavimo skaičiavimo tipas",
"Income capitalization strategy": "Pajamų kapitalizavimo strategija",
- "Income capitalization type": "Pajamų kapitalizacijos tipas"
+ "Income capitalization type": "Pajamų kapitalizacijos tipas",
+ "DEFERRED INCOME RECOGNITION": "Atidėtųjų pajamų pripažinimas",
+ "Enable Buy down fee": "Įjungti supirkimo mokestį",
+ "Buy down fee calculation type": "Supirkimo mokesčio skaičiavimo tipas",
+ "Buy down fee strategy": "Supirkimo mokesčio strategija",
+ "Buy down fee income type": "Supirkimo mokesčio pajamų tipas",
+ "Buy down fees": "Išpirkimo mokesčiai"
},
"links": {
"Community": "bendruomenė",
diff --git a/src/assets/translations/lv-LV.json b/src/assets/translations/lv-LV.json
index 39904e58f1..9f003fb966 100644
--- a/src/assets/translations/lv-LV.json
+++ b/src/assets/translations/lv-LV.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Iespējot ienākumu kapitalizāciju",
"Income capitalization calculation type": "Ienākumu kapitalizācijas aprēķina veids",
"Income capitalization strategy": "Ienākumu kapitalizācijas stratēģija",
- "Income capitalization type": "Ienākumu kapitalizācijas veids"
+ "Income capitalization type": "Ienākumu kapitalizācijas veids",
+ "DEFERRED INCOME RECOGNITION": "Atliktā ienākuma atzīšana",
+ "Enable Buy down fee": "Iespējot atpirkšanas maksu",
+ "Buy down fee calculation type": "Atpirkšanas maksas aprēķina veids",
+ "Buy down fee strategy": "Atpirkšanas maksas stratēģija",
+ "Buy down fee income type": "Atpirkšanas maksas ienākumu veids",
+ "Buy down fees": "Iepirkuma maksas"
},
"links": {
"Community": "kopiena",
diff --git a/src/assets/translations/ne-NE.json b/src/assets/translations/ne-NE.json
index 58debae852..87ba5a698e 100644
--- a/src/assets/translations/ne-NE.json
+++ b/src/assets/translations/ne-NE.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "आय पूंजीकरण सक्षम गर्नुहोस्",
"Income capitalization calculation type": "आय पूंजीकरण गणना प्रकार",
"Income capitalization strategy": "आय पूंजीकरण रणनीति",
- "Income capitalization type": "आय पूँजीकरण प्रकार"
+ "Income capitalization type": "आय पूँजीकरण प्रकार",
+ "DEFERRED INCOME RECOGNITION": "स्थगित आय पहिचान",
+ "Enable Buy down fee": "बाइ डाउन शुल्क सक्षम गर्नुहोस्",
+ "Buy down fee calculation type": "बाइ डाउन शुल्क गणना प्रकार",
+ "Buy down fee strategy": "बाइ डाउन शुल्क रणनीति",
+ "Buy down fee income type": "बाइ डाउन शुल्क आय प्रकार",
+ "Buy down fees": "खरिद शुल्क"
},
"links": {
"Community": "समुदाय",
diff --git a/src/assets/translations/pt-PT.json b/src/assets/translations/pt-PT.json
index 13044f5c01..01b021085e 100644
--- a/src/assets/translations/pt-PT.json
+++ b/src/assets/translations/pt-PT.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Habilitar capitalização de renda",
"Income capitalization calculation type": "Tipo de cálculo de capitalização de renda",
"Income capitalization strategy": "Estratégia de capitalização de renda",
- "Income capitalization type": "Tipo de capitalização de renda"
+ "Income capitalization type": "Tipo de capitalização de renda",
+ "DEFERRED INCOME RECOGNITION": "Reconhecimento de receita diferida",
+ "Enable Buy down fee": "Habilitar taxa de aquisição",
+ "Buy down fee calculation type": "Tipo de cálculo de taxa de aquisição",
+ "Buy down fee strategy": "Estratégia de taxa de aquisição",
+ "Buy down fee income type": "Tipo de receita de taxa de aquisição",
+ "Buy down fees": "Taxas de compra antecipada"
},
"links": {
"Community": "Comunidade",
diff --git a/src/assets/translations/sw-SW.json b/src/assets/translations/sw-SW.json
index a401934b11..ea0898ce8c 100644
--- a/src/assets/translations/sw-SW.json
+++ b/src/assets/translations/sw-SW.json
@@ -2471,7 +2471,13 @@
"Enable income capitalization": "Washa mtaji wa mapato",
"Income capitalization calculation type": "Aina ya kukokotoa mtaji wa mapato",
"Income capitalization strategy": "Mkakati wa mtaji wa mapato",
- "Income capitalization type": "Aina ya mtaji wa mapato"
+ "Income capitalization type": "Aina ya mtaji wa mapato",
+ "DEFERRED INCOME RECOGNITION": "Utambuzi wa mapato ulioahirishwa",
+ "Enable Buy down fee": "Washa ada ya Kununua chini",
+ "Buy down fee calculation type": "Nunua aina ya hesabu ya ada ya chini",
+ "Buy down fee strategy": "Nunua mkakati wa ada ya chini",
+ "Buy down fee income type": "Nunua aina ya mapato ya chini",
+ "Buy down fees": "Nunua ada za chini"
},
"links": {
"Community": "Jumuiya",