class EmployerSetupController < ApplicationController def new @employer_setup = EmployerSetupProcess.new @employer_setup.plans.build @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") render 'employer_setup/employer_information' end def create employer_setup_process_params = EmployerSetupProcess.permitted_params(params) puts "---Params---" puts employer_setup_process_params @employer_setup = EmployerSetupProcess.new(employer_setup_process_params) if @employer_setup.save redirect_to @employer_setup, notice: 'Employer Setup Process initiated' else @plan_templates = IdCardBenefitsTemplate.where.not(title: "BLANK") render 'employer_setup/employer_information' end end def update @form = RegistrationForm.new(registration_params) if params[:back_button] @form.current_step = @form.previous_step elsif params[:skip_newsletter] @form.current_step = @form.next_step # Skip newsletter step end render :new end private # def general_information_params # params.require(:employer_setup_general_information_form).permit( # :name, # :employer_logo, # :group_number, # :dental, # :pl_plan_key, # :effect_date, # :number_of_plans, # :network, # :number_of_additional_network_logos # ) # end # def plans_params # params.require(:employer_setup_plans_form).permit( # plans: permited_plans_keys, # benefit_descs: benefit_sequence_keys # ) # end # def network_exceptions_params # params.require(:employer_setup_network_exceptions_form).permit( # network_exceptions: [:network_logo, exceptions: [:type, :value]], # ) # end def form_for_step step_name = @top_form.current_step form_method = "EmployerSetup#{step_name.camelize}Form".constantize # puts "/////\\\\\\||||||" # puts session[:employer_setup_data] # puts session[:employer_setup_data]['employer_setup_process_id'] puts form_method form_method.new(session[:employer_setup_data]['employer_setup_process_id']) end def process_step(step_name) @form_method = "EmployerSetup#{step_name.camelize}Form".constantize session_data_name = "#{step_name}_data" # puts "1--------------params----" # puts params # puts "8--------------session----" # puts session[:employer_setup_data] employer_setup_process_id = session[:employer_setup_data]['employer_setup_process_id'] # puts session[:employer_setup_data] puts "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" puts params @form = @form_method.new(employer_setup_process_id, params) if @form.pl_plan_key.blank? @form.pl_plan_key = session[:employer_setup_data]['pl_plan_key'] end if @form.valid? && @form.save pl_plan_key = @top_form.pl_plan_key || @form.pl_plan_key # session[:employer_setup_data].merge!({current_step: step_name, pl_plan_key: pl_plan_key}) # form_fields = @form.attributes.merge!(global_params(step_name)) # session[:employer_setup_data][session_data_name] = form_fields # session[:employer_setup_data].merge!(global_params(step_name)) # puts session[:employer_setup_data][session_data_name] true else false end end def step_params(step_name) form_name_sym = "employer_setup_#{step_name}_form".to_sym params.require(form_name_sym).permit(@form_method.permitted_params) end def global_params(step_name) form_name_sym = "employer_setup_#{step_name}_form".to_sym params.require(form_name_sym).permit(EmployerSetupForm.permitted_params) end # def process_step(step_name) # form_name = "employer_setup_#{step_name}_form".camelize.constantize # form_params_name = "#{step_name}_params".to_sym # allowed_params = [:general_information_params, :plans_params, :network_exceptions_params] # if allowed_params.include?(form_params_name) # form_params = send(form_params_name) # @form = form_name.new(form_params) # if @form.valid? # session[:employer_setup_data]["#{step_name}_data"] = form_params # true # else # false # end # end # false # end # def employer_setup_params # params.require(:employer_setup_form).permit( # :current_step, # :name, # :employer_logo, # :group_number, # :pl_plan_key, # :effect_date, # :number_of_plans, # :network, # :number_of_additional_network_logos, # network_exceptions: [:network_logo, exceptions: [:type, :value]], # plans: permited_plans_keys, # benefit_descs: benefit_sequence_keys # ) # end # def benefit_sequence_keys # (1..14).map { |i| i.to_s.to_sym } # end # def permited_plans_keys # benefit_sequence_keys.push(:plan_id) # end # def plans_params # plans_keys = params[:plans]&.keys || [] # plans_keys.each_with_object({}) do |key, hash| # if key == 'benefit_descs' || key.match?(/^plan_\d$/) # hash[key.to_sym] = permited_plan_param_list # end # end # end # def permited_plan_param_list # (1..14).map { |i| i.to_s.to_sym }.push(:plan_id) # end end