Class RecurringDepositAccount

java.lang.Object
org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom<Long>
org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom<Long>
org.apache.fineract.portfolio.savings.domain.SavingsAccount
org.apache.fineract.portfolio.savings.domain.RecurringDepositAccount
All Implemented Interfaces:
Serializable, Cloneable, org.eclipse.persistence.descriptors.changetracking.ChangeTracker, org.eclipse.persistence.internal.descriptors.PersistenceEntity, org.eclipse.persistence.internal.descriptors.PersistenceObject, org.eclipse.persistence.internal.weaving.PersistenceWeaved, org.eclipse.persistence.internal.weaving.PersistenceWeavedChangeTracking, org.eclipse.persistence.internal.weaving.PersistenceWeavedFetchGroups, org.eclipse.persistence.internal.weaving.PersistenceWeavedLazy, org.eclipse.persistence.queries.FetchGroupTracker, org.springframework.data.domain.Auditable<Long,Long,OffsetDateTime>, org.springframework.data.domain.Persistable<Long>

@Entity public class RecurringDepositAccount extends org.apache.fineract.portfolio.savings.domain.SavingsAccount
See Also:
  • Field Summary

    Fields inherited from class org.apache.fineract.portfolio.savings.domain.SavingsAccount

    _persistence_activatedBy_vh, _persistence_approvedBy_vh, _persistence_closedBy_vh, _persistence_group_vh, _persistence_gsim_vh, _persistence_rejectedBy_vh, _persistence_savingsOfficer_vh, _persistence_submittedBy_vh, _persistence_withdrawnBy_vh, accountNumber, accountNumberRequiresAutoGeneration, accountType, activatedBy, activatedOnDate, approvedBy, approvedOnDate, charges, client, closedBy, closedOnDate, configurationDomainService, currency, externalId, group, identifiers, interestCalculationDaysInYearType, interestCalculationType, interestCompoundingPeriodType, interestPostingPeriodType, lockedInUntilDate, lockinPeriodFrequency, lockinPeriodFrequencyType, minRequiredOpeningBalance, nominalAnnualInterestRate, nominalAnnualInterestRateOverdraft, product, reasonForBlock, rejectedBy, rejectedOnDate, savingsAccountTransactions, savingsAccountTransactionSummaryWrapper, savingsHelper, savingsOfficer, startInterestCalculationDate, status, sub_status, submittedBy, submittedOnDate, summary, transactions, withdrawalFeeApplicableForTransfer, withdrawnBy, withdrawnOnDate, withHoldTax

    Fields inherited from class org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom

    _persistence_cacheKey, _persistence_fetchGroup, _persistence_listener, _persistence_primaryKey, _persistence_session, _persistence_shouldRefreshFetchGroup
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
     
  • Method Summary

    Modifier and Type
    Method
    Description
    activate(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command)
     
    org.apache.fineract.organisation.monetary.domain.Money
     
    boolean
     
    boolean
     
    List<org.apache.fineract.portfolio.savings.domain.interest.PostingPeriod>
    calculateInterestUsing(MathContext mc, LocalDate postingDate, boolean isInterestTransfer, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate postAsInterestOn, boolean backdatedTxnsAllowedTill, boolean postReversals)
     
     
    calculatePreMatureAmount(LocalDate preMatureDate, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth)
     
    void
    close(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
     
    createNewActivatedAccount(org.apache.fineract.portfolio.client.domain.Client client, org.apache.fineract.portfolio.group.domain.Group group, org.apache.fineract.portfolio.savings.domain.SavingsProduct product, org.apache.fineract.organisation.staff.domain.Staff fieldOfficer, String accountNo, org.apache.fineract.infrastructure.core.domain.ExternalId externalId, org.apache.fineract.portfolio.accountdetails.domain.AccountType accountType, LocalDate submittedOnDate, org.apache.fineract.useradministration.domain.AppUser submittedBy, BigDecimal interestRate, org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType interestCompoundingPeriodType, org.apache.fineract.portfolio.savings.SavingsPostingInterestPeriodType interestPostingPeriodType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationType interestCalculationType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, BigDecimal minRequiredOpeningBalance, Integer lockinPeriodFrequency, org.apache.fineract.portfolio.savings.SavingsPeriodFrequencyType lockinPeriodFrequencyType, boolean withdrawalFeeApplicableForTransfer, Set<org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge> savingsAccountCharges, org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure accountTermAndPreClosure, DepositAccountRecurringDetail recurringDetail, org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart chart, boolean withHoldTax)
     
    createNewApplicationForSubmittal(org.apache.fineract.portfolio.client.domain.Client client, org.apache.fineract.portfolio.group.domain.Group group, org.apache.fineract.portfolio.savings.domain.SavingsProduct product, org.apache.fineract.organisation.staff.domain.Staff fieldOfficer, String accountNo, org.apache.fineract.infrastructure.core.domain.ExternalId externalId, org.apache.fineract.portfolio.accountdetails.domain.AccountType accountType, LocalDate submittedOnDate, org.apache.fineract.useradministration.domain.AppUser submittedBy, BigDecimal interestRate, org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType interestCompoundingPeriodType, org.apache.fineract.portfolio.savings.SavingsPostingInterestPeriodType interestPostingPeriodType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationType interestCalculationType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, BigDecimal minRequiredOpeningBalance, Integer lockinPeriodFrequency, org.apache.fineract.portfolio.savings.SavingsPeriodFrequencyType lockinPeriodFrequencyType, boolean withdrawalFeeApplicableForTransfer, Set<org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge> savingsAccountCharges, org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure accountTermAndPreClosure, DepositAccountRecurringDetail recurringDetail, org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart chart, boolean withHoldTax)
     
    org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction
    deposit(org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionDTO transactionDTO, boolean backdatedTxnsAllowedTill, Long relaxingDaysConfigForPivotDate, String refNo)
     
     
    void
    generateSchedule(org.apache.fineract.portfolio.common.domain.PeriodFrequencyType frequency, Integer recurringEvery, org.apache.fineract.portfolio.calendar.domain.Calendar calendar)
     
     
    protected BigDecimal
     
    protected BigDecimal
    getEffectiveInterestRateAsFraction(MathContext mc, LocalDate interestPostingUpToDate, boolean isPreMatureClosure)
     
     
    void
    handleScheduleInstallments(org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction transaction)
     
    boolean
     
    boolean
     
    protected boolean
    isTransactionInAdvanceOfInstallment(int currentInstallmentIndex, List<RecurringDepositScheduleInstallment> installments, LocalDate transactionDate)
    This method is responsible for checking if the current transaction is 'an advance/early payment' based on the details passed through.
    boolean
     
    protected boolean
     
    boolean
     
    void
     
     
     
    void
    modifyApplication(org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
     
    void
    postInterest(MathContext mc, LocalDate postingDate, boolean isInterestTransfer, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate postInterestAson, boolean backdatedTxnsAllowedTill, boolean postReversals)
     
    void
    postMaturityInterest(boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate closeDate, boolean postReversals)
     
    void
    postPreMaturityInterest(LocalDate accountCloseDate, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, boolean postReversals)
     
    void
    prematureClosure(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
     
    protected void
    processAccountUponActivation(DateTimeFormatter fmt, boolean postReversals, Long relaxingDaysConfigForPivotDate)
     
    reInvest(BigDecimal depositAmount)
     
    void
    setClosedOnDate(LocalDate closedOnDate)
     
    void
     
    protected List<org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction>
    sortTransactions(List<org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction> transactions)
     
    void
     
    void
    updateMaturityDateAndAmount(MathContext mc, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth)
     
    void
    updateMaturityStatus(boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, boolean postReversals)
     
    void
     
    void
     
    void
    updateScheduleInstallmentsWithNewRecommendedDepositAmount(BigDecimal newDepositAmount, LocalDate depositAmountupdatedFromDate)
     
    void
     
    void
     

    Methods inherited from class org.apache.fineract.portfolio.savings.domain.SavingsAccount

    _persistence_get, _persistence_get_accountNumber, _persistence_get_accountType, _persistence_get_accruedTillDate, _persistence_get_activatedBy, _persistence_get_activatedBy_vh, _persistence_get_activatedOnDate, _persistence_get_allowOverdraft, _persistence_get_approvedBy, _persistence_get_approvedBy_vh, _persistence_get_approvedOnDate, _persistence_get_charges, _persistence_get_client, _persistence_get_closedBy, _persistence_get_closedBy_vh, _persistence_get_closedOnDate, _persistence_get_currency, _persistence_get_depositType, _persistence_get_enforceMinRequiredBalance, _persistence_get_externalId, _persistence_get_group, _persistence_get_group_vh, _persistence_get_gsim, _persistence_get_gsim_vh, _persistence_get_identifiers, _persistence_get_interestCalculationDaysInYearType, _persistence_get_interestCalculationType, _persistence_get_interestCompoundingPeriodType, _persistence_get_interestPostingPeriodType, _persistence_get_lienAllowed, _persistence_get_lockedInUntilDate, _persistence_get_lockinPeriodFrequency, _persistence_get_lockinPeriodFrequencyType, _persistence_get_maxAllowedLienLimit, _persistence_get_minBalanceForInterestCalculation, _persistence_get_minOverdraftForInterestCalculation, _persistence_get_minRequiredBalance, _persistence_get_minRequiredOpeningBalance, _persistence_get_nominalAnnualInterestRate, _persistence_get_nominalAnnualInterestRateOverdraft, _persistence_get_onHoldFunds, _persistence_get_overdraftLimit, _persistence_get_product, _persistence_get_reasonForBlock, _persistence_get_rejectedBy, _persistence_get_rejectedBy_vh, _persistence_get_rejectedOnDate, _persistence_get_savingsOfficer, _persistence_get_savingsOfficer_vh, _persistence_get_savingsOfficerHistory, _persistence_get_savingsOnHoldAmount, _persistence_get_startInterestCalculationDate, _persistence_get_status, _persistence_get_sub_status, _persistence_get_submittedBy, _persistence_get_submittedBy_vh, _persistence_get_submittedOnDate, _persistence_get_summary, _persistence_get_taxGroup, _persistence_get_transactions, _persistence_get_version, _persistence_get_withdrawalFeeApplicableForTransfer, _persistence_get_withdrawnBy, _persistence_get_withdrawnBy_vh, _persistence_get_withdrawnOnDate, _persistence_get_withHoldTax, _persistence_initialize_activatedBy_vh, _persistence_initialize_approvedBy_vh, _persistence_initialize_closedBy_vh, _persistence_initialize_group_vh, _persistence_initialize_gsim_vh, _persistence_initialize_rejectedBy_vh, _persistence_initialize_savingsOfficer_vh, _persistence_initialize_submittedBy_vh, _persistence_initialize_withdrawnBy_vh, _persistence_new, _persistence_post_clone, _persistence_set, _persistence_set_accountNumber, _persistence_set_accountType, _persistence_set_accruedTillDate, _persistence_set_activatedBy, _persistence_set_activatedBy_vh, _persistence_set_activatedOnDate, _persistence_set_allowOverdraft, _persistence_set_approvedBy, _persistence_set_approvedBy_vh, _persistence_set_approvedOnDate, _persistence_set_charges, _persistence_set_client, _persistence_set_closedBy, _persistence_set_closedBy_vh, _persistence_set_closedOnDate, _persistence_set_currency, _persistence_set_depositType, _persistence_set_enforceMinRequiredBalance, _persistence_set_externalId, _persistence_set_group, _persistence_set_group_vh, _persistence_set_gsim, _persistence_set_gsim_vh, _persistence_set_identifiers, _persistence_set_interestCalculationDaysInYearType, _persistence_set_interestCalculationType, _persistence_set_interestCompoundingPeriodType, _persistence_set_interestPostingPeriodType, _persistence_set_lienAllowed, _persistence_set_lockedInUntilDate, _persistence_set_lockinPeriodFrequency, _persistence_set_lockinPeriodFrequencyType, _persistence_set_maxAllowedLienLimit, _persistence_set_minBalanceForInterestCalculation, _persistence_set_minOverdraftForInterestCalculation, _persistence_set_minRequiredBalance, _persistence_set_minRequiredOpeningBalance, _persistence_set_nominalAnnualInterestRate, _persistence_set_nominalAnnualInterestRateOverdraft, _persistence_set_onHoldFunds, _persistence_set_overdraftLimit, _persistence_set_product, _persistence_set_reasonForBlock, _persistence_set_rejectedBy, _persistence_set_rejectedBy_vh, _persistence_set_rejectedOnDate, _persistence_set_savingsOfficer, _persistence_set_savingsOfficer_vh, _persistence_set_savingsOfficerHistory, _persistence_set_savingsOnHoldAmount, _persistence_set_startInterestCalculationDate, _persistence_set_status, _persistence_set_sub_status, _persistence_set_submittedBy, _persistence_set_submittedBy_vh, _persistence_set_submittedOnDate, _persistence_set_summary, _persistence_set_taxGroup, _persistence_set_transactions, _persistence_set_version, _persistence_set_withdrawalFeeApplicableForTransfer, _persistence_set_withdrawnBy, _persistence_set_withdrawnBy_vh, _persistence_set_withdrawnOnDate, _persistence_set_withHoldTax, accountSubmittedAndActivationOnSameDate, accountSubmittedOrActivationDate, accrualsForSavingsReverse, activateAccountBasedOnBalance, addCharge, addTransaction, addTransactionToExisting, allowDeposit, allowModify, allowOverdraft, applicantWithdrawsFromApplication, applyWithholdTaxForDepositAccounts, approveAndActivateApplication, approveApplication, assignSavingsOfficer, block, blockCredits, blockDebits, calculateWithdrawalFee, charges, clientId, close, createNewApplicationForSubmittal, createWithHoldTransaction, deposit, depositAccountType, deriveAccountingBridgeData, dividendPayout, escheat, findCurrentReversedTransactionIdsWithPivotDateConfig, findCurrentTransactionIdsWithPivotDateConfig, findExistingReversedTransactionIds, findExistingTransactionIds, findInterestPostingSavingsTransactionWithPivotConfig, findInterestPostingTransactionFor, findLastFilteredTransactionWithPivotConfig, findLastTransaction, findTransactionFor, findWithHoldSavingsTransactionsWithPivotConfig, findWithHoldTransactions, getAccountBalance, getAccountNumber, getAccountType, getAccountTypes, getActivatedBy, getActivationDate, getApprovedBy, getApprovedOnDate, getClient, getClosedBy, getClosedOnDate, getCurrency, getDepositType, getEffectiveInterestRateAsFractionAccrual, getEnforceMinRequiredBalance, getExternalId, getGroupId, getGsim, getIdentifiers, getInterestCalculationDaysInYearType, getInterestCalculationType, getInterestCompoundingPeriodType, getInterestPostingPeriodType, getLienAllowed, getLockedInUntilDate, getLockinPeriodFrequency, getLockinPeriodFrequencyType, getManualPostingDates, getManualPostingDatesWithPivotConfig, getMaxAllowedLienLimit, getMinBalanceForInterestCalculation, getMinOverdraftForInterestCalculation, getMinRequiredBalance, getMinRequiredOpeningBalance, getNominalAnnualInterestRate, getNominalAnnualInterestRateOverdraft, getOnHoldFunds, getOverdraftLimit, getRejectedBy, getRejectedOnDate, getSavingsAccountTransactionsWithPivotConfig, getSavingsHoldAmount, getSavingsOfficer, getSavingsProductId, getStartInterestCalculationDate, getStatus, getSubmittedBy, getSubmittedOnDate, getSubStatus, getSummary, getTaxGroup, getTransactions, getUpdatedChargeDetails, getVersion, getWithdrawableBalance, getWithdrawableBalanceWithLien, getWithdrawableBalanceWithoutMinimumBalance, getWithdrawnBy, getWithdrawnOnDate, group, groupId, hasCurrencyCodeOf, hasSavingsOfficer, hasSavingsOfficerId, holdAmount, holdFunds, inactivateCharge, isAccountLocked, isAccountNumberRequiresAutoGeneration, isActivated, isActive, isAllowOverdraft, isApproved, isBeforeLastPostingPeriod, isClosed, isEnforceMinRequiredBalance, isLienAllowed, isNotActive, isNotSubmittedAndPendingApproval, isSubmittedAndPendingApproval, isTransactionAllowed, isWithdrawalFeeApplicableForTransfer, isWithdrawalFeeForTransfer, isWithHoldTax, minBalanceForInterestCalculation, modifyApplication, office, officeId, payCharge, payCharge, processAccountUponActivation, productId, reassignSavingsOfficer, recalculateDailyBalances, rejectApplication, releaseFunds, releaseOnHoldAmount, removeCharge, removeSavingsOfficer, resetAccountTransactionsEndOfDayBalances, retreiveOrderedNonInterestPostingSavingsTransactionsWithPivotConfig, retreiveOrderedNonInterestPostingTransactions, retrieveLastTransactionDate, retrieveLastTransactionDateWithPivotConfig, retrieveListOfTransactions, retrieveOrderedAccrualTransactions, retrieveSortedTransactions, savingsProduct, setAccountType, setAccruedTillDate, setGsim, setHelpers, setSavingsAccountTransactions, setStartInterestCalculationDate, setStatus, setSubStatusDormant, setSubStatusInactive, setWithHoldTax, toSavingsAccountTransactionDetailsForPostingPeriodList, toSavingsAccountTransactionDetailsForPostingPeriodList, unassignSavingsOfficer, unblock, unblockCredits, unblockDebits, undoApplicationApproval, undoSavingsTransaction, undoTransaction, undoTransaction, update, update, update, update, update, updateAccountNo, updateReason, updateSavingsAccountSummary, updateWithHoldTransaction, validateAccountBalanceDoesNotBecomeNegative, validateAccountBalanceDoesNotBecomeNegative, validateAccountBalanceDoesNotBecomeNegativeMinimal, validateAccountBalanceDoesNotViolateOverdraft, validateAccountValuesWithProduct, validateActivityNotBeforeClientOrGroupTransferDate, validateForAccountBlock, validateForCreditBlock, validateForDebitBlock, validateInterestPostingAndCompoundingPeriodTypes, validateNewApplicationState, validatePivotDateTransaction, waiveCharge, withdraw, withHoldTax

    Methods inherited from class org.apache.fineract.infrastructure.core.domain.AbstractAuditableWithUTCDateTimeCustom

    _persistence_get_createdBy, _persistence_get_createdDate, _persistence_get_lastModifiedBy, _persistence_get_lastModifiedDate, _persistence_set_createdBy, _persistence_set_createdDate, _persistence_set_lastModifiedBy, _persistence_set_lastModifiedDate, getCreatedBy, getCreatedDate, getLastModifiedBy, getLastModifiedDate, setCreatedBy, setCreatedDate, setLastModifiedBy, setLastModifiedDate

    Methods inherited from class org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom

    _persistence_checkFetched, _persistence_checkFetchedForSet, _persistence_get_id, _persistence_getCacheKey, _persistence_getFetchGroup, _persistence_getId, _persistence_getPropertyChangeListener, _persistence_getSession, _persistence_isAttributeFetched, _persistence_propertyChange, _persistence_resetFetchGroup, _persistence_set_id, _persistence_setCacheKey, _persistence_setFetchGroup, _persistence_setId, _persistence_setPropertyChangeListener, _persistence_setSession, _persistence_setShouldRefreshFetchGroup, _persistence_shallow_clone, _persistence_shouldRefreshFetchGroup, getId, isNew, setId

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.data.domain.Persistable

    getId, isNew

    Methods inherited from interface org.eclipse.persistence.internal.descriptors.PersistenceObject

    _persistence_shallow_clone
  • Constructor Details

    • RecurringDepositAccount

      protected RecurringDepositAccount()
  • Method Details

    • createNewApplicationForSubmittal

      public static RecurringDepositAccount createNewApplicationForSubmittal(org.apache.fineract.portfolio.client.domain.Client client, org.apache.fineract.portfolio.group.domain.Group group, org.apache.fineract.portfolio.savings.domain.SavingsProduct product, org.apache.fineract.organisation.staff.domain.Staff fieldOfficer, String accountNo, org.apache.fineract.infrastructure.core.domain.ExternalId externalId, org.apache.fineract.portfolio.accountdetails.domain.AccountType accountType, LocalDate submittedOnDate, org.apache.fineract.useradministration.domain.AppUser submittedBy, BigDecimal interestRate, org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType interestCompoundingPeriodType, org.apache.fineract.portfolio.savings.SavingsPostingInterestPeriodType interestPostingPeriodType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationType interestCalculationType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, BigDecimal minRequiredOpeningBalance, Integer lockinPeriodFrequency, org.apache.fineract.portfolio.savings.SavingsPeriodFrequencyType lockinPeriodFrequencyType, boolean withdrawalFeeApplicableForTransfer, Set<org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge> savingsAccountCharges, org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure accountTermAndPreClosure, DepositAccountRecurringDetail recurringDetail, org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart chart, boolean withHoldTax)
    • createNewActivatedAccount

      public static RecurringDepositAccount createNewActivatedAccount(org.apache.fineract.portfolio.client.domain.Client client, org.apache.fineract.portfolio.group.domain.Group group, org.apache.fineract.portfolio.savings.domain.SavingsProduct product, org.apache.fineract.organisation.staff.domain.Staff fieldOfficer, String accountNo, org.apache.fineract.infrastructure.core.domain.ExternalId externalId, org.apache.fineract.portfolio.accountdetails.domain.AccountType accountType, LocalDate submittedOnDate, org.apache.fineract.useradministration.domain.AppUser submittedBy, BigDecimal interestRate, org.apache.fineract.portfolio.savings.SavingsCompoundingInterestPeriodType interestCompoundingPeriodType, org.apache.fineract.portfolio.savings.SavingsPostingInterestPeriodType interestPostingPeriodType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationType interestCalculationType, org.apache.fineract.portfolio.savings.SavingsInterestCalculationDaysInYearType interestCalculationDaysInYearType, BigDecimal minRequiredOpeningBalance, Integer lockinPeriodFrequency, org.apache.fineract.portfolio.savings.SavingsPeriodFrequencyType lockinPeriodFrequencyType, boolean withdrawalFeeApplicableForTransfer, Set<org.apache.fineract.portfolio.savings.domain.SavingsAccountCharge> savingsAccountCharges, org.apache.fineract.portfolio.savings.domain.DepositAccountTermAndPreClosure accountTermAndPreClosure, DepositAccountRecurringDetail recurringDetail, org.apache.fineract.portfolio.savings.domain.DepositAccountInterestRateChart chart, boolean withHoldTax)
    • modifyApplication

      public void modifyApplication(org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
      Overrides:
      modifyApplication in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • updateDepositAmount

      public void updateDepositAmount(BigDecimal depositAmount)
    • getEffectiveInterestRateAsFraction

      protected BigDecimal getEffectiveInterestRateAsFraction(MathContext mc, LocalDate interestPostingUpToDate)
      Overrides:
      getEffectiveInterestRateAsFraction in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • getEffectiveInterestRateAsFraction

      protected BigDecimal getEffectiveInterestRateAsFraction(MathContext mc, LocalDate interestPostingUpToDate, boolean isPreMatureClosure)
    • updateMaturityDateAndAmount

      public void updateMaturityDateAndAmount(MathContext mc, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth)
    • updateMaturityStatus

      public void updateMaturityStatus(boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, boolean postReversals)
    • calculateMaturityDate

      public LocalDate calculateMaturityDate()
    • depositStartDate

      public LocalDate depositStartDate()
    • prematureClosure

      public void prematureClosure(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
    • activateWithBalance

      public org.apache.fineract.organisation.monetary.domain.Money activateWithBalance()
      Overrides:
      activateWithBalance in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • processAccountUponActivation

      protected void processAccountUponActivation(DateTimeFormatter fmt, boolean postReversals, Long relaxingDaysConfigForPivotDate)
    • close

      public void close(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command, Map<String,Object> actualChanges)
    • postMaturityInterest

      public void postMaturityInterest(boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate closeDate, boolean postReversals)
    • postPreMaturityInterest

      public void postPreMaturityInterest(LocalDate accountCloseDate, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, boolean postReversals)
    • calculatePreMatureAmount

      public BigDecimal calculatePreMatureAmount(LocalDate preMatureDate, boolean isPreMatureClosure, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth)
    • postInterest

      public void postInterest(MathContext mc, LocalDate postingDate, boolean isInterestTransfer, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate postInterestAson, boolean backdatedTxnsAllowedTill, boolean postReversals)
      Overrides:
      postInterest in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • calculateInterestUsing

      public List<org.apache.fineract.portfolio.savings.domain.interest.PostingPeriod> calculateInterestUsing(MathContext mc, LocalDate postingDate, boolean isInterestTransfer, boolean isSavingsInterestPostingAtCurrentPeriodEnd, Integer financialYearBeginningMonth, LocalDate postAsInterestOn, boolean backdatedTxnsAllowedTill, boolean postReversals)
      Overrides:
      calculateInterestUsing in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • maturityDate

      public LocalDate maturityDate()
    • maturityAmount

      public BigDecimal maturityAmount()
    • activate

      public Map<String,Object> activate(org.apache.fineract.useradministration.domain.AppUser currentUser, org.apache.fineract.infrastructure.core.api.JsonCommand command)
      Overrides:
      activate in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • sortTransactions

      protected List<org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction> sortTransactions(List<org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction> transactions)
    • deposit

      public org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction deposit(org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionDTO transactionDTO, boolean backdatedTxnsAllowedTill, Long relaxingDaysConfigForPivotDate, String refNo)
      Overrides:
      deposit in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • handleScheduleInstallments

      public void handleScheduleInstallments(org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction transaction)
    • updateScheduleInstallments

      public void updateScheduleInstallments()
    • updateScheduleInstallmentsWithNewRecommendedDepositAmount

      public void updateScheduleInstallmentsWithNewRecommendedDepositAmount(BigDecimal newDepositAmount, LocalDate depositAmountupdatedFromDate)
    • isTransactionInAdvanceOfInstallment

      protected boolean isTransactionInAdvanceOfInstallment(int currentInstallmentIndex, List<RecurringDepositScheduleInstallment> installments, LocalDate transactionDate)
      This method is responsible for checking if the current transaction is 'an advance/early payment' based on the details passed through. Default implementation is check transaction date is before installment due date.
    • validateDomainRules

      public void validateDomainRules()
    • validateApplicableInterestRate

      public void validateApplicableInterestRate()
    • isReinvestOnClosure

      public boolean isReinvestOnClosure()
    • isTransferToSavingsOnClosure

      public boolean isTransferToSavingsOnClosure()
    • reInvest

      public RecurringDepositAccount reInvest(BigDecimal depositAmount)
    • setDatesFrom

      public void setDatesFrom(LocalDate now)
    • setClosedOnDate

      public void setClosedOnDate(LocalDate closedOnDate)
    • isTransferInterestToOtherAccount

      protected boolean isTransferInterestToOtherAccount()
      Overrides:
      isTransferInterestToOtherAccount in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • generateSchedule

      public void generateSchedule(org.apache.fineract.portfolio.common.domain.PeriodFrequencyType frequency, Integer recurringEvery, org.apache.fineract.portfolio.calendar.domain.Calendar calendar)
    • isCalendarInherited

      public boolean isCalendarInherited()
    • updateOverduePayments

      public void updateOverduePayments(LocalDate todayDate)
    • allowWithdrawal

      public boolean allowWithdrawal()
      Overrides:
      allowWithdrawal in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • adjustAdvanceTowardsFuturePayments

      public boolean adjustAdvanceTowardsFuturePayments()
    • isTransactionsAllowed

      public boolean isTransactionsAllowed()
      Overrides:
      isTransactionsAllowed in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • getRecurringDetail

      public DepositAccountRecurringDetail getRecurringDetail()
    • loadLazyCollections

      public void loadLazyCollections()
      Overrides:
      loadLazyCollections in class org.apache.fineract.portfolio.savings.domain.SavingsAccount
    • getDepositAmount

      public BigDecimal getDepositAmount()