Module: Models::EmployeeSelectOptions

Extended by:
ActiveSupport::Concern
Included in:
Employee
Defined in:
app/concerns/models/employee_select_options.rb

Overview

Select-option builders for Employee dropdowns.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#manager_select_optionsArray<Array(String, Integer)>

Builds select options of active employees this employee could manage:
everyone except self and current descendants.

Returns:

  • (Array<Array(String, Integer)>)

    pairs of full name and employee id



178
179
180
181
182
183
184
# File 'app/concerns/models/employee_select_options.rb', line 178

def manager_select_options
  Employee.active_employees
          .where('parties.id NOT IN (?) ', [id.to_i] + descendants.map(&:id))
          .select('parties.id, parties.full_name')
          .sorted
          .map { |e| [e.full_name, e.id] }
end

#manages_and_self_select_optionsArray<Array(String, Integer)>

Builds select options of this employee plus everyone they manage.

Returns:

  • (Array<Array(String, Integer)>)

    pairs of full name and employee id



189
190
191
# File 'app/concerns/models/employee_select_options.rb', line 189

def manages_and_self_select_options
  manages_and_self.select('parties.id, parties.full_name').sorted.map { |e| [e.full_name, e.id] }
end