prawn_report 1.9.21 → 1.9.22

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 (36) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/ac_filter_defs_controller.rb +16 -17
  3. data/app/controllers/custom_generate_report_controller.rb +18 -18
  4. data/app/controllers/generate_report_controller.rb +24 -24
  5. data/app/controllers/report_templates_controller.rb +40 -48
  6. data/app/models/ac_filter.rb +15 -15
  7. data/app/models/ac_filter_def.rb +38 -40
  8. data/app/models/ac_filter_option.rb +5 -5
  9. data/app/models/report_template.rb +22 -27
  10. data/lib/ac_filters_utils.rb +187 -189
  11. data/lib/active_record_helpers.rb +218 -219
  12. data/lib/bands/band.rb +23 -23
  13. data/lib/bands/footer_band.rb +7 -7
  14. data/lib/bands/header_band.rb +9 -9
  15. data/lib/bands/summary_band.rb +7 -7
  16. data/lib/custom_report_controller.rb +48 -60
  17. data/lib/generators/prawn_report/install/templates/20131107172133_add_excluir_to_report_template.rb +0 -1
  18. data/lib/prawn_report.rb +21 -21
  19. data/lib/prawn_report/version.rb +3 -0
  20. data/lib/prawn_report_seeds.rb +45 -59
  21. data/lib/report.rb +189 -195
  22. data/lib/report_helpers.rb +82 -83
  23. data/lib/report_info.rb +27 -27
  24. data/repo/bands/footers/footer_001.rb +20 -20
  25. data/repo/bands/headers/header_001.rb +61 -61
  26. data/repo/bands/headers/header_002.rb +31 -31
  27. data/repo/reports/column_group.rb +4 -3
  28. data/repo/reports/listing.rb +1 -59
  29. data/repo/reports/simple_listing.rb +130 -149
  30. metadata +58 -90
  31. data/app/serializers/ac_filter_def_serializer.rb +0 -10
  32. data/app/serializers/ac_filter_option_serializer.rb +0 -7
  33. data/app/serializers/ac_filter_serializer.rb +0 -9
  34. data/app/serializers/report_template_basic_serializer.rb +0 -4
  35. data/app/serializers/report_template_serializer.rb +0 -9
  36. data/lib/generators/prawn_report/install/templates/20140529153300_add_description_to_report_template.rb +0 -6
@@ -27,8 +27,9 @@ module PrawnReport
27
27
  @grouping_context_field = report_params[:grouping_context_field]
28
28
  end
29
29
 
30
- def before_draw
31
- @data = traverse_data(@data)
30
+ def draw(data)
31
+ data = traverse_data(data)
32
+ super(data)
32
33
  end
33
34
 
34
35
  protected
@@ -54,4 +55,4 @@ module PrawnReport
54
55
 
55
56
 
56
57
  end
57
- end
58
+ end
@@ -4,7 +4,6 @@ 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'
8
7
 
9
8
  module PrawnReport
10
9
  class Listing < Report
@@ -141,62 +140,5 @@ module PrawnReport
141
140
  render_multi_column_title
142
141
  end
143
142
  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
200
143
  end
