Class: CreditApplicationsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/credit_applications_controller.rb

Overview

Controller: credit applications.

Constant Summary

Constants included from Controllers::AnalyticsEvents

Controllers::AnalyticsEvents::MAX_QUEUED_EVENTS, Controllers::AnalyticsEvents::SESSION_KEY

Constants included from Controllers::ErrorRendering

Controllers::ErrorRendering::NON_CONTENT_PATH_PREFIXES

Instance Method Summary collapse

Methods inherited from ApplicationController

#account_impersonated?, #add_to_flash, #after_sign_in_path_for, #bypass_forgery_protection?, #chat_enabled?, #cloudflare_cleared?, #default_catalog, #default_url_options, #enable_turbo_frames, #find_publication, #fix_invalid_accept_header, #init_js_utils, #is_globals_call?, #layout_by_resource, #locale_store, #redirect_to, #require_employee_for_crm, #set_base_host, #set_real_ip, #set_report_errors_for, #should_render_layout?, #skip_layout_for_turbo_frame?, #stamp_impersonation_context, #tab_frame_breakout_request?, #warmlyyours_canada_ip?, #warmlyyours_ip?, #y

Methods included from Controllers::ReturnPathHandling

#check_for_return_path, #redirect_to_return_path_or_default

Methods included from Controllers::AnalyticsEvents

#consume_queued_analytics_events, #registration_lead_type, #track_event

Methods included from Controllers::DeviceDetection

#device_detector, #is_ie?

Methods included from Controllers::SubdomainDetection

#is_crm_request?, #is_www_request?, #json_request?

Methods included from Controllers::TurboSafeRedirect

#redirect_to

Methods included from Controllers::TrackingDetection

#bot_request?, #gdpr_country?, #gdpr_country_data, #prevent_bots, #set_tracking_cookie, #track_visitor?

Methods included from Controllers::AcceleratedFileSending

#send_file_accelerated, #send_upload_accelerated

Methods included from Controllers::ErrorRendering

#excp_string, #mail_to_for_error_reporting, #render_400, #render_404, #render_406, #render_410, #render_500, #render_invalid_authenticity_token, #render_ip_spoof_error, #render_unpermitted_parameters, #safe_referer_or_fallback

Methods included from Controllers::TurnstileVerification

#load_turnstile_script_tag, #turnstile_lazy_widget, #turnstile_script_tag, #turnstile_widget, #validate_turnstile!

Methods included from Controllers::CloudflareCaching

edge_cached, #edge_cached_action?, #reset_cloudflare_cache, #set_cloudflare_cache, #skip_edge_cache!, #skip_session

Methods included from Controllers::Webpackable

#preload_webpack_fonts, #webpack_css_include, #webpack_css_url, #webpack_js_include, #wpd_is_running?

Methods included from Controllers::Localizable

#cloudflare_country_locale, #determine_request_locale, #geocoder_locale, #guest_user_locale_check, #locale_optional_www_auth_path?, #param_locale, #set_locale, #set_request_locale, #skip_localization?, #warmlyyours_ip_locale

Methods included from Controllers::Authenticable

#access_denied, #authenticate_account, #authenticate_account!, #authenticate_account_from_login_token!, #check_is_a_manager, #check_is_a_sales_manager, #check_is_an_admin, #check_is_an_employee, #check_party, #clear_mismatched_guest_user, #create_guest_user, #credentials?, #current_or_guest_user, #current_or_guest_user_id_read_only, #current_user, #devise_mapping, #fully_logged_in?, #generate_bot_id, #guest_user, #identifiable?, #init_current_user, #initialize_guest, #load_context_user, #logging_in, #resource, #resource_name, #restrict_access_for_non_employees, #scrubbed_request_path, #user_object, #warn_on_session_guest_id_leak

Methods included from UrlsHelper

#catalog_breadcrumb_links, #catalog_link, #catalog_link_for_product_line, #catalog_link_for_sku, #cms_link, #delocalized_path, #path_to_sales_product_sku, #path_to_sales_product_sku_for_product_line, #path_to_sales_product_sku_for_product_line_slug, #product_line_from_catalog_link, #protocol_neutral_url, #sanitize_external_url, #valid_external_url?

Instance Method Details

#approvevoid

This method returns an undefined value.

GET /credit_applications/:id/approve — approval confirmation screen.



107
# File 'app/controllers/credit_applications_controller.rb', line 107

def approve; end

#confirmvoid

This method returns an undefined value.

GET /credit_applications/confirm — post-submission confirmation page.



99
100
101
102
# File 'app/controllers/credit_applications_controller.rb', line 99

def confirm
  @reference = params[:reference_number]
  render layout: 'www/cms_page'
