Class: CreditApplicationsController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- CreditApplicationsController
- 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
-
#approve ⇒ void
GET /credit_applications/:id/approve — approval confirmation screen.
-
#confirm ⇒ void
GET /credit_applications/confirm — post-submission confirmation page.
-
#create ⇒ void
POST /credit_applications — submits a new credit application.
-
#do_approve ⇒ void
POST /credit_applications/:id/do_approve — approves the application and sets the customer's credit terms/limit.
-
#do_reject ⇒ void
POST /credit_applications/:id/do_reject — rejects the application.
-
#edit ⇒ void
GET /credit_applications/:id/edit — edit form for an existing credit application.
-
#index ⇒ void
GET /credit_applications — every credit application.
-
#new ⇒ void
GET /credit_applications/new — blank credit application form.
-
#reject ⇒ void
GET /credit_applications/:id/reject — rejection confirmation screen.
-
#show ⇒ void
GET /credit_applications/:id — a single credit application.
-
#update ⇒ void
PATCH/PUT /credit_applications/:id — updates a credit application.
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
Methods included from Controllers::SubdomainDetection
#is_crm_request?, #is_www_request?, #json_request?
Methods included from Controllers::TurboSafeRedirect
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
#approve ⇒ void
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 |
#confirm ⇒ void
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 |
#create ⇒ void
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_approve ⇒ void
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_reject ⇒ void
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 |
#edit ⇒ void
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 |
#index ⇒ void
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 |
#new ⇒ void
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 |
#reject ⇒ void
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 |
#show ⇒ void
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 |
#update ⇒ void
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 |