prawn_report 1.9.18 → 1.9.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/app/controllers/ac_filter_defs_controller.rb +0 -0
  2. data/app/controllers/custom_generate_report_controller.rb +0 -0
  3. data/app/controllers/generate_report_controller.rb +0 -0
  4. data/app/controllers/report_templates_controller.rb +17 -9
  5. data/app/models/ac_filter.rb +0 -0
  6. data/app/models/ac_filter_def.rb +7 -5
  7. data/app/models/ac_filter_option.rb +0 -0
  8. data/app/models/report_template.rb +9 -4
  9. data/app/serializers/ac_filter_def_serializer.rb +10 -0
  10. data/app/serializers/ac_filter_option_serializer.rb +7 -0
  11. data/app/serializers/ac_filter_serializer.rb +9 -0
  12. data/app/serializers/report_template_basic_serializer.rb +4 -0
  13. data/app/serializers/report_template_serializer.rb +9 -0
  14. data/lib/ac_filters_utils.rb +12 -10
  15. data/lib/active_record_helpers.rb +3 -2
  16. data/lib/bands/band.rb +0 -0
  17. data/lib/bands/footer_band.rb +0 -0
  18. data/lib/bands/header_band.rb +0 -0
  19. data/lib/bands/summary_band.rb +0 -0
  20. data/lib/custom_report_controller.rb +28 -16
  21. data/lib/generators/prawn_report/install/install_generator.rb +15 -15
  22. data/lib/generators/prawn_report/install/templates/20120108210141_create_prawn_report_catalogs.rb +14 -14
  23. data/lib/generators/prawn_report/install/templates/20120124012653_add_filter_defs.rb +35 -35
  24. data/lib/generators/prawn_report/install/templates/20120209231821_add_filters_to_reports.rb +13 -13
  25. data/lib/generators/prawn_report/install/templates/20120222021437_add_order_to_filter_def.rb +9 -9
  26. data/lib/generators/prawn_report/install/templates/20120222025632_add_select_sql.rb +9 -9
  27. data/lib/generators/prawn_report/install/templates/20120222030526_create_ac_filter_joins.rb +12 -12
  28. data/lib/generators/prawn_report/install/templates/20120222122507_add_serialization_params_to_report.rb +9 -9
  29. data/lib/generators/prawn_report/install/templates/20120222134101_create_ac_filter_includes.rb +12 -12
  30. data/lib/generators/prawn_report/install/templates/20120222150029_change_includes_and_joins_to_hash.rb +21 -21
  31. data/lib/generators/prawn_report/install/templates/20120229134810_add_group_to_filter_def.rb +9 -9
  32. data/lib/generators/prawn_report/install/templates/20120229194434_add_system_criteria_to_ac_filter.rb +9 -9
  33. data/lib/generators/prawn_report/install/templates/20120301063031_change_select_sql.rb +11 -11
  34. data/lib/generators/prawn_report/install/templates/20120303104431_change_filled_criteria_unfilled_criteria.rb +15 -15
  35. data/lib/generators/prawn_report/install/templates/20120316162712_add_filled_criteria_to_options.rb +9 -9
  36. data/lib/generators/prawn_report/install/templates/20120323124446_add_fields_to_filter.rb +17 -17
  37. data/lib/generators/prawn_report/install/templates/20130122101313_add_sql_query_to_ac_filter_def.rb +5 -5
  38. data/lib/generators/prawn_report/install/templates/20131107172133_add_excluir_to_report_template.rb +10 -9
  39. data/lib/generators/prawn_report/install/templates/20140529153300_add_description_to_report_template.rb +6 -0
  40. data/lib/prawn_report.rb +0 -0
  41. data/lib/prawn_report/engine.rb +9 -9
  42. data/lib/prawn_report_seeds.rb +13 -0
  43. data/lib/report.rb +6 -1
  44. data/lib/report_helpers.rb +15 -14
  45. data/lib/report_info.rb +0 -0
  46. data/repo/bands/footers/footer_001.rb +0 -0
  47. data/repo/bands/headers/header_001.rb +0 -0
  48. data/repo/bands/headers/header_002.rb +0 -0
  49. data/repo/reports/column_group.rb +3 -4
  50. data/repo/reports/listing.rb +59 -1
  51. data/repo/reports/simple_listing.rb +21 -2
  52. metadata +87 -59
  53. checksums.yaml +0 -7
  54. data/lib/prawn_report/version.rb +0 -3
@@ -2,11 +2,11 @@
2
2
 
3
3
  module PrawnReport
