module Contabilidade
class ConveniosBancariosController < ApplicationController
	include ControllerConcern
	before_action :authenticate_usuario!
	before_action :autoriza_usuario!
	before_action :set_convenio_bancario, only: [:show, :edit, :update, :destroy]
	before_action :disponibiliza_dependencias, only: [:new, :edit, :index]

	# GET /contabilidade/convenios_bancarios
	def index
		@q = Contabilidade::ConvenioBancario.order(:id).search(params[:q])
		@convenios_bancarios = @q.result(distinct: false).paginate(page: params[:page], per_page: 10)
	end

	# GET /contabilidade/convenios_bancarios/1
	def show
	end

	# GET /contabilidade/convenios_bancarios/new
	def new
		@convenio_bancario = Contabilidade::ConvenioBancario.new
	end

	# GET /contabilidade/convenios_bancarios/1/edit
	def edit
	end

	# POST /contabilidade/convenios_bancarios
	def create
		@convenio_bancario = Contabilidade::ConvenioBancario.new(convenio_bancario_params)

		if @convenio_bancario.save
			redirect_to @convenio_bancario, notice: 'Convenio bancario foi criado(a) com sucesso.'
		else
			disponibiliza_dependencias
			render :new
		end
	end

	# PATCH/PUT /contabilidade/convenios_bancarios/1
	def update
		if @convenio_bancario.update( convenio_bancario_params )
			redirect_to @convenio_bancario, notice: 'Convenio bancario foi atualizado(a) com sucesso.'
		else
			disponibiliza_dependencias
			render :edit
		end
	end

	# DELETE /contabilidade/convenios_bancarios/1
	def destroy
		mensagem = apaga_e_retorna_mensagem(@convenio_bancario)
		redirect_to contabilidade_convenios_bancarios_url, mensagem
	end

	def disponibiliza_dependencias
		@bancos = Base::Banco.order(:numero_do_banco)
		@ordenadores_de_despesa = Loa::OrdenadorDeDespesa.all
		@layouts_para_lotes = Contabilidade::ConvenioBancario.layouts_para_lotes
	end

	private
	def set_convenio_bancario
		@convenio_bancario = Contabilidade::ConvenioBancario.find( params[:id] )
	end

	# Permite apenas os parâmetros específicos
	def convenio_bancario_params
		params.require(:contabilidade_convenio_bancario).permit(:layout_para_lote, :banco_id, :codigo, :descricao, :ordenador_de_despesa_id)

	end
end
end
