Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In Folio, fee/fine information is stored as accounts and actions. An account is the umbrella object that is created with a particular charge. An action is always associated with an account, and is where transactions related to a particular charge are stored.

Accounts

Accounts are where the core charge is held and created when a fee/fine is created and applied to a user account.

  • The associated JSON schema is accountdata.json (https://github.com/folio-org/mod-feesfines/blob/master/ramls/accountdata.json)
  • An individual account record has a required userId - that's how it's linked to the user record
  • An individual user may have zero, one, or more accounts - e.g., if they've never had a fine charged, they would have no account records.
  • Accounts have feeFineId and ownerId - this links to the fee fine owner, and the type of fee/fine that was charged. Types of fines are configurable for manual charges in Settings → Users → Fee Fines. For automatic charges, they are configured in FOLIO itself. Types of fee/fines in the system can be retrieved via an API call (GET /feefines)
  • Note that as of Honeysuckle, a materialTypeId and itemId must be provided, even if you are not trying to tie a fee/fine to an individual item. When creating a fee/fine, you will have to set a value for those attributes no matter what. The FOLIO UI uses "0" as a value if no item is provided. See Image ModifiedUIU-2070 - Creating a manual fee/fine requires an itemId and materialTypeId even if the manual fee/fine is not being associated with an item OPEN for the status of this issue.Also note that as of Honeysuckle, a loanId must be provided to prevent odd UI behavior for a migrated fee/fine. The FOLIO UI uses "0" as a value for the loanId for a manual fee/fine. This is the case even if your fee/fine is not being tied to a loan record. See Image RemovedUIU-2071 - Absence of loanId attribute on account leads to odd Loan Details behavior CLOSED for the status of this issue. 
  • Hardcoded attributes (with allowed values) include:
    • Status
      • Open
      • Closed 
    • Payment Status
      • Outstanding
      • Paid partially
      • Paid fully
      • Waived partially
      • Waived fully
      • Transferred partially
      • Transferred fully
      • Refunded partially
      • Refunded fully
      • Cancelled as error


Actions

Actions are where transactions are kept on the account

  • The associated JSON schema is feefineactiondata.json (https://github.com/folio-org/mod-feesfines/blob/master/ramls/feefineactiondata.json)
  • Accounts will always have at least one action, created when the account was created.
  • If an account has been paid, it will have at least two  actions - the one created that shows the initial charge (with a type of "Outstanding",) and then the one that resolves the charge ("______ fully").
  • A feefineactiondata record has a required attribute of accountId which links it to the account.
  • Hardcoded attributes (with allowed values) include
    • TypeAction
      • Outstanding
      • Paid partially
      • Paid fully
      • Waived partially
      • Waived fully
      • Transferred partially
      • Transferred fully
      • Refunded partially
      • Refunded fully
      • Cancelled as error
      • Staff info only