module Patrimonio
class ComissoesController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_comissao, only: [:show, :edit, :update, :destroy]
	before_action :disponibiliza_dependencias, only: [:new, :edit, :create]

	# GET /patrimonio/comissoes
	def index
		@q = Comissao.order(data_inicio: :desc).search(params[:q])
		@comissoes = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	# GET /patrimonio/comissoes/1
	def show
	end

	# GET /patrimonio/comissoes/new
	def new
		@comissao = Comissao.new
	end

	# GET /patrimonio/comissoes/1/edit
	def edit
	end

	# POST /patrimonio/comissoes
	def create
		@comissao = Comissao.new(comissao_params)

		if @comissao.save
			redirect_to @comissao, notice: 'Comissao foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /patrimonio/comissoes/1
	def update
		if @comissao.update( comissao_params )
			redirect_to @comissao, notice: 'Comissao foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /patrimonio/comissoes/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@comissao)
		redirect_to patrimonio_comissoes_url, mensagem
	end

	def disponibiliza_dependencias
		@tipo_de_poder = current_usuario.tipo_de_poder == "ambos" ? "executivo" : "legislativo"
		@tipo_de_comissao = Patrimonio::Comissao.tipos_de_comissoes_i18n
		@classificacao_da_comissao = Patrimonio::Comissao.classificacao_da_comissoes_i18n
	end

	private
	def set_comissao
		@comissao = Comissao.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def comissao_params
		params.require(:patrimonio_comissao).permit(:codigo, :descricao, :data_inicio, :data_fim, :data_da_portaria, :numero_da_portaria, :tipo_de_comissao, :classificacao_da_comissao, :tipo_de_poder)
	end
end
end
