Class: Crm::EmployeeGoalPresenter

Inherits:
BasePresenter show all
Defined in:
app/presenters/crm/employee_goal_presenter.rb

Overview

Presenter: employee goal presenter.

Instance Attribute Summary

Attributes inherited from BasePresenter

#current_account, #options, #url_helper

Instance Method Summary collapse

Methods inherited from BasePresenter

#initialize

Methods inherited from BasePresenter

#can?, #capture, #concat, #content_tag, #fa_icon, #h, #initialize, #link_to, #number_to_currency, #present, presents, #r, #safe_present, #simple_format, #u

Constructor Details

This class inherits a constructor from Crm::BasePresenter

Instance Method Details



69
70
71
72
73
# File 'app/presenters/crm/employee_goal_presenter.rb', line 69

def delete_link
  return unless can?(:destroy, r)

  link_to(fa_icon('trash'), r, data: { turbo_method: :delete, turbo_confirm: "Are you sure want to delete this review?" })
end

#departmentObject



48
49
50
# File 'app/presenters/crm/employee_goal_presenter.rb', line 48

def department
  r.employee_review&.employee_record&.department
end

#display_nameObject



75
76
77
# File 'app/presenters/crm/employee_goal_presenter.rb', line 75

def display_name
  fa_icon('info-circle', text: r.name, title: r.description)
end

#due_dateObject



37
38
39
# File 'app/presenters/crm/employee_goal_presenter.rb', line 37

def due_date
  h.render_date(r.due_date)
end


6
7
8
9
10
11
12
# File 'app/presenters/crm/employee_goal_presenter.rb', line 6

def edit_link
  return unless can?(:update, r)

  link_to(fa_icon('pen-square', text: 'Edit/Review'),
            h.edit_employee_goal_path(r),
            class: "btn btn-#{r.defined? ? 'info' : 'default'}")
end

#employeeObject



52
53
54
# File 'app/presenters/crm/employee_goal_presenter.rb', line 52

def employee
  r.employee_review&.employee_record&.party
end


56
57
58
59
60
# File 'app/presenters/crm/employee_goal_presenter.rb', line 56

def employee_goal_link
  return r.name unless h.can?(:read, r)

  link_to r.name, h.employee_goal_path(r)
end

#employee_goal_state_label(options = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/presenters/crm/employee_goal_presenter.rb', line 14

def employee_goal_state_label(options = {})
  case r.state.to_sym
  when :reached
    css_class = 'bg-success'
  when :missed
    css_class = 'bg-danger'
  when :cancelled
    css_class = 'badge-default'
  end
  css_class ||= 'bg-info'

  options[:style] ||= 'font-size: 1em'
  (:span, r.human_state_name.titleize, class: "badge #{css_class}", **options)
end


41
42
43
44
45
46
# File 'app/presenters/crm/employee_goal_presenter.rb', line 41

def employee_link
  return unless employee
  return employee.full_name unless h.can?(:read, employee)

  link_to employee.full_name, h.employee_path(employee)
end


62
63
64
65
66
67
# File 'app/presenters/crm/employee_goal_presenter.rb', line 62

def employee_review_link
  return unless r.employee_review
  return unless h.can?(:read, r.employee_review)

  link_to r.employee_review.review_name, h.employee_review_path(r.employee_review)
end

#reward_infoObject



29
30
31
32
33
34
35
# File 'app/presenters/crm/employee_goal_presenter.rb', line 29

def reward_info
  capture do
    concat number_to_currency(r.earned_reward || 0.0)
    concat " / "
    concat number_to_currency(r.potential_reward || 0.0)
  end
end