201
-
202
- end
144
+ end
@@ -1,149 +1,130 @@
1
- #coding: utf-8
2
-
3
- require File.expand_path(File.dirname(__FILE__) + "/listing.rb")
4
- require 'csv'
5
-
6
- module PrawnReport
7
- #Generates a listing report with or without multiple columns.
8
- #
9
- #==Creating a SimpleListing Report
10
- #To create a simple listing report you must inherit from PrawnReport::SimpleListing class
11
- #and fill some parameters. The +report_name+ parameter is mandatory. The other parameters depends
12
- #if you want a single or multi column listing.
13
- #
14
- #The parameters are filled setting the instance variable +params+ hash in initialize after calling
15
- #super.
16
- #
17
- #==Single column listing
18
- #For single column listings you must fill the +field+ parameter and, optionally, the +title+
19
- #parameter. Like the code bellow
20
- # class ProductTypeListing < PrawnReport::SimpleListing
21
- # def initialize
22
- # super
23
- # @report_params = {
24
- # :report_name => 'Product Type Listing',
25
- # :field => 'name',
26
- # :title => 'Name'
27
- # }
28
- # end
29
- # end
30
- #
31
- #==Multiple column listing
32
- #To have a multiple column listing you must fill the +columns+ hash inside +params+ hash. Each column
33
- #has the following properties:
34
- #* +name+: The name of the field
35
- #* +title+: The title to be rendered above the first row
36
- #* +width+: The width of the column. Default value is 60
37
- #
38
- #The code belloow shows a listing of people with 3 columns
39
- #
40
- # class PeopleListing < PrawnReport::SimpleListing
41
- # def initialize
42
- # super
43
- # @report_params = {
44
- # :report_name => 'People Listing',
45
- # :columns => [
46
- # {:name => 'name', :title => 'Name', :width => 200},
47
- # {:name => 'age', :title => 'Age', :width => 30},
48
- # {:name => 'phone_number', :title => 'Phone #', :width => 100}
49
- # ]
50
- # }
51
- # end
52
- # end
53
- #
54
- #==Default behaviour
55
- #The listing bellow shows the default behaviour of this class. This is not changeable at this
56
- #momment. Any of this behaviour can become changeable in future versions of this gem.
57
- #
58
- #* Font: size 12. normal. Times-Roman
59
- #* Row background color: Alternate between white and gray (cccccc)
60
- #* First page Header class: PrawnReport::Header001
61
- #* Other pages Header class: PrawnReport::Header002
62
- #* Footer class: PrawnReport::Footer001
63
-
64
-
65
- class SimpleListing < Listing
66
-
67
- attr_reader :grouping_info
68
-
69
- def initialize(report_params = {})
70
- super(report_params)
71
- @grouping_info = {:last_group_value => nil,
72
- :groups_running => false}
73
- end
74
-
75
- def new_page(print_titles = true)
76
- super(print_titles)
77
- draw_group_header if grouped? and @report_params[:group][:header_reprint_new_page] and !last_group_summary?
78
- if print_titles
79
- draw_column_titles unless (!draw_group_column_titles? && !@printing_internal) || last_group_summary?
80
- end
81
- end
82
-
83
- protected
84
-
85
- def run_groups(row)
86
- group_value = get_raw_field_value(row, params[:group][:field])
87
- start_new_group = !@grouping_info[:groups_running]
88
- start_new_group |= group_value != @grouping_info[:last_group_value]
89
- if start_new_group
90
- if(@grouping_info[:groups_running] &&
91
- @grouping_info[:last_group_value] != group_value)
92
- draw_group_summary
93
- new_page(false) if params[:group][:new_page]
94
- end
95
- @grouping_info[:last_group_value] = group_value
96
- @grouping_info[:groups_running] = true
97
- draw_group_header
98
- draw_column_titles if draw_group_column_titles?
99
- reset_group_totals
100
- end
101
- end
102
-
103
- def grouped?
104
- params[:group]
105
- end
106
-
107
- def draw_group_column_titles?
108
- ( params[:group].nil? ? false : (params[:group][:print_group_column_title].nil? ? true :
109
- params[:group][:print_group_column_title]))
110
- end
111
-
112
- def last_group_summary?
113
- @data_end
114
- end
115
-
116
- def before_draw_lines
117
- super
118
- draw_column_titles unless draw_group_column_titles?
119
- end
120
-
121
- def after_draw_lines
122
- draw_group_summary if @data[@detail_name].count > 0
123
- end
124
-
125
- def before_render_line
126
- super
127
- run_groups(@current_row) if grouped?
128
- end
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
-
148
- end
149
- end
1
+ #coding: utf-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + "/listing.rb")
4
+
5
+ module PrawnReport
6
+ #Generates a listing report with or without multiple columns.
7
+ #
8
+ #==Creating a SimpleListing Report
9
+ #To create a simple listing report you must inherit from PrawnReport::SimpleListing class
10
+ #and fill some parameters. The +report_name+ parameter is mandatory. The other parameters depends
11
+ #if you want a single or multi column listing.
12
+ #
13
+ #The parameters are filled setting the instance variable +params+ hash in initialize after calling
14
+ #super.
15
+ #
16
+ #==Single column listing
17
+ #For single column listings you must fill the +field+ parameter and, optionally, the +title+
18
+ #parameter. Like the code bellow
19
+ # class ProductTypeListing < PrawnReport::SimpleListing
20
+ # def initialize
21
+ # super
22
+ # @report_params = {
23
+ # :report_name => 'Product Type Listing',
24
+ # :field => 'name',
25
+ # :title => 'Name'
26
+ # }
27
+ # end
28
+ # end
29
+ #
30
+ #==Multiple column listing
31
+ #To have a multiple column listing you must fill the +columns+ hash inside +params+ hash. Each column
32
+ #has the following properties:
33
+ #* +name+: The name of the field
34
+ #* +title+: The title to be rendered above the first row
35
+ #* +width+: The width of the column. Default value is 60
36
+ #
37
+ #The code belloow shows a listing of people with 3 columns
38
+ #
39
+ # class PeopleListing < PrawnReport::SimpleListing
40
+ # def initialize
41
+ # super
42
+ # @report_params = {
43
+ # :report_name => 'People Listing',
44
+ # :columns => [
45
+ # {:name => 'name', :title => 'Name', :width => 200},
46
+ # {:name => 'age', :title => 'Age', :width => 30},
47
+ # {:name => 'phone_number', :title => 'Phone #', :width => 100}
48
+ # ]
49
+ # }
50
+ # end
51
+ # end
52
+ #
53
+ #==Default behaviour
54
+ #The listing bellow shows the default behaviour of this class. This is not changeable at this
55
+ #momment. Any of this behaviour can become changeable in future versions of this gem.
56
+ #
57
+ #* Font: size 12. normal. Times-Roman
58
+ #* Row background color: Alternate between white and gray (cccccc)
59
+ #* First page Header class: PrawnReport::Header001
60
+ #* Other pages Header class: PrawnReport::Header002
61
+ #* Footer class: PrawnReport::Footer001
62
+
63
+
64
+ class SimpleListing < Listing
65
+
66
+ attr_reader :grouping_info
67
+
68
+ def initialize(report_params = {})
69
+ super(report_params)
70
+ @grouping_info = {:last_group_value => nil,
71
+ :groups_running => false}
72
+ end
73
+
74
+ def new_page(print_titles = true)
75
+ super(print_titles)
76
+ draw_group_header if grouped? and @report_params[:group][:header_reprint_new_page] and !last_group_summary?
77
+ if print_titles
78
+ draw_column_titles unless (!draw_group_column_titles? && !@printing_internal) || last_group_summary?
79
+ end
80
+ end
81
+
82
+ protected
83
+
84
+ def run_groups(row)
85
+ group_value = get_raw_field_value(row, params[:group][:field])
86
+ start_new_group = !@grouping_info[:groups_running]
87
+ start_new_group |= group_value != @grouping_info[:last_group_value]
88
+ if start_new_group
89
+ if(@grouping_info[:groups_running] &&
90
+ @grouping_info[:last_group_value] != group_value)
91
+ draw_group_summary
92
+ new_page(false) if params[:group][:new_page]
93
+ end
94
+ @grouping_info[:last_group_value] = group_value
95
+ @grouping_info[:groups_running] = true
96
+ draw_group_header
97
+ draw_column_titles if draw_group_column_titles?
98
+ reset_group_totals
99
+ end
100
+ end
101
+
102
+ def grouped?
103
+ params[:group]
104
+ end
105
+
106
+ def draw_group_column_titles?
107
+ ( params[:group].nil? ? false : (params[:group][:print_group_column_title].nil? ? true :
108
+ params[:group][:print_group_column_title]))
109
+ end
110
+
111
+ def last_group_summary?
112
+ @data_end
113
+ end
114
+
115
+ def before_draw_lines
116
+ super
117
+ draw_column_titles unless draw_group_column_titles?
118
+ end
119
+
120
+ def after_draw_lines
121
+ draw_group_summary if @data[@detail_name].count > 0
122
+ end
123
+
124
+ def before_render_line
125
+ super
126
+ run_groups(@current_row) if grouped?
127
+ end
128
+
129
+ end
130
+ end
metadata CHANGED
@@ -1,121 +1,89 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: prawn_report
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 1
8
- - 9
9
- - 21
10
- version: 1.9.21
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.9.22
11
5
  platform: ruby
