@@ -427,6 +427,9 @@ public class Loan extends AbstractAuditableWithUTCDateTimeCustom<Long> {
427427 @ Column (name = "enable_installment_level_delinquency" , nullable = false )
428428 private boolean enableInstallmentLevelDelinquency = false ;
429429
430+ @ Column (name = "allow_full_term_for_tranche" , nullable = false )
431+ private boolean allowFullTermForTranche = false ;
432+
430433 public static Loan newIndividualLoanApplication (final String accountNo , final Client client , final AccountType loanType ,
431434 final LoanProduct loanProduct , final Fund fund , final Staff officer , final CodeValue loanPurpose ,
432435 final LoanRepaymentScheduleTransactionProcessor transactionProcessingStrategy ,
@@ -436,12 +439,12 @@ public static Loan newIndividualLoanApplication(final String accountNo, final Cl
436439 final Boolean createStandingInstructionAtDisbursement , final Boolean isFloatingInterestRate ,
437440 final BigDecimal interestRateDifferential , final List <Rate > rates , final BigDecimal fixedPrincipalPercentagePerInstallment ,
438441 final ExternalId externalId , final LoanApplicationTerms loanApplicationTerms , final Boolean enableInstallmentLevelDelinquency ,
439- final LocalDate submittedOnDate ) {
442+ final LocalDate submittedOnDate , final Boolean allowFullTermForTranche ) {
440443 return new Loan (accountNo , client , null , loanType , fund , officer , loanPurpose , transactionProcessingStrategy , loanProduct ,
441444 loanRepaymentScheduleDetail , null , loanCharges , collateral , null , fixedEmiAmount , disbursementDetails ,
442445 maxOutstandingLoanBalance , createStandingInstructionAtDisbursement , isFloatingInterestRate , interestRateDifferential , rates ,
443446 fixedPrincipalPercentagePerInstallment , externalId , loanApplicationTerms , enableInstallmentLevelDelinquency ,
444- submittedOnDate );
447+ submittedOnDate , allowFullTermForTranche );
445448 }
446449
447450 public static Loan newGroupLoanApplication (final String accountNo , final Group group , final AccountType loanType ,
@@ -453,12 +456,12 @@ public static Loan newGroupLoanApplication(final String accountNo, final Group g
453456 final Boolean createStandingInstructionAtDisbursement , final Boolean isFloatingInterestRate ,
454457 final BigDecimal interestRateDifferential , final List <Rate > rates , final BigDecimal fixedPrincipalPercentagePerInstallment ,
455458 final ExternalId externalId , final LoanApplicationTerms loanApplicationTerms , final Boolean enableInstallmentLevelDelinquency ,
456- final LocalDate submittedOnDate ) {
459+ final LocalDate submittedOnDate , final Boolean allowFullTermForTranche ) {
457460 return new Loan (accountNo , null , group , loanType , fund , officer , loanPurpose , transactionProcessingStrategy , loanProduct ,
458461 loanRepaymentScheduleDetail , null , loanCharges , null , syncDisbursementWithMeeting , fixedEmiAmount , disbursementDetails ,
459462 maxOutstandingLoanBalance , createStandingInstructionAtDisbursement , isFloatingInterestRate , interestRateDifferential , rates ,
460463 fixedPrincipalPercentagePerInstallment , externalId , loanApplicationTerms , enableInstallmentLevelDelinquency ,
461- submittedOnDate );
464+ submittedOnDate , allowFullTermForTranche );
462465 }
463466
464467 public static Loan newIndividualLoanApplicationFromGroup (final String accountNo , final Client client , final Group group ,
@@ -470,12 +473,12 @@ public static Loan newIndividualLoanApplicationFromGroup(final String accountNo,
470473 final Boolean createStandingInstructionAtDisbursement , final Boolean isFloatingInterestRate ,
471474 final BigDecimal interestRateDifferential , final List <Rate > rates , final BigDecimal fixedPrincipalPercentagePerInstallment ,
472475 final ExternalId externalId , final LoanApplicationTerms loanApplicationTerms , final Boolean enableInstallmentLevelDelinquency ,
473- final LocalDate submittedOnDate ) {
476+ final LocalDate submittedOnDate , final Boolean allowFullTermForTranche ) {
474477 return new Loan (accountNo , client , group , loanType , fund , officer , loanPurpose , transactionProcessingStrategy , loanProduct ,
475478 loanRepaymentScheduleDetail , null , loanCharges , null , syncDisbursementWithMeeting , fixedEmiAmount , disbursementDetails ,
476479 maxOutstandingLoanBalance , createStandingInstructionAtDisbursement , isFloatingInterestRate , interestRateDifferential , rates ,
477480 fixedPrincipalPercentagePerInstallment , externalId , loanApplicationTerms , enableInstallmentLevelDelinquency ,
478- submittedOnDate );
481+ submittedOnDate , allowFullTermForTranche );
479482 }
480483
481484 protected Loan () {
@@ -491,7 +494,7 @@ private Loan(final String accountNo, final Client client, final Group group, fin
491494 final Boolean createStandingInstructionAtDisbursement , final Boolean isFloatingInterestRate ,
492495 final BigDecimal interestRateDifferential , final List <Rate > rates , final BigDecimal fixedPrincipalPercentagePerInstallment ,
493496 final ExternalId externalId , final LoanApplicationTerms loanApplicationTerms , final Boolean enableInstallmentLevelDelinquency ,
494- final LocalDate submittedOnDate ) {
497+ final LocalDate submittedOnDate , final Boolean allowFullTermForTranche ) {
495498 this .loanRepaymentScheduleDetail = loanRepaymentScheduleDetail ;
496499
497500 this .isFloatingInterestRate = isFloatingInterestRate ;
@@ -572,6 +575,7 @@ private Loan(final String accountNo, final Client client, final Group group, fin
572575 this .loanInterestRecalculationDetails .updateLoan (this );
573576 }
574577 this .enableInstallmentLevelDelinquency = enableInstallmentLevelDelinquency ;
578+ this .allowFullTermForTranche = allowFullTermForTranche ;
575579 this .getLoanProductRelatedDetail ()
576580 .setEnableAccrualActivityPosting (loanProduct .getLoanProductRelatedDetail ().isEnableAccrualActivityPosting ());
577581 }
@@ -1783,6 +1787,14 @@ public void updateEnableInstallmentLevelDelinquency(boolean enableInstallmentLev
17831787 this .enableInstallmentLevelDelinquency = enableInstallmentLevelDelinquency ;
17841788 }
17851789
1790+ public boolean isAllowFullTermForTranche () {
1791+ return this .allowFullTermForTranche ;
1792+ }
1793+
1794+ public void updateAllowFullTermForTranche (boolean allowFullTermForTranche ) {
1795+ this .allowFullTermForTranche = allowFullTermForTranche ;
1796+ }
1797+
17861798 public void deductFromNetDisbursalAmount (final BigDecimal subtrahend ) {
17871799 this .netDisbursalAmount = this .netDisbursalAmount .subtract (subtrahend );
17881800 }
0 commit comments