class Settings::CommissionsController < ApplicationController
  load_and_authorize_resource except: [:create]
  before_action :set_commission, only: [:show, :edit, :update, :destroy]

  # GET /commissions
  # GET /commissions.json
  def index
    @commissions = Commission.all
  end

  # GET /commissions/1
  # GET /commissions/1.json
  def show
  end

  # GET /commissions/new
  def new
    @commission = Commission.new
    @products = MenuItem.all
  end

  # GET /commissions/1/edit
  def edit
    @products = MenuItem.all
  end

  # POST /commissions
  # POST /commissions.json
  def create
    @commission = Commission.new(commission_params)
    @commission.product_type = 'menu_item'
    @commission.product_code = "[]"

    respond_to do |format|
      if @commission.save
        format.html {redirect_to settings_commissions_path, notice: 'Commission was successfully created.'}
        format.json {render :show, status: :created, location: @commission}
      else
        format.html {render :new}
        format.json {render json: @commission.errors, status: :unprocessable_entity}
      end
    end
  end

  # PATCH/PUT /commissions/1
  # PATCH/PUT /commissions/1.json
  def update
    respond_to do |format|
      if @commission.update(commission_params)
        format.html {redirect_to settings_commission_path(@commission), notice: 'Commission was successfully updated.'}
        format.json {render :show, status: :ok, location: @commission}
      else
        format.html {render :edit}
        format.json {render json: @commission.errors, status: :unprocessable_entity}
      end
    end
  end

  # DELETE /commissions/1
  # DELETE /commissions/1.json
  def destroy
    @commission.destroy
    flash[:notice] = 'Commission was successfully destroyed.'
    render :json => {:status=> "Success", :url => settings_commissions_path }.to_json
    # respond_to do |format|
    #   format.html {redirect_to settings_commissions_path, notice: 'Commission was successfully destroyed.'}
    #   format.json {head :no_content}
    # end
  end

  private
  # Use callbacks to share common setup or constraints between actions.
  def set_commission
    @commission = Commission.find(params[:id])
  end

  # Never trust parameters from the scary internet, only allow the white list through.
  def commission_params
    params.require(:commission).permit(:product_type,:name, :product_code, :amount, :commission_type, :is_active)
  end
end
