Skip to content

Instantly share code, notes, and snippets.

@v-fedorov
Created November 19, 2012 16:25
Show Gist options
  • Save v-fedorov/4111620 to your computer and use it in GitHub Desktop.
Save v-fedorov/4111620 to your computer and use it in GitHub Desktop.
class PdfExport
@queue = :export_data
require 'prawn'
def self.perform(warehouse_id)
Prawn::Document.generate("orders#{warehouse_id}.pdf",
:page_layout => :landscape) do
orders = Spree::Order.all #TODO scope for unshipped orders
@export_hash = {}
orders.each do |order|
order.line_items.each do |items|
@export_hash[items.variant.sku] = {
:name => items.variant.name,
:date => "#{order.completed_at.to_formatted_s(:short) }",
:shipment => order.shipment.number,
:warehouse => items.variant.warehouse_id
}
end
end
data = [["SKU", "Variant", "Date", "Shipment"]]
#Creates table of variants
#TODO make it look pretty :)
@export_hash.map.select{ |key, value| value[:warehouse] == warehouse_id }.sort_by{ |key, value| key }.each do |sku, values|
data += [ [ "#{sku}", "#{values[:name]}", "#{values[:date]}", "#{values[:shipment]}"] ]
end
table(data, :header => true,
:position => :center,
:cell_style => { :size => 10},
:column_widths => [90, 200, 90, 100],
:row_colors => ["F0F0F0", "FFFFCC"])
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment