48 lines
1.4 KiB
Text
48 lines
1.4 KiB
Text
|
end_date = @order.ends.strftime('%d.%m.%Y')
|
||
|
title = "Gruppensortierung für #{@order.name}, beendet am #{end_date}"
|
||
|
|
||
|
# Define header and footer
|
||
|
pdf.header [pdf.margin_box.left,pdf.margin_box.top+20] do
|
||
|
pdf.text title, :size => 10, :align => :center
|
||
|
end
|
||
|
pdf.footer [pdf.margin_box.left, pdf.margin_box.bottom-5] do
|
||
|
pdf.stroke_horizontal_rule
|
||
|
pdf.text "Seite #{pdf.page_count}", :size => 8
|
||
|
end
|
||
|
|
||
|
|
||
|
# Start rendering
|
||
|
groups = @order.group_order_results.size
|
||
|
counter = 1
|
||
|
for group_result in @order.group_order_results
|
||
|
pdf.text group_result.group_name, :style => :bold
|
||
|
pdf.move_down 5
|
||
|
pdf.text "Gruppe #{counter.to_s}/#{groups.to_s}", :size => 8
|
||
|
pdf.move_down 5
|
||
|
|
||
|
total = 0
|
||
|
data = []
|
||
|
group_result.group_order_article_results.each do |result|
|
||
|
price = result.order_article_result.gross_price
|
||
|
quantity = result.quantity
|
||
|
sub_total = price * quantity
|
||
|
total += sub_total
|
||
|
data << [result.order_article_result.name,
|
||
|
quantity, price,
|
||
|
result.order_article_result.unit_quantity,
|
||
|
result.order_article_result.unit,
|
||
|
sub_total]
|
||
|
end
|
||
|
data << [ {:text => "Summe", :colspan => 5}, total]
|
||
|
|
||
|
pdf.table data,
|
||
|
:font_size => 8,
|
||
|
:border_style => :grid,
|
||
|
:vertical_padding => 3,
|
||
|
:headers => ["Artikel", "Menge", "Preis", "GebGr", "Einheit", "Summe"],
|
||
|
:widths => { 0 => 250 },
|
||
|
:row_colors => ['ffffff','ececec']
|
||
|
|
||
|
counter += 1
|
||
|
pdf.move_down 10
|
||
|
end
|