class Workarea::Avatax::TaxRequest
Attributes
options[R]
order[R]
shippings[R]
Public Class Methods
new(order:, shippings: [], **options)
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 6 def initialize(order:, shippings: [], **options) @order = order @shippings = shippings @options = options.deep_symbolize_keys end
Public Instance Methods
response()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 12 def response @response ||= Response.new( response: Avatax.gateway.create_transaction(request_body, request_options), request_order_line_items: order_lines.order_line_items, request_shipping_line_items: order_lines.shipping_line_items ) end
Private Instance Methods
addresses()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 40 def addresses Addresses.new(tax_request: self) end
commit()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 52 def commit options[:commit] || false end
company_code()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 68 def company_code Workarea::Avatax.config.company_code end
customer_code()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 56 def customer_code return "" unless order.email.present? order.email.truncate(50, omission: "") end
customer_usage_type()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 62 def customer_usage_type return "" unless order.email.present? User.find_by_email(order.email).try(:customer_usage_type) end
date()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 44 def date DateTime.now.iso8601 end
order_lines()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 72 def order_lines @order_lines ||= OrderLines.new(order, shippings) end
request_body()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 22 def request_body { type: type, date: date, code: order.id.to_s, companyCode: company_code, customerCode: customer_code, customerUsageType: customer_usage_type, addresses: addresses.hash, commit: commit, lines: order_lines.lines.map(&:hash) } end
request_options()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 36 def request_options options.slice(:timeout) end
type()
click to toggle source
# File lib/workarea/avatax/tax_request.rb, line 48 def type options[:type] || "SalesOrder" end