Module: YeshouaCrm::MoneyHelper

Included in:
Liquid::Filters::Base
Defined in:
lib/yeshoua_crm/money_helper.rb

Instance Method Summary collapse

Instance Method Details

#all_currenciesObject



41
42
43
44
45
46
47
# File 'lib/yeshoua_crm/money_helper.rb', line 41

def all_currencies
  Currency.table.inject([]) do |array, (id, attributes)|
    array ||= []
    array << ["#{attributes[:name]}" + (attributes[:symbol].blank? ? "" : " (#{attributes[:symbol]})"), attributes[:iso_code]]
    array
  end.sort{|x, y| x[0] <=> y[0]}
end

#collection_for_currencies_select(default_currency = 'BRL', major_currencies = %w(BRL USD EUR GBP RUB CHF)) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/yeshoua_crm/money_helper.rb', line 31

def collection_for_currencies_select(default_currency = 'BRL', major_currencies = %w(BRL USD EUR GBP RUB CHF))
  currencies = []
  currencies << default_currency.to_s unless default_currency.blank?
  currencies |= major_currencies
  currencies.map do |c|
    currency = YeshouaCrm::Currency.find(c)
    ["#{currency.iso_code} (#{currency.symbol})", currency.iso_code] if currency
  end.compact.uniq
end

#deal_currency_icon(currency) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/yeshoua_crm/money_helper.rb', line 18

def deal_currency_icon(currency)
  case currency.to_s.upcase
  when 'EUR'
    "icon-money-euro"
  when 'GBP'
    "icon-money-pound"
  when 'JPY'
    "icon-money-yen"
  else
    "icon-money-dollar"
  end
end

#object_price(obj, price_field = :price, options = {}) ⇒ Object



6
7
8
9
# File 'lib/yeshoua_crm/money_helper.rb', line 6

def object_price(obj, price_field = :price, options = {})
  options.merge!({:symbol => true})
  price_to_currency(obj.try(price_field), obj.currency, options).to_s if obj.respond_to?(:currency)
end

#price_to_currency(price, currency = "BRL", options = {}) ⇒ Object



49
50
51
52
53
54
55
56
57
# File 'lib/yeshoua_crm/money_helper.rb', line 49

def price_to_currency(price, currency="BRL", options={})
  return '' if price.blank?

  currency = "BRL" unless currency.is_a?(String)
  currency = YeshouaCrm::Currency.find(currency)

  return YeshouaCrm::Currency.format(price.to_f, currency, options)# if currency
  price.to_s
end

#prices_collection_by_currency(prices_collection, options = {}) ⇒ Object



11
12
13
14
15
16
# File 'lib/yeshoua_crm/money_helper.rb', line 11

def prices_collection_by_currency(prices_collection, options={})
  return [] if prices_collection.blank? || prices_collection == 0
  prices = prices_collection
  prices.reject!{|k, v| v.to_i == 0} if options[:hide_zeros]
  prices.collect{|k, v| (:span, price_to_currency(v, k, :symbol => true), :style => "white-space: nowrap;")}.compact
end