Class AccountUtil

java.lang.Object
com.infinitekind.moneydance.model.AccountUtil

public abstract class AccountUtil
extends java.lang.Object
Miscellaneous functions
  • Field Details

  • Constructor Details

  • Method Details

    • compareAccountNames

      public static final int compareAccountNames​(Account a1, Account a2)
    • firstMatchForSearch

      public static Account firstMatchForSearch​(Account rootAccount, AcctFilter search)
      Return the first account that matches the given filter under the specified account
    • allMatchesForSearch

      @Deprecated public static java.util.List<Account> allMatchesForSearch​(Account rootAccount, AcctFilter search)
      Deprecated.
      Please use allMatchesForSearch(AccountBook, AcctFilter)
      Return a list of accounts matching the given filter
    • allMatchesForSearch

      public static java.util.List<Account> allMatchesForSearch​(AccountBook book, AcctFilter search)
      Return a list of accounts matching the given filter
      Since:
      build 1527 (Moneydance 2017)
    • findAccountWithID

      public static Account findAccountWithID​(Account root, java.lang.String accountUUID)
      Find and return the account having the given UUID
    • getFilterForType

      public static AcctFilter getFilterForType​(Account.AccountType type)
    • getDefaultCategoryForAcct

      public static final Account getDefaultCategoryForAcct​(Account acct)
      Get the default category for use transactions in the given account. This is guaranteed to return a non-null value.
      Since:
      build 410
    • getDefaultTransferAcct

      public static final Account getDefaultTransferAcct​(Account acct)
      Get the default transfer account for transaction in the given account.
      Since:
      build 565
    • getAccountIterator

      public static java.util.Iterator<Account> getAccountIterator​(Account account)
      Return an iterator for all of the accounts that are under the given account. If the root account is provided, all accounts will be included in the iterator.
    • getAccountIterator

      public static java.util.Iterator<Account> getAccountIterator​(AccountBook book)
      Return an iterator for all of the accounts that are within the given data set. If the root account is provided, all accounts will be included in the iterator.
    • sumBalancesByCurrency

      public static java.util.HashMap<CurrencyType,​java.lang.Long> sumBalancesByCurrency​(AccountBook book, AcctFilter accountFilter)
      Gather the current value of all accounts matching the given filter for each currency
    • isCompatibleWith

      public static boolean isCompatibleWith​(OnlineAccountInfo olAcct, Account acct)
      Returns true iff the given online account can be associated with the given local account.
    • insertSortedTransaction

      public static int insertSortedTransaction​(TxnSet transactions, AbstractTxn t, int sortedBy)
      Inserts the given transaction into the specified array in sorted order.
    • insertSortedTransaction

      public static int insertSortedTransaction​(TxnSet transactions, AbstractTxn t, TxnSortOrder sortedBy)
      Inserts the given transaction into the specified array in sorted order.
      Since:
      Moneydance 2019.4 build 1893
    • compAmount

      public static long compAmount​(Txn t1, Txn t2)
    • compDateThenAmount

      public static long compDateThenAmount​(AbstractTxn t1, AbstractTxn t2)
    • compDateThenAmountTxn

      public static long compDateThenAmountTxn​(Txn t1, Txn t2)
    • compDateThenStatus

      public static int compDateThenStatus​(AbstractTxn t1, AbstractTxn t2)
    • compStatus

      public static int compStatus​(AbstractTxn t1, AbstractTxn t2)
    • compStatusChecknum

      public static int compStatusChecknum​(AbstractTxn t1, AbstractTxn t2)
    • compDescriptionDateEntered

      public static int compDescriptionDateEntered​(Txn t1, Txn t2)
    • compDescriptionDate

      public static int compDescriptionDate​(AbstractTxn t1, AbstractTxn t2)
    • compDescription

      public static int compDescription​(Txn t1, Txn t2)
      Compare the description, or 'payee', of two transactions.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compDateCheckNum

      public static int compDateCheckNum​(Txn t1, Txn t2, boolean useTaxDate)
      Compare two transactions by date.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      useTaxDate - True if comparing tax dates, false if transaction date.
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compDate

      public static int compDate​(Txn t1, Txn t2)
      Compare the transaction date of two transactions.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compTaxDate

      public static int compTaxDate​(Txn t1, Txn t2)
      Compare the tax date of two transactions.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compDateDateEntered

      public static int compDateDateEntered​(Txn t1, Txn t2)
    • compAccountDateEntered

      public static int compAccountDateEntered​(Txn t1, Txn t2)
    • compCategoryDateEntered

      public static int compCategoryDateEntered​(Txn t1, Txn t2)
    • compCategoryOrAccount

      public static int compCategoryOrAccount​(Txn t1, Txn t2)
      Compare the category account for two transactions.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side). accounts.
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • getNonCategoryFromTxn

      public static Account getNonCategoryFromTxn​(AbstractTxn txn)
      Return the non-category account from a transaction. If there is only category accounts on both sides of the transaction, or if it is in a category account with more than one split, return null.
      Parameters:
      txn - The transaction to check.
      Returns:
      The non-category account for the transaction, or null.
    • compDateEntered

      public static final int compDateEntered​(Txn t1, Txn t2)
    • compCheckNumBoth

      public static int compCheckNumBoth​(AbstractTxn t1, AbstractTxn t2)
      Compare the check number field for both numeric only and also text values.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compCheckNumBoth

      public static int compCheckNumBoth​(Txn t1, Txn t2, boolean forceUseParent)
      Compare the check number field for both numeric only and also text values.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      forceUseParent - True if always getting the check# from the parent, false otherwise.
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compCheckNumId

      public static int compCheckNumId​(AbstractTxn t1, AbstractTxn t2)
    • compCheckNumParent

      public static int compCheckNumParent​(AbstractTxn t1, AbstractTxn t2)
      Compare the check number field, but only use the parent transaction's check number, do not use the check number for a split. This is used for sorting transactions for display to the user. At this time the user may not specify a check number for a split, so it is irrelevant and messes up the sort order.
      Parameters:
      t1 - First transaction to compare (left hand side).
      t2 - Second transaction to compare (right hand side).
      Returns:
      0 if they are the same, < 0 if left is less than right, > 0 otherwise.
    • compCheckNumAmt

      public static int compCheckNumAmt​(Txn t1, Txn t2)
      Compare the two transactions based on their check number and then their amount if the check numbers are the same. @since build 566
    • compCheckIntId

      public static final int compCheckIntId​(AbstractTxn t1, AbstractTxn t2)
    • isTransactionSorted

      public static boolean isTransactionSorted​(int index, AbstractTxn t, TxnSet transactions, TxnSortOrder sortedBy)
    • isTransactionSorted

      public static boolean isTransactionSorted​(int index, AbstractTxn t, TxnSet transactions, int sortedBy)
    • sortTransactions

      public static void sortTransactions​(TxnSet transactions, int sortField)
    • getBalanceAsOfDate

      public static long getBalanceAsOfDate​(AccountBook book, Account account, int asofDate)
      Get a single account's balance as of a given date. Transactions for that date will be included, so it is the balance as of the end of the given date. The balance will be in the account's currency type. This method will return 0 if the account did not exist as of the given date.
      Parameters:
      book - The root account for all transactions.
      account - Account to obtain the balance for.
      asofDate - The date to obtain the balance for.
      Returns:
      The balance (in the account's currency) of the given account as of the end of the given date.
    • getBalanceAsOfDate

      public static long getBalanceAsOfDate​(AccountBook book, Account account, int asofDate, boolean outOfDateAsZero)
      Get a single account's balance as of a given date. Transactions for that date will be included, so it is the balance as of the end of the given date. The balance will be in the account's currency type.
      Parameters:
      book - The root account for all transactions.
      account - Account to obtain the balance for.
      asofDate - The date to obtain the balance for.
      outOfDateAsZero - True if out-of-date returns a zero balance, false if it returns a Long.MIN_VALUE if the account did not exist.
      Returns:
      The balance (in the account's currency) of the given account as of the end of the given date.
    • getBalancesAsOfDates

      public static long[] getBalancesAsOfDates​(AccountBook book, Account account, int[] asofDates)
      Get a single account's balance as of a list of given dates. The balances will be in the account's currency type. This method returns a zero balance if the given dates are before the earliest transaction and the account's start date.
      Parameters:
      book - The root account for all transactions.
      account - Account to obtain the balance for.
      asofDates - The dates to obtain the balance for.
      Returns:
      The balances (in the account's currency) of the given account as of the end of the corresponding given dates in asofDates.
    • getBalancesAsOfDates

      public static long[] getBalancesAsOfDates​(AccountBook book, Account account, int[] asofDates, boolean outOfDateAsZero)
      Get a single account's balance as of a list of given dates. The balances will be in the account's currency type. If a given date is prior to both the earliest transaction and the account's start date, then return Long.MIN_VALUE for the balance. Transactions for the given date will be included, so it is the balance as of the end of the given date. If outOfDateAsZero is true, this is overridden and 0 is returned even if the date is too early.
      Parameters:
      book - The root account for all transactions.
      account - Account to obtain the balance for.
      asofDates - The dates to obtain the balance for.
      outOfDateAsZero - True if out-of-date returns a zero balance, false if it returns a Long.MIN_VALUE if the account did not exist.
      Returns:
      The balances (in the account's currency) of the given account as of the end of the corresponding given dates in asofDates.
    • findAllReferencesToAccount

      public static void findAllReferencesToAccount​(java.util.List<MoneydanceSyncableItem> itemsWithReferences, Account acct)
      Adds to the list of all items that reference the given account. This is used to gather a list of items that must be deleted when the account is deleted.
    • getCategoryFromTxn

      public static Account getCategoryFromTxn​(AbstractTxn previousTxn)