class BitcoinPayable::BitcoinPayment

Public Instance Methods

calculate_btc_amount_due() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 41
def calculate_btc_amount_due
  btc_rate = BitcoinPayable::CurrencyConversion.last.btc
  BitcoinPayable::BitcoinCalculator.exchange_price currency_amount_due, btc_rate
end
currency_amount_due() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 37
def currency_amount_due
  self.price - currency_amount_paid
end
currency_amount_paid() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 33
def currency_amount_paid
  self.transactions.inject(0) { |sum, tx| sum + (BitcoinPayable::BitcoinCalculator.convert_satoshis_to_bitcoin(tx.estimated_value) * tx.btc_conversion) }.round(2)
end

Private Instance Methods

notify_payable() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 57
def notify_payable
  if self.payable.respond_to?(:bitcoin_payment_paid)
    self.payable.bitcoin_payment_paid
  end
end
populate_address() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 53
def populate_address
  self.update(address: Address.create(self.id))
end
populate_currency_and_amount_due() click to toggle source
# File lib/bitcoin_payable/bitcoin_payment.rb, line 48
def populate_currency_and_amount_due
  self.currency ||= BitcoinPayable.config.currency
  self.btc_amount_due = calculate_btc_amount_due
end