4
4
  class Report
5
-
5
+
6
6
  def box(width, height, options = {})
7
7
  @pdf.rounded_rectangle([0, y], width, height, TEXT_BOX_RADIUS)
8
8
  end
9
-
9
+
10
10
  def text_box_with_box(label, text, width, height = nil, options = {})
11
11
  @pdf.rounded_rectangle([@x, y], width, height || TEXT_BOX_HEIGTH, TEXT_BOX_RADIUS)
12
12
  @pdf.text_box(label, :size => LABEL_SIZE, :at => [@x + 2, y - 2], :width => width - 2,
@@ -14,45 +14,46 @@ module PrawnReport
14
14
  h_text = height.nil? ? TEXT_SIZE : height - LABEL_SIZE - 4
15
15
  @pdf.text_box(text || '', { :size => TEXT_SIZE, :at => [@x + 2, y - LABEL_SIZE - 4],
16
16
  :width => width - 2, :height => h_text, :valign => :top }.merge(options))
17
- @x += width
17
+ @x += width
18
18
  end
19
-
19
+
20
20
  def text(text, width, options = {})
21
21
  font_size = options[:font_size] || TEXT_SIZE
22
22
  @pdf.text_box(text, :size => font_size, :style => options[:style], :at => [@x, y - 4],
23
- :width => width, :height => font_size,
23
+ :width => width, :height => font_size,
24
24
  :valign => (options[:valign] || :top),
25
25
  :align => (options[:align] || :left)
26
26
  )
27
27
  @x = @x + width
28
28
  end
29
-
29
+
30
30
  def horizontal_line(x_ini = 0, x_end = @max_width)
31
31
  @pdf.stroke do
32
32
  @pdf.horizontal_line(x_ini, x_end, :at => y)
33
33
  end
34
34
  end
35
-
35
+
36
36
  def y
37
37
  @pdf.y
38
38
  end
39
-
39
+
40
40
  def y=(y)
41
41
  @pdf.y = y
42
- end
43
-
42
+ end
43
+
44
44
  def space(width)
45
45
  @x += width
46
46
  end
47
-
47
+
48
48
  def line_break(size = TEXT_SIZE)
49
49
  @x = 0
50
50
  @pdf.move_down(@pdf.height_of('A', :size => size) + 2)
51
51
  end
52
-
52
+
53
53
  def format(value, formatter, options = {})
54
54
  if !value.nil? && value != ''
55
55
  if (formatter == :currency)
56
+ value = value.round(2) rescue sprintf('%.2f', value).to_f
56
57
  if value < 0
57
58
  '-'+((value.to_i*-1).to_s.reverse.gsub(/...(?=.)/,'\&.').reverse) + ',' + ('%02d' % ((value.abs * 100).round % 100))
58
59
  else
@@ -64,7 +65,7 @@ module PrawnReport
64
65
  tz = Time.zone.parse(value)
65
66
  tz.nil? ? '' : tz.strftime('%d/%m/%Y')
66
67
  elsif (formatter == :function)
67
- send(options[:formatter_function].to_s, value)
68
+ send(options[:formatter_function].to_s, value)
68
69
  else
69
70
  value.to_s
70
71
  end
@@ -72,7 +73,7 @@ module PrawnReport
72
73
  ''
73
74
  end
74
75
  end
75
-
76
+
76
77
  def draw_graph(g, params)
77
78
  data = StringIO.new(g.to_blob)
78
79
  @pdf.image(data, params)
File without changes
File without changes
File without changes
File without changes
@@ -27,9 +27,8 @@ module PrawnReport
27
27
  @grouping_context_field = report_params[:grouping_context_field]
28
28
  end
29
29
 
30
- def draw(data)
31
- data = traverse_data(data)
32
- super(data)
30
+ def before_draw
31
+ @data = traverse_data(@data)
33
32
  end
34
33
 
35
34
  protected
@@ -55,4 +54,4 @@ module PrawnReport
55
54
 
56
55
 
57
56
  end
58
- end
57
+ end
@@ -4,6 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + "/../../lib/report.rb")
4
4
  require File.expand_path(File.dirname(__FILE__) + "/../bands/headers/header_001.rb")
5
5
  require File.expand_path(File.dirname(__FILE__) + "/../bands/headers/header_002.rb")
6
6
  require File.expand_path(File.dirname(__FILE__) + "/../bands/footers/footer_001.rb")
7
+ require 'iconv'
7
8
 
8
9
  module PrawnReport
9
10
  class Listing < Report
