Module: HasCompanyOnboarding

Extended by:
ActiveSupport::Concern
Included in:
Company
Defined in:
app/models/concerns/has_company_onboarding.rb

Instance Method Summary collapse

Instance Method Details

#agree_to_agreement(erp_user_id:, ip_address:, app_mode:, agreement_date: Time.zone.now) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/models/concerns/has_company_onboarding.rb', line 15

def agree_to_agreement(
  erp_user_id:,
  ip_address:,
  app_mode:,
  agreement_date: Time.zone.now
)
  company_agreements.create!(
    erp_user_id: erp_user_id,
    ip_address: ip_address,
    agreement_date: agreement_date,
    agreement_path: app_mode.agreement_file_path,
    agreement_type: app_mode.agreement_type
  )
end

#agreed_to_agreement?(app_mode:) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
# File 'app/models/concerns/has_company_onboarding.rb', line 30

def agreed_to_agreement?(app_mode:)
  company_agreements.exists?(
    agreement_type: app_mode.agreement_type
  )
end

#company_details?(app_mode:) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'app/models/concerns/has_company_onboarding.rb', line 36

def company_details?(app_mode:)
  app_mode.company_details_present?(company: self)
end

#onboarded?(app_mode:) ⇒ Boolean

Returns:

  • (Boolean)


4
5
6
7
# File 'app/models/concerns/has_company_onboarding.rb', line 4

def onboarded?(app_mode:)
  agreed_to_agreement?(app_mode: app_mode) &&
    company_details?(app_mode: app_mode)
end

#onboarding_path(app_mode:) ⇒ Object



9
10
11
12
13
# File 'app/models/concerns/has_company_onboarding.rb', line 9

def onboarding_path(app_mode:)
  return app_mode.agreement_path unless agreed_to_agreement?(app_mode: app_mode)

  app_mode.company_details_path unless company_details?(app_mode: app_mode)
end