Guest User

Untitled

a guest
May 25th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. ### reports_helper.rb
  2. module ReportsHelper
  3. module Large
  4. font_size = 12
  5. cols = 3
  6. labels_per_page = 30
  7. labels_per_col = 10
  8.  
  9. marg_x = 72 * 0.19
  10. marg_y = 72 * 0.5
  11.  
  12. cell_x = 72 * 2.63
  13. cell_y = 72 * 1
  14.  
  15. col_pad_x = 72 * 0.19
  16.  
  17. col1_x = marg_x
  18. col2_x = col1_x + cell_x + col_pad_x
  19. col3_x = col2_x + cell_x + col_pad_x
  20.  
  21. cell_pad_x = 72 * 0.13
  22. cell_pad_y = 72 * 0.25
  23. cell_line_y = font_size + 2
  24.  
  25. def cell_x(col)
  26. [col1_x, col2_x, col3_x][col] + cell_pad_x
  27. end
  28.  
  29. def cell_y(row, line)
  30. marg_y + ((labels_per_col - row) * cell_y) - cell_pad_y - (line * cell_line_y)
  31. end
  32.  
  33. def add_label(row, col, user, pdf)
  34. pdf.text "Name: #{user.full_name}"
  35. user.addresses.each do |a|
  36. pdf.text a.addr1
  37. pdf.text a.addr2 unless a.addr2.blank?
  38. if (a.country == "United States" || a.country.blank?)
  39. pdf.text "#{a.city}, #{a.state}, #{a.postal_code}"
  40. else
  41. pdf.text "#{a.city} #{a.state}"
  42. pdf.text a.postal_code
  43. pdf.text a.country
  44. end
  45. pdf.text ""
  46. end
  47. end
  48. end
  49. end
  50.  
  51. ### mailing_labels.pdf.prawn
  52. pdf.font "Helvetica"
  53. pdf.font.size = Large::font_size
  54.  
  55. pages = @users.length / Large::labels_per_page
  56. pages += 1 if (@users.length % Large::labels_per_page) > 0
  57.  
  58. 0.upto(pages - 1) do |page|
  59. start = page * Large::labels_per_page
  60. users_page = @users[start..start + Large::labels_per_page]
  61.  
  62. 0.upto(Large::LABELS_PER_COL - 1) do |row|
  63. Large::add_label(row, 0, user_page[row * Large::cols ], pdf)
  64. Large::add_label(row, 1, user_page[row * Large::cols + 1], pdf)
  65. Large::add_label(row, 2, user_page[row * Large::cols + 2], pdf)
  66. end
  67. pdf.new_page unless page + 1 == pages
  68. end
Add Comment
Please, Sign In to add comment