module GestaoDeEstoque
class ResponsaveisDosAlmoxarifadosController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_responsavel_do_almoxarifado, only: [:show, :edit, :update, :destroy]
	before_action :disponibiliza_dependencias, only: [:index, :edit, :new, :update, :create]

	# GET /gestao_de_estoque/responsaveis_dos_almoxarifados/new
	def new
		@responsavel_do_almoxarifado = ResponsavelDoAlmoxarifado.new(almoxarifado_id: params[:almoxarifado_id])
	end

	# GET /gestao_de_estoque/responsaveis_dos_almoxarifados/1/edit
	def edit
	end

	# POST /gestao_de_estoque/responsaveis_dos_almoxarifados
	def create
		@responsavel_do_almoxarifado = ResponsavelDoAlmoxarifado.new(responsavel_do_almoxarifado_params)

		if @responsavel_do_almoxarifado.save
			redirect_to gestao_de_estoque_almoxarifado_path(@responsavel_do_almoxarifado.almoxarifado_id) + "?tab=responsaveis_dos_almoxarifados", notice: 'Responsavel do almoxarifado foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /gestao_de_estoque/responsaveis_dos_almoxarifados/1
	def update
		if @responsavel_do_almoxarifado.update( responsavel_do_almoxarifado_params )
			redirect_to gestao_de_estoque_almoxarifado_path(@responsavel_do_almoxarifado.almoxarifado_id) + "?tab=responsaveis_dos_almoxarifados", notice: 'Responsavel do almoxarifado foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	private
	def set_responsavel_do_almoxarifado
		@responsavel_do_almoxarifado = ResponsavelDoAlmoxarifado.find( params[:id] )
	end

	def disponibiliza_dependencias
		unidades_orcamentarias_contexto_atual = contexto_atual.unidades_orcamentarias
		@agentes_publicos_municipais = Base::AgentePublicoMunicipal.includes(:pessoa).where(unidade_orcamentaria_id: unidades_orcamentarias_contexto_atual.pluck(:id)).all.distinct
	end

	# Permite apenas os parâmetros específicos
	def responsavel_do_almoxarifado_params
		params.require(:gestao_de_estoque_responsavel_do_almoxarifado).permit(:almoxarifado_id, :agente_publico_municipal_id, :data_de_entrada, :data_de_saida , :data_da_portaria , :numero_da_portaria)
	end
end
end
