class Centra::Rule::OrderCalculator

Public Class Methods

new(order_matcher) click to toggle source
# 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

Public Instance Methods

average_delay() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 25
def centra_orders
  @centra_orders ||= @order_matcher.data.centra_orders
end
email_delays() click to toggle source
# 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() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 21
def email_orders
  @email_orders ||= @order_matcher.data.email_orders
end
matched() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 17
def matched
  @order_matcher.matched
end
miss_percentage() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 29
def miss_percentage
  (missing.length.to_f / centra_orders.length) * 100
end
missing() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 13
def missing
  @order_matcher.missing
end
missing_total_order_value_mkr_sek() click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# File lib/centra/rule/order_calculator.rb, line 39
def total_pcs
  @total_pcs ||= centra_orders.map(&:pcs).sum
end