module Patrimonio
class ConservacoesDosBensController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!, except: [:imprimir]
	before_action :autoriza_usuario!, except: [:imprimir]
	before_action :set_baixa_do_bem, only: [:show, :edit, :update, :destroy, :confirmar_desreconhecimento, :imprimir]
	before_action :disponibiliza_dependencias, only: [:new, :edit, :create]

	# GET /patrimonio/baixas_dos_bens/1
	def show
	end

	# GET /patrimonio/baixas_dos_bens/new
	def new
		@conservacao_do_bem = ConservacaoDoBem.new
	end

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

	# POST /patrimonio/baixas_dos_bens
	def create
		@conservacao_do_bem = ConservacaoDoBem.new(conservacao_do_bem_params)

		if @conservacao_do_bem.save
			redirect_to patrimonio_bem_patrimonial_path(@conservacao_do_bem.bem_patrimonial.id), notice: 'Conservação do bem foi criado(a) com sucesso.'
		else
			render :new
		end
	end

	# PATCH/PUT /patrimonio/baixas_dos_bens/1
	def update
		if @conservacao_do_bem.update( baixa_do_bem_params )
			redirect_to @conservacao_do_bem, notice: 'Conservação do bem foi atualizado(a) com sucesso.'
		else
			render :edit
		end
	end

	# DELETE /patrimonio/baixas_dos_bens/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@conservacao_do_bem)
		redirect_to patrimonio_baixas_dos_bens_url, mensagem
	end

	private
	def set_baixa_do_bem
		@conservacao_do_bem = ConservacaoDoBem.find( params[:id] )
	end

	def disponibiliza_dependencias
		@bem_patrimonial = Patrimonio::BemPatrimonial.find_by(id: params[:bem_patrimonial]) || Patrimonio::BemPatrimonial.find_by(id: conservacao_do_bem_params[:bem_patrimonial_id])
	end

	# Permite apenas os parâmetros específicos
	def conservacao_do_bem_params
		params.require(:patrimonio_conservacao_do_bem).permit(
			:bem_patrimonial_id, :estado_do_bem, :data_da_conservacao, :status
		)
	end
end
end