12
- authors:
13
- - Ricardo Acras
14
- - Egon Hilgenstieler
15
- - Juliano Andrade
16
- - Vinicius Cubas Brand
17
- - Wellington Torrejais da Silva
6
+ authors:
7
+ - Ricardo AcrasEgon HilgenstielerJuliano AndradeWellington Torrejais
18
8
  autorequire:
19
9
  bindir: bin
20
10
  cert_chain: []
21
-
22
- date: 2016-11-23 00:00:00 -02:00
23
- default_executable:
11
+ date: 2018-06-18 00:00:00.000000000 Z
24
12
  dependencies: []
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
13
+ description: Prawn report is a class repository wich uses prawn gem capabilities to
14
+ generate PDF documents in order to make it easy to create real life reports.
15
+ email: ricardo@acras.com.br julianoch@gmail.com egon@acras.com.br wtds.trabalho@gmail.com
28
16
  executables: []
29
-
30
17
  extensions: []
31
-
32
18
  extra_rdoc_files: []
33
-
34
- files:
19
+ files:
20
+ - app/controllers/ac_filter_defs_controller.rb
21
+ - app/controllers/custom_generate_report_controller.rb
22
+ - app/controllers/generate_report_controller.rb
23
+ - app/controllers/report_templates_controller.rb
24
+ - app/models/ac_filter.rb
25
+ - app/models/ac_filter_def.rb
26
+ - app/models/ac_filter_option.rb
27
+ - app/models/report_template.rb
35
28
  - lib/ac_filters_utils.rb
