class OrionWholesale::Order
To submit an order:
-
Instantiate a new
Order
, passing in `:username` -
Call {#add_recipient}
-
Call {#add_item} for each item on the order
See each method for a list of required options.
Constants
- HEADERS
Public Class Methods
new(options = {})
click to toggle source
@option options [String] :username required
# File lib/orion_wholesale/order.rb, line 31 def initialize(options = {}) requires!(options, :username, :po_number) @dealer_number = options[:username] @po_number = options[:po_number] @items = [] end
Public Instance Methods
add_item(item = {})
click to toggle source
@param item [Hash]
* :identifier [String] *required* * :description [String] * :upc [String] *required* * :qty [Integer] *required* * :price [String]
# File lib/orion_wholesale/order.rb, line 63 def add_item(item = {}) requires!(item, :identifier, :upc, :qty) @items << item end
add_recipient(hash = {})
click to toggle source
@param header [Hash]
* :dealer_name [String] *required* * :ffl [String] * :shipping [Hash] *required* * :name [String] *required* * :address [String] *required* * :city [String] *required* * :state [String] *required* * :zip [String] *required* * :email [String] *required* * :phone [String] *required* * :special_instructions [String] optional
# File lib/orion_wholesale/order.rb, line 51 def add_recipient(hash = {}) requires!(hash, :dealer_name, :shipping) requires!(hash[:shipping], :name, :address, :city, :state, :zip, :email, :phone) @headers = hash end
filename()
click to toggle source
# File lib/orion_wholesale/order.rb, line 68 def filename return @filename if defined?(@filename) timestamp = Time.now.strftime('%Y%m%d%T').gsub(':', '') @filename = "ORION-#{@po_number}-#{timestamp}.csv" end
to_csv()
click to toggle source
# File lib/orion_wholesale/order.rb, line 74 def to_csv CSV.generate(headers: true) do |csv| csv << HEADERS @items.each do |item| csv << [ @dealer_number, @headers[:dealer_name], @headers[:shipping][:name], @headers[:shipping][:address], @headers[:shipping][:city], @headers[:shipping][:state], @headers[:shipping][:zip], @headers[:shipping][:email], @headers[:shipping][:phone], @headers[:ffl], item[:identifier], item[:description], item[:upc], item[:qty], item[:price], @headers[:special_instructions] ] end end # CSV.generate end