class Stripe2QB::Converters::ChargeToSalesReceipt

Attributes

charge[R]
sales_receipt[R]

Public Class Methods

new(charge, configuration) click to toggle source
Calls superclass method Stripe2QB::Converters::Base::new
# File lib/stripe2qb/converters/charge_to_sales_receipt.rb, line 7
def initialize(charge, configuration)
  super(configuration)

  @charge = charge
  @sales_receipt = build_sales_receipt
end

Public Instance Methods

create!() click to toggle source
# File lib/stripe2qb/converters/charge_to_sales_receipt.rb, line 18
def create!
  raise "SalesReceipt for #{charge.id} already exists: #{find.id}" if exists?

  quickbooks_api.sales_receipt_service.create(sales_receipt)
end
delete!() click to toggle source
# File lib/stripe2qb/converters/charge_to_sales_receipt.rb, line 24
def delete!
  return false unless exists?

  result = quickbooks_api.sales_receipt_service.delete(find)
  @found = nil

  result
end
find() click to toggle source
# File lib/stripe2qb/converters/charge_to_sales_receipt.rb, line 14
def find
  @found ||= quickbooks_api.sales_receipt_service.find_by(:payment_ref_num, charge.id).first
end

Private Instance Methods

build_sales_receipt() click to toggle source
# File lib/stripe2qb/converters/charge_to_sales_receipt.rb, line 35
def build_sales_receipt
  sales_receipt = Quickbooks::Model::SalesReceipt.new
  sales_receipt.customer_id = quickbooks_api.receipt_customer.id
  sales_receipt.payment_method_id = quickbooks_api.receipt_payment_method.id
  sales_receipt.deposit_to_account_id = quickbooks_api.receipt_account.id
  sales_receipt.txn_date = format_date(charge.created)
  sales_receipt.payment_ref_number = charge.id
  sales_receipt.private_note = "Imported by Stripe2QB: #{charge.id}"
  sales_receipt.auto_doc_number!

  line_item = Quickbooks::Model::Line.new
  line_item.amount = amount = format_amount(charge.amount)
  line_item.description = charge.description
  line_item.sales_item! do |detail|
    detail.quantity = 1
    detail.unit_price = amount
    detail.item_id = quickbooks_api.receipt_item.id
  end
  sales_receipt.line_items << line_item

  sales_receipt
end