Class: Liability

Inherits:
Account
  • Object
show all
Defined in:
app/models/liability.rb

Overview

The Liability class is an account type used to represents debts owed to outsiders.

Normal Balance

The normal balance on Liability accounts is a Credit.

See Also:

Author:

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from Account

trial_balance

Class Method Details

+ (Object) balance

Balance of all Liability accounts

Examples:

>> Liability.balance
=> #<BigDecimal:1030fcc98,'0.82875E5',8(20)>


64
65
66
67
68
69
70
71
72
73
74
75
# File 'app/models/liability.rb', line 64

def self.balance
  accounts_balance = BigDecimal.new('0') 
  accounts = self.find(:all)
  accounts.each do |liability|
    unless liability.contra
      accounts_balance += liability.balance
    else
      accounts_balance -= liability.balance
    end
  end
  accounts_balance
end

Instance Method Details

- (BigDecimal) balance

The balance of the account.

Liability accounts have normal credit balances, so the debits are subtracted from the credits unless this is a contra account, in which credits are subtracted from debits

Examples:

>> liability.balance
=> #<BigDecimal:103259bb8,'0.2E4',4(12)> 

Returns:

  • (BigDecimal)

    The decimal value balance



51
52
53
54
55
56
57
# File 'app/models/liability.rb', line 51

def balance
  unless contra
    credits_balance - debits_balance 
  else
    debits_balance - credits_balance
  end    
end

- (BigDecimal) credits_balance

The credit balance for the account.

Examples:

>> liability.credits_balance
=> #<BigDecimal:103259bb8,'0.3E4',4(12)> 

Returns:

  • (BigDecimal)

    The decimal value credit balance



18
19
20
21
22
23
24
# File 'app/models/liability.rb', line 18

def credits_balance
  credits_balance = BigDecimal.new('0')
  credit_transactions.each do |credit_transaction|
    credits_balance = credits_balance + credit_transaction.amount
  end
  return credits_balance
end

- (BigDecimal) debits_balance

The debit balance for the account.

Examples:

>> liability.debits_balance
=> #<BigDecimal:103259bb8,'0.1E4',4(12)> 

Returns:

  • (BigDecimal)

    The decimal value credit balance



33
34
35
36
37
38
39
# File 'app/models/liability.rb', line 33

def debits_balance
  debits_balance = BigDecimal.new('0')
  debit_transactions.each do |debit_transaction|
    debits_balance = debits_balance + debit_transaction.amount
  end
  return debits_balance
end