class Allocator
  def self.perform(school_id)
    school = School.find(school_id)
    subcategories = school.accounting_subcategories
    families = school.families
      .joins(:accounting_transaction_details)
      .where(accounting_transactions: { type: 'Accounting::Decrease' })
      .where(accounting_transaction_details: { closed: false })
      .distinct

    families.each do |family|
      subcategories.each do |subcategory|
        AllocationJob.perform_now(family, subcategory)
      end
    end
  end
end
