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