28 lines
850 B
Ruby
28 lines
850 B
Ruby
require 'csv'
|
||
|
||
class OrderCsv < RenderCSV
|
||
|
||
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)
|
||
]
|
||
end
|
||
|
||
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}" : ''),
|
||
number_to_currency(oa.article.price * oa.article.unit_quantity),
|
||
number_to_currency(oa.total_price)
|
||
]
|
||
end
|
||
end
|
||
end
|