@@ -140,5 +141,62 @@ module PrawnReport
140
141
  render_multi_column_title
141
142
  end
142
143
  end
144
+
145
+ def draw_csv(data)
146
+ @data = data
147
+
148
+ before_draw
149
+
150
+ if @report_params[:field]
151
+ @report_params[:columns] = [@report_params[:field]]
152
+ end
153
+
154
+ str = CSV.generate(:col_sep => ";", :encoding => 'utf-8') do |csv|
155
+ csv << draw_column_titles_csv(csv)
156
+ @data[@detail_name].each do |row|
157
+ @current_row = row
158
+ before_render_line
159
+ csv << render_line_csv(@current_row, csv)
160
+ after_render_line
161
+ end
162
+ end
163
+ Iconv.conv('latin1', 'utf-8', str)
164
+ end
165
+
166
+ def render_line_csv(row, csv)
167
+ fields = []
168
+ @report_params[:columns].each do |c|
169
+ unless c[:formatter] == :invisible
170
+ formatter = c[:formatter] || :none
171
+ raw_value = get_raw_field_value(row, c[:name].to_s)
172
+ formatter_options = build_formatter_options(formatter, c)
173
+ # exceção é currency, deixamos o número sem separador de milhares
174
+ if formatter == :currency
175
+ if raw_value.blank?
176
+ formatted_text = ''
177
+ elsif raw_value < 0
178
+ formatted_text = raw_value.to_i.to_s + ',' + ('%02d' % ((raw_value.abs * 100).round % 100))
179
+ else
180
+ formatted_text = raw_value.to_i.to_s + ',' + ('%02d' % ((raw_value * 100).round % 100))
181
+ end
182
+ else
183
+ formatted_text = format(raw_value, formatter, formatter_options)
184
+ end
185
+ fields << formatted_text
186
+ end
187
+ end
188
+ fields
189
+ end
190
+
191
+ def draw_column_titles_csv(csv)
192
+ fields = []
193
+ @report_params[:columns].each do |c|
194
+ unless c[:formatter] == :invisible
195
+ fields << c[:title].to_s
196
+ end
197
+ end
198
+ fields
199
+ end
143
200
  end
144
- end
201
+
202
+ end
@@ -1,6 +1,7 @@
1
1
  #coding: utf-8
2
2
 
3
3
  require File.expand_path(File.dirname(__FILE__) + "/listing.rb")
4
+ require 'csv'
4
5
 
5
6
  module PrawnReport
6
7
  #Generates a listing report with or without multiple columns.
@@ -70,14 +71,14 @@ module PrawnReport
70
71
  @grouping_info = {:last_group_value => nil,
71
72
  :groups_running => false}
72
73
  end
73
-
74
+
74
75
  def new_page(print_titles = true)
75
76
  super(print_titles)
76
77
  draw_group_header if grouped? and @report_params[:group][:header_reprint_new_page] and !last_group_summary?
77
78
  if print_titles
78
79
  draw_column_titles unless (!draw_group_column_titles? && !@printing_internal) || last_group_summary?
79
80
  end
80
- end
81
+ end
81
82
 
82
83
  protected
83
84
 
@@ -126,5 +127,23 @@ module PrawnReport
126
127
  run_groups(@current_row) if grouped?
127
128
  end
128
129
 
130
+ def draw_column_titles_csv(csv)
131
+ # mostra agrupamento antes do resto
132
+ if grouped?
133
+ [@report_params[:group][:title].to_s] + super(csv)
134
+ else
135
+ super(csv)
136
+ end
137
+ end
138
+
139
+ def render_line_csv(row, csv)
140
+ # mostra agrupamento antes do resto
141
+ if grouped?
142
+ [get_raw_field_value(row, @report_params[:group][:field].to_s)] + super(row,csv)
143
+ else
144
+ super(row, csv)
145
+ end
146
+ end
147
+
129
148
  end
130
149
  end
metadata CHANGED
@@ -1,93 +1,121 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: prawn_report
3
- version: !ruby/object:Gem::Version
4
- version: 1.9.18
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 9
9
+ - 21
10
+ version: 1.9.21
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Ricardo Acras
8
14
  - Egon Hilgenstieler
9
15
  - Juliano Andrade
10
- - Wellington Torrejais
16
+ - Vinicius Cubas Brand
17
+ - Wellington Torrejais da Silva
11
18
  autorequire:
12
19
  bindir: bin
13
20
  cert_chain: []
14
- date: 2016-10-26 00:00:00.000000000 Z
21
+
22
+ date: 2016-11-23 00:00:00 -02:00
23
+ default_executable:
15
24
  dependencies: []
