Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ProspectsController < ApplicationController
- before_action :set_prospect, only: %i[show edit update destroy]
- # GET /prospects
- # GET /prospects.json
- def index
- page_size = params[:pageSize].presence ? params[:pageSize].to_i : 10
- prospect_id = ''
- @prospects_counter = 0
- @prospects = []
- user_id = ''
- user_id = current_user.id unless can? :can_index_all, Prospect
- prospect_id = params[:prospect_id] if params[:prospect_id].presence
- if params[:filter]
- parameters = JSON.parse(params[:filter])
- @prospects = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).by_id_number(parameters['id'])
- .by_name(parameters['name']).by_cell_phone(parameters['cell_phone']).order(id: :desc)
- .page(params[:pageNumber]).per(page_size)
- @prospects_counter = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).by_id_number(parameters['id'])
- .by_name(parameters['name']).by_cell_phone(parameters['cell_phone']).count
- else
- @prospects = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).order(id: :desc).page(params[:pageNumber]).per(page_size)
- @prospects_counter = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).count
- end
- end
- # GET /prospects/1
- # GET /prospects/1.json
- def show; end
- # GET /prospects/new
- def new
- @prospect = Prospect.new()
- if params[:lead_id].present?
- lead = Lead.find(params[:lead_id])
- @prospect = set_prospect_from_lead(lead)
- end
- end
- # GET /prospects/1/edit
- def edit; end
- # POST /prospects
- # POST /prospects.json
- def create
- @prospect = Prospect.new(prospect_params)
- respond_to do |format|
- if @prospect.save
- if lead_params[:lead_id].present?
- @lead = Lead.where(id: lead_params[:lead_id]).first
- @lead.prospect_id = @prospect.id
- @lead.save
- end
- format.html { redirect_to prospects_path, notice: 'Prospecto creado exitosamente.' }
- format.json { render :show, status: :created, location: @prospect }
- else
- format.html { render :new }
- format.json { render json: @prospect.errors, status: :unprocessable_entity }
- end
- end
- end
- # PATCH/PUT /prospects/1
- # PATCH/PUT /prospects/1.json
- def update
- respond_to do |format|
- if @prospect.update(prospect_params)
- format.html { redirect_to prospects_path, notice: 'Prospecto modificado exitosamente.' }
- format.json { render :show, status: :ok, location: @prospect }
- else
- format.html { render :edit }
- format.json { render json: @prospect.errors, status: :unprocessable_entity }
- end
- end
- end
- # DELETE /prospects/1
- # DELETE /prospects/1.json
- def destroy
- @prospect.destroy
- respond_to do |format|
- format.html { redirect_to prospects_url, notice: 'Prospecto eliminado exitosamente.' }
- format.json { head :no_content }
- end
- end
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_prospect
- @prospect = Prospect.find(params[:id])
- end
- def set_prospect_from_lead(lead)
- @prospect.name = lead.name
- @prospect.ap_paterno = lead.ap_paterno
- @prospect.ap_materno = lead.ap_materno
- @prospect.cell_phone = lead.cell_phone
- @prospect
- end
- # Never trust parameters from the scary internet, only allow the white list through.
- def prospect_params
- params.require(:prospect).permit(:name, :ap_paterno, :ap_materno, :cell_phone, :id_number, :user_id)
- end
- def lead_params
- params.require(:prospect).permit(:lead_id)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement