foodsoft/lib/order_csv.rb
2014-05-13 17:01:25 +02:00

39 lines
1.3 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

require 'csv'
class OrderCsv
include ActionView::Helpers::NumberHelper
def initialize(order, options={})
@order = order
end
def to_csv
CSV.generate do |csv|
# header
csv << [
OrderArticle.human_attribute_name(:units_to_order),
Article.human_attribute_name(:order_number),
Article.human_attribute_name(:name),
Article.human_attribute_name(:unit),
ArticlePrice.human_attribute_name(:price),
OrderArticle.human_attribute_name(:total_price)
]
# data
@order.order_articles.ordered.includes([:article, :article_price]).all.map do |oa|
csv << [
oa.units_to_order,
oa.article.order_number,
oa.article.name,
oa.article.unit + (oa.price.unit_quantity > 1 ? " × #{oa.price.unit_quantity}" : ''),
number_to_currency(oa.article_price.price * oa.article_price.unit_quantity),
number_to_currency(oa.total_price)
]
end
end
end
# Helper method to test pdf via rails console: OrderCsv.new(order).save_tmp
def save_tmp
File.open("#{Rails.root}/tmp/#{self.class.to_s.underscore}.csv", 'w') {|f| f.write(to_csv.force_encoding("UTF-8")) }
end
end