2014-03-06 16:26:16 +01:00
|
|
|
|
require 'csv'
|
|
|
|
|
|
2014-05-08 12:42:50 +02:00
|
|
|
|
class OrderCsv < RenderCSV
|
2014-03-06 16:26:16 +01:00
|
|
|
|
|
2014-05-08 12:42:50 +02:00
|
|
|
|
def header
|
|
|
|
|
[
|
|
|
|
|
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)
|
|
|
|
|
]
|
2014-03-06 16:26:16 +01:00
|
|
|
|
end
|
|
|
|
|
|
2014-05-08 12:42:50 +02:00
|
|
|
|
def data
|
|
|
|
|
@object.order_articles.ordered.includes([:article, :article_price]).all.map do |oa|
|
|
|
|
|
yield [
|
|
|
|
|
oa.units_to_order,
|
|
|
|
|
oa.article.order_number,
|
|
|
|
|
oa.article.name,
|
|
|
|
|
oa.article.unit + (oa.price.unit_quantity > 1 ? " × #{oa.price.unit_quantity}" : ''),
|
2014-09-02 15:47:01 +02:00
|
|
|
|
number_to_currency(oa.article.price * oa.article.unit_quantity),
|
2014-05-08 12:42:50 +02:00
|
|
|
|
number_to_currency(oa.total_price)
|
|
|
|
|
]
|
2014-03-06 16:26:16 +01:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|