foodsoft/app/lib/apple_bar.rb
Philipp Rothmann fb2b4d8a8a chore: rubocop
chore: fix api test conventions

chore: rubocop -A spec/

chore: more rubocop -A

fix failing test

rubocop fixes

removes helper methods that are in my opinion dead code

more rubocop fixes

rubocop -a --auto-gen-config
2023-06-09 17:35:05 +02:00

43 lines
1 KiB
Ruby

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