Advertisement
Guest User

Untitled

a guest
Sep 18th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rails 3.69 KB | None | 0 0
  1. class ProspectsController < ApplicationController
  2.   before_action :set_prospect, only: %i[show edit update destroy]
  3.  
  4.  
  5.   # GET /prospects
  6.   # GET /prospects.json
  7.   def index
  8.     page_size = params[:pageSize].presence ? params[:pageSize].to_i : 10
  9.     prospect_id = ''
  10.     @prospects_counter = 0
  11.     @prospects = []
  12.     user_id = ''
  13.     user_id = current_user.id unless can? :can_index_all, Prospect
  14.     prospect_id = params[:prospect_id] if params[:prospect_id].presence
  15.     if params[:filter]
  16.       parameters = JSON.parse(params[:filter])
  17.       @prospects = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).by_id_number(parameters['id'])
  18.                            .by_name(parameters['name']).by_cell_phone(parameters['cell_phone']).order(id: :desc)
  19.                            .page(params[:pageNumber]).per(page_size)
  20.       @prospects_counter = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).by_id_number(parameters['id'])
  21.                                    .by_name(parameters['name']).by_cell_phone(parameters['cell_phone']).count
  22.     else
  23.       @prospects = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).order(id: :desc).page(params[:pageNumber]).per(page_size)
  24.       @prospects_counter = Prospect.by_prospect_id(prospect_id).by_user_id(user_id).count
  25.     end
  26.   end
  27.  
  28.   # GET /prospects/1
  29.   # GET /prospects/1.json
  30.   def show; end
  31.  
  32.   # GET /prospects/new
  33.   def new
  34.     @prospect = Prospect.new()
  35.     if params[:lead_id].present?
  36.       lead = Lead.find(params[:lead_id])
  37.       @prospect = set_prospect_from_lead(lead)
  38.     end
  39.   end
  40.  
  41.   # GET /prospects/1/edit
  42.   def edit; end
  43.  
  44.   # POST /prospects
  45.   # POST /prospects.json
  46.   def create
  47.     @prospect = Prospect.new(prospect_params)
  48.     respond_to do |format|
  49.       if @prospect.save
  50.         if lead_params[:lead_id].present?
  51.           @lead = Lead.where(id: lead_params[:lead_id]).first
  52.           @lead.prospect_id = @prospect.id
  53.           @lead.save
  54.         end
  55.  
  56.         format.html { redirect_to prospects_path, notice: 'Prospecto creado exitosamente.' }
  57.         format.json { render :show, status: :created, location: @prospect }
  58.       else
  59.         format.html { render :new }
  60.         format.json { render json: @prospect.errors, status: :unprocessable_entity }
  61.       end
  62.     end
  63.   end
  64.  
  65.   # PATCH/PUT /prospects/1
  66.   # PATCH/PUT /prospects/1.json
  67.   def update
  68.     respond_to do |format|
  69.       if @prospect.update(prospect_params)
  70.         format.html { redirect_to prospects_path, notice: 'Prospecto modificado exitosamente.' }
  71.         format.json { render :show, status: :ok, location: @prospect }
  72.       else
  73.         format.html { render :edit }
  74.         format.json { render json: @prospect.errors, status: :unprocessable_entity }
  75.       end
  76.     end
  77.   end
  78.  
  79.   # DELETE /prospects/1
  80.   # DELETE /prospects/1.json
  81.   def destroy
  82.     @prospect.destroy
  83.     respond_to do |format|
  84.       format.html { redirect_to prospects_url, notice: 'Prospecto eliminado exitosamente.' }
  85.       format.json { head :no_content }
  86.     end
  87.   end
  88.  
  89.   private
  90.  
  91.   # Use callbacks to share common setup or constraints between actions.
  92.   def set_prospect
  93.     @prospect = Prospect.find(params[:id])
  94.   end
  95.  
  96.   def set_prospect_from_lead(lead)
  97.  
  98.     @prospect.name = lead.name
  99.     @prospect.ap_paterno = lead.ap_paterno
  100.     @prospect.ap_materno = lead.ap_materno
  101.     @prospect.cell_phone = lead.cell_phone
  102.     @prospect
  103.   end
  104.   # Never trust parameters from the scary internet, only allow the white list through.
  105.   def prospect_params
  106.     params.require(:prospect).permit(:name, :ap_paterno, :ap_materno, :cell_phone, :id_number, :user_id)
  107.   end
  108.  
  109.   def lead_params
  110.     params.require(:prospect).permit(:lead_id)
  111.   end
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement