prawn_report 1.9.18 → 1.9.21

Sign up to get free protection for your applications and to get access to all the features.
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