16
- description: Prawn report is a class repository wich uses prawn gem capabilities to
17
- generate PDF documents in order to make it easy to create real life reports.
18
- email: ricardo@acras.com.br julianoch@gmail.com egon@acras.com.br wtds.trabalho@gmail.com
19
- desenv2@labplus.com.br
25
+
26
+ description: Prawn report is a class repository wich uses prawn gem capabilities to generate PDF documents in order to make it easy to create real life reports.
27
+ email: ricardo@acras.com.br julianoch@gmail.com egon@acras.com.br viniciuscb@gmail.com wtds.trabalho@gmail.com desenv2@labplus.com.br
20
28
  executables: []
29
+
21
30
  extensions: []
31
+
22
32
  extra_rdoc_files: []
23
- files:
24
- - app/controllers/ac_filter_defs_controller.rb
25
- - app/controllers/custom_generate_report_controller.rb
26
- - app/controllers/generate_report_controller.rb
27
- - app/controllers/report_templates_controller.rb
28
- - app/models/ac_filter.rb
29
- - app/models/ac_filter_def.rb
30
- - app/models/ac_filter_option.rb
31
- - app/models/report_template.rb
33
+
34
+ files:
32
35
  - lib/ac_filters_utils.rb
33
- - lib/active_record_helpers.rb
34
- - lib/bands/band.rb
35
- - lib/bands/footer_band.rb
36
- - lib/bands/header_band.rb
37
- - lib/bands/summary_band.rb
36
+ - lib/prawn_report/engine.rb
38
37
  - lib/custom_report_controller.rb
39
- - lib/generators/prawn_report/install/install_generator.rb
40
- - lib/generators/prawn_report/install/templates/20120108210141_create_prawn_report_catalogs.rb
41
- - lib/generators/prawn_report/install/templates/20120124012653_add_filter_defs.rb
42
- - lib/generators/prawn_report/install/templates/20120209231821_add_filters_to_reports.rb
43
- - lib/generators/prawn_report/install/templates/20120222021437_add_order_to_filter_def.rb
44
- - lib/generators/prawn_report/install/templates/20120222025632_add_select_sql.rb
45
- - lib/generators/prawn_report/install/templates/20120222030526_create_ac_filter_joins.rb
38
+ - lib/report_info.rb
39
+ - lib/report.rb
40
+ - lib/prawn_report.rb
41
+ - lib/generators/prawn_report/install/templates/20140529153300_add_description_to_report_template.rb
46
42
  - lib/generators/prawn_report/install/templates/20120222122507_add_serialization_params_to_report.rb
47
- - lib/generators/prawn_report/install/templates/20120222134101_create_ac_filter_includes.rb
48
- - lib/generators/prawn_report/install/templates/20120222150029_change_includes_and_joins_to_hash.rb
43
+ - lib/generators/prawn_report/install/templates/20120222030526_create_ac_filter_joins.rb
44
+ - lib/generators/prawn_report/install/templates/20131107172133_add_excluir_to_report_template.rb
45
+ - lib/generators/prawn_report/install/templates/20120323124446_add_fields_to_filter.rb
46
+ - lib/generators/prawn_report/install/templates/20120124012653_add_filter_defs.rb
47
+ - lib/generators/prawn_report/install/templates/20120303104431_change_filled_criteria_unfilled_criteria.rb
49
48
  - lib/generators/prawn_report/install/templates/20120229134810_add_group_to_filter_def.rb
50
- - lib/generators/prawn_report/install/templates/20120229194434_add_system_criteria_to_ac_filter.rb
49
+ - lib/generators/prawn_report/install/templates/20120222134101_create_ac_filter_includes.rb
50
+ - lib/generators/prawn_report/install/templates/20130122101313_add_sql_query_to_ac_filter_def.rb
51
51
  - lib/generators/prawn_report/install/templates/20120301063031_change_select_sql.rb
52
- - lib/generators/prawn_report/install/templates/20120303104431_change_filled_criteria_unfilled_criteria.rb
53
52
  - lib/generators/prawn_report/install/templates/20120316162712_add_filled_criteria_to_options.rb
