BathHacked/energy-sparks

View on GitHub
app/services/schools/bill_request_service.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Schools
  class BillRequestService
    def initialize(school)
      @school = school
    end

    def users
      users = @school.all_adult_school_users
      users += @school.school_group.users.group_admin if @school.school_group
      # sort by staff role, with missing staff roles last in the list
      users.sort_by { |u| [u.staff_role ? 0 : 1, u.staff_role] }
    end

    def request_documentation!(users, meters = [])
      electricity_meters = meters.select(&:electricity?)
      gas_meters = meters.select(&:gas?)
      BillRequestMailer.with_user_locales(users: users, school: @school, electricity_meters: electricity_meters, gas_meters: gas_meters) { |mailer| mailer.request_bill.deliver_now }
      @school.update!(bill_requested: true, bill_requested_at: DateTime.now)
    end
  end
end