4848import org .apache .fineract .portfolio .loanaccount .data .LoanTermVariationsDataWrapper ;
4949import org .apache .fineract .portfolio .loanaccount .domain .LoanCapitalizedIncomeCalculationType ;
5050import org .apache .fineract .portfolio .loanaccount .domain .LoanCapitalizedIncomeStrategy ;
51+ import org .apache .fineract .portfolio .loanaccount .domain .LoanCapitalizedIncomeType ;
5152import org .apache .fineract .portfolio .loanaccount .domain .LoanChargeOffBehaviour ;
5253import org .apache .fineract .portfolio .loanproduct .data .LoanProductRelatedDetailMinimumData ;
5354import org .apache .fineract .portfolio .loanproduct .domain .AmortizationMethod ;
@@ -237,6 +238,7 @@ public final class LoanApplicationTerms {
237238 private boolean enableIncomeCapitalization ;
238239 private LoanCapitalizedIncomeCalculationType capitalizedIncomeCalculationType ;
239240 private LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy ;
241+ private LoanCapitalizedIncomeType capitalizedIncomeType ;
240242
241243 private LoanApplicationTerms (Builder builder ) {
242244 this .currency = builder .currency ;
@@ -276,6 +278,7 @@ private LoanApplicationTerms(Builder builder) {
276278 this .enableIncomeCapitalization = builder .enableIncomeCapitalization ;
277279 this .capitalizedIncomeCalculationType = builder .capitalizedIncomeCalculationType ;
278280 this .capitalizedIncomeStrategy = builder .capitalizedIncomeStrategy ;
281+ this .capitalizedIncomeType = builder .capitalizedIncomeType ;
279282 }
280283
281284 public static class Builder {
@@ -308,6 +311,7 @@ public static class Builder {
308311 private boolean enableIncomeCapitalization ;
309312 private LoanCapitalizedIncomeCalculationType capitalizedIncomeCalculationType ;
310313 private LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy ;
314+ private LoanCapitalizedIncomeType capitalizedIncomeType ;
311315
312316 public Builder currency (CurrencyData currency ) {
313317 this .currency = currency ;
@@ -439,6 +443,11 @@ public Builder capitalizedIncomeStrategy(LoanCapitalizedIncomeStrategy value) {
439443 return this ;
440444 }
441445
446+ public Builder capitalizedIncomeType (LoanCapitalizedIncomeType value ) {
447+ this .capitalizedIncomeType = value ;
448+ return this ;
449+ }
450+
442451 public LoanApplicationTerms build () {
443452 return new LoanApplicationTerms (this );
444453 }
@@ -508,7 +517,7 @@ public static LoanApplicationTerms assembleFrom(final CurrencyData currency, fin
508517 final LoanChargeOffBehaviour chargeOffBehaviour , final boolean interestRecognitionOnDisbursementDate ,
509518 final DaysInYearCustomStrategyType daysInYearCustomStrategy , final boolean enableIncomeCapitalization ,
510519 final LoanCapitalizedIncomeCalculationType capitalizedIncomeCalculationType ,
511- final LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy ) {
520+ final LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy , final LoanCapitalizedIncomeType capitalizedIncomeType ) {
512521
513522 final LoanRescheduleStrategyMethod rescheduleStrategyMethod = null ;
514523 final CalendarHistoryDataWrapper calendarHistoryDataWrapper = null ;
@@ -529,7 +538,7 @@ public static LoanApplicationTerms assembleFrom(final CurrencyData currency, fin
529538 isAutoRepaymentForDownPaymentEnabled , repaymentStartDateType , submittedOnDate , loanScheduleType , loanScheduleProcessingType ,
530539 fixedLength , enableAccrualActivityPosting , supportedInterestRefundTypes , chargeOffBehaviour ,
531540 interestRecognitionOnDisbursementDate , daysInYearCustomStrategy , enableIncomeCapitalization ,
532- capitalizedIncomeCalculationType , capitalizedIncomeStrategy );
541+ capitalizedIncomeCalculationType , capitalizedIncomeStrategy , capitalizedIncomeType );
533542
534543 }
535544
@@ -605,7 +614,7 @@ public static LoanApplicationTerms assembleFrom(final CurrencyData currency, fin
605614 loanProductRelatedDetail .getSupportedInterestRefundTypes (), loanProductRelatedDetail .getChargeOffBehaviour (),
606615 loanProductRelatedDetail .isInterestRecognitionOnDisbursementDate (), loanProductRelatedDetail .getDaysInYearCustomStrategy (),
607616 loanProductRelatedDetail .isEnableIncomeCapitalization (), loanProductRelatedDetail .getCapitalizedIncomeCalculationType (),
608- loanProductRelatedDetail .getCapitalizedIncomeStrategy ());
617+ loanProductRelatedDetail .getCapitalizedIncomeStrategy (), loanProductRelatedDetail . getCapitalizedIncomeType () );
609618 }
610619
611620 private LoanApplicationTerms (final CurrencyData currency , final Integer loanTermFrequency ,
@@ -638,7 +647,7 @@ private LoanApplicationTerms(final CurrencyData currency, final Integer loanTerm
638647 final List <LoanSupportedInterestRefundTypes > supportedInterestRefundTypes , final LoanChargeOffBehaviour chargeOffBehaviour ,
639648 final boolean interestRecognitionOnDisbursementDate , final DaysInYearCustomStrategyType daysInYearCustomStrategy ,
640649 final boolean enableIncomeCapitalization , final LoanCapitalizedIncomeCalculationType capitalizedIncomeCalculationType ,
641- final LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy ) {
650+ final LoanCapitalizedIncomeStrategy capitalizedIncomeStrategy , final LoanCapitalizedIncomeType capitalizedIncomeType ) {
642651
643652 this .currency = currency ;
644653 this .loanTermFrequency = loanTermFrequency ;
@@ -743,6 +752,7 @@ private LoanApplicationTerms(final CurrencyData currency, final Integer loanTerm
743752 this .enableIncomeCapitalization = enableIncomeCapitalization ;
744753 this .capitalizedIncomeCalculationType = capitalizedIncomeCalculationType ;
745754 this .capitalizedIncomeStrategy = capitalizedIncomeStrategy ;
755+ this .capitalizedIncomeType = capitalizedIncomeType ;
746756 }
747757
748758 public Money adjustPrincipalIfLastRepaymentPeriod (final Money principalForPeriod , final Money totalCumulativePrincipalToDate ,
@@ -1605,7 +1615,8 @@ public LoanProductRelatedDetail toLoanProductRelatedDetail() {
16051615 this .disbursedAmountPercentageForDownPayment , this .isAutoRepaymentForDownPaymentEnabled , this .loanScheduleType ,
16061616 this .loanScheduleProcessingType , this .fixedLength , this .enableAccrualActivityPosting , this .supportedInterestRefundTypes ,
16071617 this .chargeOffBehaviour , this .interestRecognitionOnDisbursementDate , this .daysInYearCustomStrategy ,
1608- this .enableIncomeCapitalization , this .capitalizedIncomeCalculationType , this .capitalizedIncomeStrategy );
1618+ this .enableIncomeCapitalization , this .capitalizedIncomeCalculationType , this .capitalizedIncomeStrategy ,
1619+ this .capitalizedIncomeType );
16091620 }
16101621
16111622 public LoanProductMinimumRepaymentScheduleRelatedDetail toLoanProductRelatedDetailMinimumData () {
0 commit comments