Class: MgeWholesale::Order
Overview
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.
Constant Summary collapse
- HEADERS =
[ 'Ordering Dealer Number', 'Ordering Dealer Name', 'Ship to Name', 'Ship To Address', 'Ship to City', 'Ship to State', 'Ship to Zip', 'Ship to email', 'Ship to phone', 'Ship to FFL', 'Item', 'Item Desc', 'Item UPC', 'Item Qty', 'Item Price', 'Special Instructions' ]
Instance Method Summary collapse
- #add_item(item = {}) ⇒ Object
- #add_recipient(hash = {}) ⇒ Object
- #filename ⇒ Object
-
#initialize(options = {}) ⇒ Order
constructor
A new instance of Order.
- #to_csv ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(options = {}) ⇒ Order
Returns a new instance of Order.
31 32 33 34 35 36 37 |
# File 'lib/mge_wholesale/order.rb', line 31 def initialize( = {}) requires!(, :username, :po_number) @dealer_number = [:username] @po_number = [:po_number] @items = [] end |
Instance Method Details
#add_item(item = {}) ⇒ Object
63 64 65 66 |
# File 'lib/mge_wholesale/order.rb', line 63 def add_item(item = {}) requires!(item, :identifier, :upc, :qty) @items << item end |
#add_recipient(hash = {}) ⇒ Object
51 52 53 54 55 |
# File 'lib/mge_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 ⇒ Object
68 69 70 71 72 |
# File 'lib/mge_wholesale/order.rb', line 68 def filename return @filename if defined?(@filename) = Time.now.strftime('%Y%m%d%T').gsub(':', '') @filename = "MGE-#{@po_number}-#{timestamp}.csv" end |
#to_csv ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/mge_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 |