Class: Accountability::Transactions::Transaction

Inherits:
Object
  • Object
show all
Defined in:
app/models/accountability/transactions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, record:, amount:, description:, date: nil) ⇒ Transaction

Returns a new instance of Transaction.



26
27
28
29
30
31
32
# File 'app/models/accountability/transactions.rb', line 26

def initialize(type, record:, amount:, description:, date: nil)
  @type = type
  @record = record
  @amount = amount
  @description = description
  @date = date.presence || record.created_at
end

Instance Attribute Details

#amountObject

Returns the value of attribute amount.



24
25
26
# File 'app/models/accountability/transactions.rb', line 24

def amount
  @amount
end

#dateObject

Returns the value of attribute date.



24
25
26
# File 'app/models/accountability/transactions.rb', line 24

def date
  @date
end

#descriptionObject

Returns the value of attribute description.



24
25
26
# File 'app/models/accountability/transactions.rb', line 24

def description
  @description
end

#recordObject

Returns the value of attribute record.



24
25
26
# File 'app/models/accountability/transactions.rb', line 24

def record
  @record
end

#typeObject

Returns the value of attribute type.



24
25
26
# File 'app/models/accountability/transactions.rb', line 24

def type
  @type
end

Instance Method Details

#base_amountObject



42
43
44
# File 'app/models/accountability/transactions.rb', line 42

def base_amount
  debit? ? base_amount : record.base_price
end

#credit?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'app/models/accountability/transactions.rb', line 38

def credit?
  type == :credit
end

#debit?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'app/models/accountability/transactions.rb', line 34

def debit?
  type == :debit
end

#deductionsObject



46
47
48
# File 'app/models/accountability/transactions.rb', line 46

def deductions
  debit? ? [] : record.deductions
end

#taxesObject



50
51
52
# File 'app/models/accountability/transactions.rb', line 50

def taxes
  debit? ? 0 : record.taxes
end