end

#createvoid

This method returns an undefined value.

POST /credit_applications — submits a new credit application.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'app/controllers/credit_applications_controller.rb', line 47

def create
  @form = CreditApplicationForm.new
  if fully_logged_in?
    customer = @context_user.customer
    existing = customer.contacts.select(&:persisted?)
    same = customer.mailing_address.present? && customer.billing_address.present? && customer.mailing_address == customer.billing_address
  else
    default_attrs = { state: 'lead_qualify', catalog_id: default_catalog.id,
                      source: Source.find_by(name: 'Credit Application') }
    customer = Customer.new((params[:customer]&.to_unsafe_h || {}).merge(default_attrs))
    existing = []
    same = false
  end

  @form.prepare_for_create(
    credit_application_params: params[:credit_application].to_unsafe_h,
    customer_params:           params[:customer]&.to_unsafe_h || {},
    mailing_address_params:    params[:mailing_address]&.to_unsafe_h || {},
    billing_address_params:    params[:billing_address]&.to_unsafe_h || {},
    primary_contact_params:    params[:primary_contact]&.to_unsafe_h || {},
    owner_params:              params[:owner]&.to_unsafe_h || {},
    purchasing_agent_params:   params[:purchasing_agent]&.to_unsafe_h || {},
    accounts_payable_contact_params: params[:accounts_payable_contact]&.to_unsafe_h || {},
    customer:,
    existing_contacts: existing,
    same_addresses: same
  )

  if @form.save
    redirect_to confirm_credit_applications_path(reference_number: @form.reference_number, locale: I18n.locale)
  else
    @form.prepare_for_redisplay
    expose_form_models
    render :new, layout: 'www/cms_page', status: :unprocessable_content
  end
end

#do_approvevoid

This method returns an undefined value.

POST /credit_applications/:id/do_approve — approves the application and
sets the customer's credit terms/limit.



113
114
115
116
117
118
119
120
121
122
# File 'app/controllers/credit_applications_controller.rb', line 113

def do_approve
  CreditApplication.transaction do
    @customer.update(terms: params[:terms], credit_limit: params[:credit_limit], available_credit: params[:credit_limit])
    @credit_application.notes = params[:notes]
    @credit_application.state_event = 'approve'
    @credit_application.save!
  end
  flash[:info]
  redirect_to credit_application_path(@credit_application)
end

#do_rejectvoid

This method returns an undefined value.

POST /credit_applications/:id/do_reject — rejects the application.



132
133
134
135
136
137
138
# File 'app/controllers/credit_applications_controller.rb', line 132

def do_reject
  @credit_application.notes = params[:notes]
  @credit_application.state_event = 'reject'
  @credit_application.save!
  flash[:info]
  redirect_to credit_application_path(@credit_application)
end

#editvoid

This method returns an undefined value.

GET /credit_applications/:id/edit — edit form for an existing credit application.



42
# File 'app/controllers/credit_applications_controller.rb', line 42

def edit; end

#indexvoid

This method returns an undefined value.

GET /credit_applications — every credit application.



13
14
15
# File 'app/controllers/credit_applications_controller.rb', line 13

def index
  @credit_applications = CreditApplication.all
end

#newvoid

This method returns an undefined value.

GET /credit_applications/new — blank credit application form.



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/controllers/credit_applications_controller.rb', line 25

def new
  @form = CreditApplicationForm.new
  if fully_logged_in?
    customer = @context_user.customer
    existing = customer.contacts.select(&:persisted?)
    same = customer.mailing_address.present? && customer.billing_address.present? && customer.mailing_address == customer.billing_address
    @form.prepare_for_new(customer:, existing_contacts: existing, same_addresses: same)
  else
    @form.prepare_for_new(customer: Customer.new)
  end
  expose_form_models
  render layout: 'www/cms_page'
end

#rejectvoid

This method returns an undefined value.

GET /credit_applications/:id/reject — rejection confirmation screen.



127
# File 'app/controllers/credit_applications_controller.rb', line 127

def reject; end

#showvoid

This method returns an undefined value.

GET /credit_applications/:id — a single credit application.



20
# File 'app/controllers/credit_applications_controller.rb', line 20

def show; end

#updatevoid

This method returns an undefined value.

PATCH/PUT /credit_applications/:id — updates a credit application.



87
88
89
90
91
92
93
94
# File 'app/controllers/credit_applications_controller.rb', line 87

def update
  if @credit_application.update(params[:credit_application])
    redirect_to_return_path_or_default credit_application_path(@credit_application)
  else
    flash.now[:error] = @credit_application.errors_to_s.presence || 'Could not update credit application.'
    render :edit, status: :unprocessable_content
  end
end