54
- - lib/generators/prawn_report/install/templates/20120323124446_add_fields_to_filter.rb
55
- - lib/generators/prawn_report/install/templates/20130122101313_add_sql_query_to_ac_filter_def.rb
56
- - lib/generators/prawn_report/install/templates/20131107172133_add_excluir_to_report_template.rb
57
- - lib/prawn_report.rb
58
- - lib/prawn_report/engine.rb
59
- - lib/prawn_report/version.rb
53
+ - lib/generators/prawn_report/install/templates/20120108210141_create_prawn_report_catalogs.rb
54
+ - lib/generators/prawn_report/install/templates/20120222025632_add_select_sql.rb
55
+ - lib/generators/prawn_report/install/templates/20120222021437_add_order_to_filter_def.rb
56
+ - lib/generators/prawn_report/install/templates/20120222150029_change_includes_and_joins_to_hash.rb
57
+ - lib/generators/prawn_report/install/templates/20120209231821_add_filters_to_reports.rb
58
+ - lib/generators/prawn_report/install/templates/20120229194434_add_system_criteria_to_ac_filter.rb
59
+ - lib/generators/prawn_report/install/install_generator.rb
60
+ - lib/active_record_helpers.rb
61
+ - lib/bands/footer_band.rb
62
+ - lib/bands/header_band.rb
63
+ - lib/bands/summary_band.rb
64
+ - lib/bands/band.rb
60
65
  - lib/prawn_report_seeds.rb
61
- - lib/report.rb
62
66
  - lib/report_helpers.rb
63
- - lib/report_info.rb
64
- - repo/bands/footers/footer_001.rb
65
- - repo/bands/headers/header_001.rb
66
- - repo/bands/headers/header_002.rb
67
67
  - repo/reports/column_group.rb
68
- - repo/reports/listing.rb
69
68
  - repo/reports/simple_listing.rb
69
+ - repo/reports/listing.rb
70
+ - repo/bands/headers/header_002.rb
71
+ - repo/bands/headers/header_001.rb
72
+ - repo/bands/footers/footer_001.rb
73
+ - app/controllers/custom_generate_report_controller.rb
74
+ - app/controllers/report_templates_controller.rb
75
+ - app/controllers/generate_report_controller.rb
76
+ - app/controllers/ac_filter_defs_controller.rb
77
+ - app/serializers/ac_filter_def_serializer.rb
78
+ - app/serializers/ac_filter_option_serializer.rb
79
+ - app/serializers/ac_filter_serializer.rb
80
+ - app/serializers/report_template_serializer.rb
81
+ - app/serializers/report_template_basic_serializer.rb
82
+ - app/models/ac_filter_option.rb
83
+ - app/models/ac_filter_def.rb
84
+ - app/models/ac_filter.rb
85
+ - app/models/report_template.rb
86
+ has_rdoc: true
70
87
  homepage: http://www.acras.com.br/
71
88
  licenses: []
72
- metadata: {}
89
+
73
90
  post_install_message:
74
91
  rdoc_options: []
75
- require_paths:
92
+
93
+ require_paths:
76
94
  - lib
77
- required_ruby_version: !ruby/object:Gem::Requirement
78
- requirements:
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
79
98
  - - ">="
80
- - !ruby/object:Gem::Version
81
- version: '0'
82
- required_rubygems_version: !ruby/object:Gem::Requirement
83
- requirements:
99
+ - !ruby/object:Gem::Version
100
+ hash: 3
101
+ segments:
102
+ - 0
103
+ version: "0"
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
84
107
  - - ">="
85
- - !ruby/object:Gem::Version
86
- version: '0'
108
+ - !ruby/object:Gem::Version
109
+ hash: 3
110
+ segments:
111
+ - 0
112
+ version: "0"
87
113
  requirements: []
114
+
88
115
  rubyforge_project:
89
- rubygems_version: 2.5.1
116
+ rubygems_version: 1.6.2
90
117
  signing_key:
91
- specification_version: 4
118
+ specification_version: 3
92
119
  summary: Prawn Report makes it easy to create PDF reports.
93
120
  test_files: []
121
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 242507f2c7f5d85e05fe01212b988cb15610b95d
4
- data.tar.gz: 9476a352688d8adeb402050c9708475184ba751b
5
- SHA512:
6
- metadata.gz: 511e79d5163022e0d3f592402cf6b642941f8583c6f63d3af3d9db77ef9a643e370e10e5000abc6ee3168672fd71322e283a5f07df4d2c72fe918034ee4e5da1
7
- data.tar.gz: 9a95c4394ff843c53ae3af12365deccd932e9c3991e69303d6b6f6fc6b62faad605f17581ef8a4882caccbb7c289c81ab39e0f0cbd7b4dfc3fa480e13ebde67b
@@ -1,3 +0,0 @@
1
- module PrawnReport
2
- VERSION = "0.1.0"
3
- end