36
- - lib/prawn_report/engine.rb
29
+ - lib/active_record_helpers.rb
30
+ - lib/bands/band.rb
31
+ - lib/bands/footer_band.rb
32
+ - lib/bands/header_band.rb
33
+ - lib/bands/summary_band.rb
37
34
  - lib/custom_report_controller.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
42
- - lib/generators/prawn_report/install/templates/20120222122507_add_serialization_params_to_report.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
48
- - lib/generators/prawn_report/install/templates/20120229134810_add_group_to_filter_def.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
- - lib/generators/prawn_report/install/templates/20120301063031_change_select_sql.rb
52
- - lib/generators/prawn_report/install/templates/20120316162712_add_filled_criteria_to_options.rb
35
+ - lib/generators/prawn_report/install/install_generator.rb
53
36
  - lib/generators/prawn_report/install/templates/20120108210141_create_prawn_report_catalogs.rb
54
- - lib/generators/prawn_report/install/templates/20120222025632_add_select_sql.rb
37
+ - lib/generators/prawn_report/install/templates/20120124012653_add_filter_defs.rb
38
+ - lib/generators/prawn_report/install/templates/20120209231821_add_filters_to_reports.rb
55
39
  - lib/generators/prawn_report/install/templates/20120222021437_add_order_to_filter_def.rb
40
+ - lib/generators/prawn_report/install/templates/20120222025632_add_select_sql.rb
41
+ - lib/generators/prawn_report/install/templates/20120222030526_create_ac_filter_joins.rb
42
+ - lib/generators/prawn_report/install/templates/20120222122507_add_serialization_params_to_report.rb
43
+ - lib/generators/prawn_report/install/templates/20120222134101_create_ac_filter_includes.rb
56
44
  - 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
45
+ - lib/generators/prawn_report/install/templates/20120229134810_add_group_to_filter_def.rb
58
46
  - 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
47
+ - lib/generators/prawn_report/install/templates/20120301063031_change_select_sql.rb
48
+ - lib/generators/prawn_report/install/templates/20120303104431_change_filled_criteria_unfilled_criteria.rb
49
+ - lib/generators/prawn_report/install/templates/20120316162712_add_filled_criteria_to_options.rb
50
+ - lib/generators/prawn_report/install/templates/20120323124446_add_fields_to_filter.rb
51
+ - lib/generators/prawn_report/install/templates/20130122101313_add_sql_query_to_ac_filter_def.rb
52
+ - lib/generators/prawn_report/install/templates/20131107172133_add_excluir_to_report_template.rb
53
+ - lib/prawn_report.rb
54
+ - lib/prawn_report/engine.rb
55
+ - lib/prawn_report/version.rb
65
56
  - lib/prawn_report_seeds.rb
57
+ - lib/report.rb
66
58
  - lib/report_helpers.rb
59
+ - lib/report_info.rb
60
+ - repo/bands/footers/footer_001.rb
61
+ - repo/bands/headers/header_001.rb
62
+ - repo/bands/headers/header_002.rb
67
63
  - repo/reports/column_group.rb
68
- - repo/reports/simple_listing.rb
69
64
  - 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
65
+ - repo/reports/simple_listing.rb
87
66
  homepage: http://www.acras.com.br/
88
67
  licenses: []
89
-
68
+ metadata: {}
90
69
  post_install_message:
91
70
  rdoc_options: []
92
-
93
- require_paths:
71
+ require_paths:
94
72
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
96
- none: false
97
- requirements:
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
98
75
  - - ">="
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:
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
107
80
  - - ">="
108
- - !ruby/object:Gem::Version
109
- hash: 3
110
- segments:
111
- - 0
112
- version: "0"
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
113
83
  requirements: []
114
-
115
84
  rubyforge_project:
116
- rubygems_version: 1.6.2
85
+ rubygems_version: 2.7.6
117
86
  signing_key:
118
- specification_version: 3
87
+ specification_version: 4
119
88
  summary: Prawn Report makes it easy to create PDF reports.
120
89
  test_files: []
121
-