Module: ReceiptDisplay

Extended by:
ActiveSupport::Concern
Included in:
Receipt
Defined in:
app/models/concerns/receipt_display.rb

Overview

Presentation helpers: customer/label formatting, reference and card
summaries, currency symbol, and to_s.

See Also:

Instance Method Summary collapse

Instance Method Details

#card_nameString?

Returns cardholder name from the linked Payment.

Returns:

  • (String, nil)

    cardholder name from the linked Payment



38
39
40
# File 'app/models/concerns/receipt_display.rb', line 38

def card_name
  payment&.name
end

#currency_symbolString

Returns symbol for the receipt's currency.

Returns:

  • (String)

    symbol for the receipt's currency



43
44
45
# File 'app/models/concerns/receipt_display.rb', line 43

def currency_symbol
  Money::Currency.new(currency).symbol
end

#customer_nameObject



10
11
12
# File 'app/models/concerns/receipt_display.rb', line 10

def customer_name
  customer.try(:full_name)
end

#customer_typeObject



14
15
16
# File 'app/models/concerns/receipt_display.rb', line 14

def customer_type
  customer.try(:type)
end

#is_not_for_a_customer?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'app/models/concerns/receipt_display.rb', line 61

def is_not_for_a_customer?
  customer.present? and customer.class != Customer
end

#reference_summary(with_brackets = false) ⇒ String?

Display label for the receipt's external reference. Credit-card
receipts get "<card_type> <last4>"; everything else falls back to
the bare reference.

Parameters:

  • with_brackets (Boolean) (defaults to: false)

    wrap the result in parentheses

Returns:

  • (String, nil)


24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/models/concerns/receipt_display.rb', line 24

def reference_summary(with_brackets = false)
  ref = if category == 'Credit Card'
          card_type.blank? && reference.blank? ? nil : "#{card_type} #{reference}"
        else
          reference.presence
        end
  if ref.nil?
    nil
  else
    with_brackets == true ? "(#{ref})" : ref
  end
end

#storeStore?

First Store on the receipt's Company, used by tax and reporting
helpers. Returns nil when there is no company or no store; real DB
errors are allowed to surface rather than being swallowed.

Returns:



57
58
59
# File 'app/models/concerns/receipt_display.rb', line 57

def store
  company&.stores&.first
end

#to_sString

Returns "Receipt 1234".

Returns:

  • (String)

    "Receipt 1234"



48
49
50
# File 'app/models/concerns/receipt_display.rb', line 48

def to_s
  "Receipt #{id}"
end