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

	# GET /patrimonio/localizacoes_dos_bens/new
	def new
		@localizacao_do_bem = LocalizacaoDoBem.new(bem_patrimonial_id: params[:bem_patrimonial_id])
	end

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

	# POST /patrimonio/localizacoes_dos_bens
	def create
		@localizacao_do_bem = LocalizacaoDoBem.new(localizacao_do_bem_params)

		if @localizacao_do_bem.save
			redirect_to patrimonio_bem_patrimonial_path(@localizacao_do_bem.bem_patrimonial_id) + "?tab=localizacoes_dos_bens", notice: 'Localização do Bem foi adicionado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /patrimonio/localizacoes_dos_bens/1
	def update
		if @localizacao_do_bem.update( localizacao_do_bem_params )
			redirect_to patrimonio_bem_patrimonial_path(@localizacao_do_bem.bem_patrimonial_id) + "?tab=localizacoes_dos_bens", notice: 'Localização do Bem foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	private
	def set_localizacao_do_bem
		@localizacao_do_bem = LocalizacaoDoBem.find( params[:id] )
	end

	def disponibiliza_dependencias
    unidades_orcamentarias_contexto_atual = contexto_atual.unidades_orcamentarias
    @configuracao = Configuracao.last
		@agentes_publicos_municipais = Base::AgentePublicoMunicipal.includes(:pessoa).where(unidade_orcamentaria_id: unidades_orcamentarias_contexto_atual.pluck(:id)).all.distinct
    @centro_de_custos = Controladoria::CentroDeCusto.where(status: :ativo).all
	end

	# Permite apenas os parâmetros específicos
	def localizacao_do_bem_params
		params.require(:patrimonio_localizacao_do_bem).permit(:bem_patrimonial_id, :centro_de_custo_id, :agente_publico_municipal_id, :endereco, :numero, :complemento, :bairro, :cep, :status, :descricao, :data_de_inicio_na_localizacao)
	end
end
end
