Class: Report::CustomerPerformanceCommand
- Inherits:
-
BaseCommand
- Object
- BaseCommand
- Report::CustomerPerformanceCommand
- Defined in:
- app/services/report/customer_performance_command.rb
Overview
Command pattern to encapsulate parameters necessary to run a presence report
Instance Method Summary collapse
- #customer_identity_grouping? ⇒ Boolean
- #execute ⇒ Object
- #grouping_options ⇒ Object
- #period1_humanized ⇒ Object
- #period1_range ⇒ Object
- #period2_humanized ⇒ Object
- #period2_range ⇒ Object
- #periods ⇒ Object
- #success? ⇒ Boolean
Instance Method Details
#customer_identity_grouping? ⇒ Boolean
31 32 33 |
# File 'app/services/report/customer_performance_command.rb', line 31 def customer_identity_grouping? grouping.to_s == 'customer_identity' end |
#execute ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/services/report/customer_performance_command.rb', line 18 def execute return unless valid? @results = Report::CustomerPerformance.new( periods: periods, grouping: grouping.to_sym, report_groupings: report_groupings, buying_group_ids: , profile_ids: profile_ids, company_ids: company_ids, state_codes: state_codes, primary_sales_rep_ids: primary_sales_rep_ids).perform end |
#grouping_options ⇒ Object
62 63 64 |
# File 'app/services/report/customer_performance_command.rb', line 62 def Report::CustomerPerformance::GROUPINGS end |
#period1_humanized ⇒ Object
50 51 52 |
# File 'app/services/report/customer_performance_command.rb', line 50 def period1_humanized "From #{period1_range.first} until #{period1_range.last}" end |
#period1_range ⇒ Object
42 43 44 |
# File 'app/services/report/customer_performance_command.rb', line 42 def period1_range period1_gteq && period1_lteq && period1_gteq..period1_lteq end |
#period2_humanized ⇒ Object
54 55 56 |
# File 'app/services/report/customer_performance_command.rb', line 54 def period2_humanized "From #{period2_range.first} until #{period2_range.last}" end |
#period2_range ⇒ Object
46 47 48 |
# File 'app/services/report/customer_performance_command.rb', line 46 def period2_range period2_gteq && period2_lteq && period2_gteq..period2_lteq end |
#periods ⇒ Object
35 36 37 38 39 40 |
# File 'app/services/report/customer_performance_command.rb', line 35 def periods p = [] p << period1_range p << period2_range if period2_gteq.present? && period2_lteq.present? p end |
#success? ⇒ Boolean
58 59 60 |
# File 'app/services/report/customer_performance_command.rb', line 58 def success? valid? && @results.success? end |