class NcmsController < ApplicationController
  include ControllerConcern
  before_action :authenticate_usuario!
	before_action :autoriza_usuario!
  before_action :set_ncm, only: [:show, :edit, :update, :destroy]
  before_action :disponibiliza_dependencias, only: [:index, :new, :edit]

  # GET /ncms
  def index
    @q = Ncm.order('codigo ASC').ransack(params[:q])
		@ncms = @q.result(distinct: false).paginate(page: params[:page], per_page: 20)
  end

  # GET /ncms/1
  # def show
  # end

  # GET /ncms/new
  def new
    @ncm = Ncm.new
  end

  # GET /ncms/1/edit
  def edit
  
  end

  # POST /ncms
  def create
    @ncm = Ncm.new(ncm_params)

		if @ncm.save
			redirect_to ncms_path, notice: 'NCM foi criado com sucesso.'
		else
			render :new
		end
  end

  # PATCH/PUT/ncms/1
  def update
    if @ncm.update(ncm_params)
			redirect_to ncms_path, notice: 'NCM foi atualizado com sucesso.'
		else
			render :edit
		end
  end

  # DELETE /ncms/1
  def destroy
    mensagem = apaga_e_retorna_mensagem(@ncm)
		redirect_to ncms_path, mensagem
  end


  private
	def set_ncm
		@ncm = Ncm.find( params[:id] )
	end

	def disponibiliza_dependencias
		@ncms = Ncm.order('codigo ASC').all
	end

  def ncm_params
    params.require(:ncm).permit(:codigo, :descricao, :data_inicio, :data_fim, :tipo_ato, :numero_ato, :ano_ato)
  end
end
