Class: Centra::Rule::OrderCalculator
- Inherits:
-
Object
- Object
- Centra::Rule::OrderCalculator
- Defined in:
- lib/centra/rule/order_calculator.rb
Instance Method Summary collapse
- #average_delay ⇒ Object
- #average_orders_per_email ⇒ Object
- #centra_orders ⇒ Object
- #email_delays ⇒ Object
- #email_orders ⇒ Object
-
#initialize(order_matcher) ⇒ OrderCalculator
constructor
A new instance of OrderCalculator.
- #matched ⇒ Object
- #miss_percentage ⇒ Object
- #missing ⇒ Object
- #missing_total_order_value_mkr_sek ⇒ Object
- #total_order_value_mkr_sek ⇒ Object
- #total_pcs ⇒ Object
Constructor Details
#initialize(order_matcher) ⇒ OrderCalculator
Returns a new instance of OrderCalculator.
4 5 6 7 8 9 10 11 |
# File 'lib/centra/rule/order_calculator.rb', line 4 def initialize(order_matcher) @order_matcher = order_matcher @email_orders = nil @centra_orders = nil @email_delays = nil @average_delay = nil end |
Instance Method Details
#average_delay ⇒ Object
51 52 53 |
# File 'lib/centra/rule/order_calculator.rb', line 51 def average_delay @average_delay ||= email_delays.sum.to_f / matched.length end |
#average_orders_per_email ⇒ Object
55 56 57 |
# File 'lib/centra/rule/order_calculator.rb', line 55 def average_orders_per_email centra_orders.length / email_orders.length.to_f end |
#centra_orders ⇒ Object
25 26 27 |
# File 'lib/centra/rule/order_calculator.rb', line 25 def centra_orders @centra_orders ||= @order_matcher.data.centra_orders end |
#email_delays ⇒ Object
33 34 35 36 37 |
# File 'lib/centra/rule/order_calculator.rb', line 33 def email_delays @email_delays ||= matched.map do |match| match[:centra].delay_in_minutes(match[:rule]) end end |
#email_orders ⇒ Object
21 22 23 |
# File 'lib/centra/rule/order_calculator.rb', line 21 def email_orders @email_orders ||= @order_matcher.data.email_orders end |
#matched ⇒ Object
17 18 19 |
# File 'lib/centra/rule/order_calculator.rb', line 17 def matched @order_matcher.matched end |
#miss_percentage ⇒ Object
29 30 31 |
# File 'lib/centra/rule/order_calculator.rb', line 29 def miss_percentage (missing.length.to_f / centra_orders.length) * 100 end |
#missing ⇒ Object
13 14 15 |
# File 'lib/centra/rule/order_calculator.rb', line 13 def missing @order_matcher.missing end |
#missing_total_order_value_mkr_sek ⇒ Object
47 48 49 |
# File 'lib/centra/rule/order_calculator.rb', line 47 def missing_total_order_value_mkr_sek @missing_total_order_value_mkr_sek ||= missing.map(&:total_order_value_sek).sum / 1_000_000 end |
#total_order_value_mkr_sek ⇒ Object
43 44 45 |
# File 'lib/centra/rule/order_calculator.rb', line 43 def total_order_value_mkr_sek @total_order_value_mkr_sek ||= centra_orders.map(&:total_order_value_sek).sum / 1_000_000 end |
#total_pcs ⇒ Object
39 40 41 |
# File 'lib/centra/rule/order_calculator.rb', line 39 def total_pcs @total_pcs ||= centra_orders.map(&:pcs).sum end |