foodsoft/app/documents/order_by_articles.rb
Patrick Gansterer e0c0834690 Show stockorder in PDFs
When generating a PDF, which contains a order from a supplier and stock,
we want show that some articles are from stock instead of showing the
original supplier, since the people want to know where to look for their
products during pickup.
2021-02-08 01:05:29 +01:00

41 lines
1.5 KiB
Ruby

# encoding: utf-8
class OrderByArticles < OrderPdf
def filename
I18n.t('documents.order_by_articles.filename', :name => order.name, :date => order.ends.to_date) + '.pdf'
end
def title
I18n.t('documents.order_by_articles.title', :name => order.name,
:date => order.ends.strftime(I18n.t('date.formats.default')))
end
def body
each_order_article do |order_article|
dimrows = []
rows = [[
GroupOrder.human_attribute_name(:ordergroup),
GroupOrderArticle.human_attribute_name(:ordered),
GroupOrderArticle.human_attribute_name(:received),
GroupOrderArticle.human_attribute_name(:total_price)
]]
each_group_order_article_for_order_article(order_article) do |goa|
dimrows << rows.length if goa.result == 0
rows << [goa.group_order.ordergroup_name,
group_order_article_quantity_with_tolerance(goa),
goa.result,
number_to_currency(goa.total_price)]
end
next unless rows.length > 1
name = "#{order_article.article.name} (#{order_article.article.unit} | #{order_article.price.unit_quantity} | #{number_to_currency(order_article.price.fc_price)})"
name += " #{order_article.order.name}" if @options[:show_supplier]
nice_table name, rows, dimrows do |table|
table.column(0).width = bounds.width / 2
table.columns(1..-1).align = :right
table.column(2).font_style = :bold
end
end
end
end