class AppleBar attr_reader :ordergroup def initialize(ordergroup) @ordergroup = ordergroup @group_avg = ordergroup.avg_jobs_per_euro.to_f @global_avg = Ordergroup.avg_jobs_per_euro end # Show group bar in following colors: # Green if higher than 100 # Yellow if lower than 100 an higher than stop_ordering_under option value # Red if below stop_ordering_under, the ordergroup isn't allowed to participate in an order anymore def group_bar_state if apples >= 100 'success' elsif FoodsoftConfig[:stop_ordering_under].present? && (apples >= FoodsoftConfig[:stop_ordering_under]) 'warning' else 'danger' end end # Use apples as percentage, but show at least 10 percent def group_bar_width [@ordergroup.apples, 2].max end def mean_order_amount_per_job (1 / @global_avg).round rescue StandardError 0 end def apples @apples ||= @ordergroup.apples end def with_restriction? FoodsoftConfig[:stop_ordering_under].present? end end