Rails.application.routes.draw do
	namespace :base do
		get '/funcoes/funcoes_por_tipo_de_natureza', to: 'funcoes#funcoes_por_tipo_de_natureza'
		resources :agentes_publicos_municipais do
			collection do
				get 'pesquisa'
				get 'resultado'
			end
		end

		resources :funcoes, only: [:index, :show]
		resources :subfuncoes, only: :index
		resources :documentos, except: [:show]
		resources :itens
		get 'itens/:id/show_lista_de_itens_no_patrimonio', to: 'itens#show_lista_de_itens_no_patrimonio', as: :show_lista_de_itens_no_patrimonio
		get 'itens/:id/retorna_informacao_item', to: 'itens#retorna_informacao_item', as: :retorna_informacao_item

		resources :legislacoes
		resources :tecnicos, except: [:show]

		resources :categorias, except: [:new, :create, :edit, :update] do
			get 'subcategorias', on: :member , as: :subcategorias
		end
		resources :responsaveis, only: [:edit, :update, :destroy]

		resources :pessoas do
				get 'editar_cnaes'
				patch 'atualiza_cnaes'
				get 'editar_contas'
				patch 'atualiza_contas'
				get 'valida_se_cnpj_ja_existe', to: 'pessoas#valida_se_cnpj_ja_existe', on: :collection
				get 'retorna_dados_do_responsavel', to: 'pessoas#retorna_dados_do_responsavel', on: :member, as: :retorna_dados_do_responsavel
				get 'editar_categorias', to: 'pessoas#editar_categorias', as: :editar_categorias
				patch 'atualizar_categorias', to: 'pessoas#atualizar_categorias', as: :atualizar_categorias
				get 'ativa_inativa_fornecedor', to: 'pessoas#ativa_inativa_fornecedor', on: :member, as: :ativa_inativa_fornecedor
			collection do
				get 'pesquisa'
				get 'pesquisa_por_empenho'
				get 'resultado'
				get 'resultado_por_empenho'
				get 'pesquisa_credores'
				get 'resultado_credores'
			end
			resources :responsaveis, only: [:new, :create], on: :member
			resource :pessoas_contas_bancarias, only: [:edit, :update], on: :member, shallow: false
		end
		resources :receitas_stn do
			collection do
				get 'index'
				get 'pesquisa'
				get 'resultado'
			end
		end

		get '/importar_receita', to: 'receitas_stn#selecionar_receita_para_importar', as: :selecionar_receitas_stn
		post '/importar_receita', to: 'receitas_stn#importar_receita_stn', as: :importar_receita_stn

		resources :configuracoes_de_feriados, only: [:index, :create, :edit, :update, :destroy] do
		end
		get 'configuracoes_de_feriados/novo', to: "configuracoes_de_feriados#new", as: :nova_configuracao_de_feriado

	end

	get '/contas_bancarias/new', to: 'base/contas_bancarias#new', as: :criar_conta_bancaria
	post '/contas_bancarias', to: 'base/contas_bancarias#create'
	get '/contas_bancarias/:id/movimentacoes', to: 'base/contas_bancarias#movimentacoes', as: :movimentacoes_da_conta_bancaria
	get '/registros_bancarios', to: 'base/contas_bancarias#registros_bancarios'
	get '/registro_bancario/:conta_bancaria_por_unidade_orcamentaria', to: 'base/contas_bancarias#registro_bancario', as: :registro_bancario
	get 'registro_bancario/:id_banco/retorna_registro', to: 'base/contas_bancarias#retorna_registro', as: :retorna_registro

	nested_resources :base, :agencias, ':exercicio'
	nested_resources :base, :cidades, 'estados/:id', except: [:show, :new, :create, :edit, :update, :destroy]
	nested_resources :base, :contas_bancarias, 'agencias/:agencia_id', except: [:index]
	nested_resources :base, :contas_bancarias_por_unidade_orcamentaria, 'contas_bancarias/:conta_bancaria_id', except: [:index, :edit, :update]

	namespace :base do
		get 'contas_bancarias/:id/get_saldo', to: 'contas_bancarias#get_saldo', as: :conta_bancaria_get_saldo
		get 'contas_bancarias/:id/get_unidades_orcamentarias', to: 'contas_bancarias#get_unidades_orcamentarias', as: :conta_bancaria_get_unidades_orcamentarias

		get 'contas_bancarias_por_unidade_orcamentaria/:id/movimentacoes', to: "contas_bancarias_por_unidade_orcamentaria#movimentacoes", as: "movimentacoes_das_contas_bancarias_por_unidade_orcamentaria"
		get 'contas_bancarias_por_unidade_orcamentaria/:id/definir_como_principal', to: "contas_bancarias_por_unidade_orcamentaria#definir_como_principal", as: "definir_conta_bancaria_por_unidade_orcamentaria_como_principal"
		patch 'contas_bancarias_por_unidade_orcamentaria/:id/atualizar_valor_da_conta', to: "contas_bancarias_por_unidade_orcamentaria#atualizar_valor_da_conta", as: "atualizar_valor_da_conta"

		get '/contas_bancarias', to: 'contas_bancarias#index', as: :contas_bancarias
		patch '/contas_bancarias/:id/ativar', to: 'contas_bancarias#ativar', as: :contas_bancaria_ativar

		namespace :relatorios do
			get 'contas_bancarias/imprimir', to: 'contas_bancarias#imprimir'   , as: :contas_bancarias_imprimir
		end
	end

	nested_resources :base, :pessoas_contas_bancarias, 'pessoas/:pessoa_id', except: [:index, :new, :create, :show, :destroy]

	# ROTAS PARA FONTES DE RECURSOS
	get ':modulo/:exercicio/fontes_de_recursos', to: 'base/fontes_de_recursos#index', as: :base_fontes_de_recursos
	get '/fontes_de_recursos/:id', to: 'base/fontes_de_recursos#show', as: :base_fonte_de_recursos
	get '/fontes_de_recursos/:id/edit', to: 'base/fontes_de_recursos#edit', as: :edit_base_fonte_de_recursos
	put '/fontes_de_recursos/:id', to: 'base/fontes_de_recursos#update'
	patch '/fontes_de_recursos/:id', to: 'base/fontes_de_recursos#update'

	# ROTAS PARA NATUREZA DA RECEITA
	get '/naturezas_da_receita/:id/', to: 'base/naturezas_da_receita#show', as: :base_natureza_da_receita
	get ':modulo/:exercicio/naturezas_da_receita', to: 'base/naturezas_da_receita#index', as: :base_naturezas_da_receita
	get '/naturezas_da_receita/:id/detalhar_nova_classificacao/', to: 'base/naturezas_da_receita#detalhar_nova_classificacao'
	get ':modulo/:exercicio/naturezas_da_receita/new', to: 'base/naturezas_da_receita#new', as: :new_base_natureza_da_receita
	post ':modulo/:exercicio/naturezas_da_receita', to: 'base/naturezas_da_receita#create'
	get '/naturezas_da_receita/:id/edit', to: 'base/naturezas_da_receita#edit', as: :edit_natureza_da_receita
	patch '/naturezas_da_receita/:id', to: 'base/naturezas_da_receita#update'
	delete '/naturezas_da_receita/:id', to: 'base/naturezas_da_receita#destroy', as: :destroy_natureza_da_receita
	get ':modulo/:exercicio/naturezas_da_receita/:id/configurar', to: 'base/naturezas_da_receita#configurar_natureza_da_receita', as: :configurar_natureza_da_receita
	put ':modulo/:exercicio/naturezas_da_receita/:id/configurar', to: 'base/naturezas_da_receita#configurar_natureza_da_receita_update', as: :configurar_natureza_da_receita_update

	get '/naturezas_da_receita/:id/alterar', to: 'base/naturezas_da_receita#alterar_previsao_da_receita', as: :alterar_previsao_da_receita
	patch '/naturezas_da_receita/:id/alterar_previsao', to: 'base/naturezas_da_receita#alterar_previsao', as: :alterar_previsao

	# ROTAS PARA ELEMENTOS DE DESPESA
	get  ':modulo/:exercicio/elementos_de_despesa', to: 'base/elementos_de_despesa#index', as: :base_elementos_de_despesa
	get  ':modulo/:exercicio/elementos_de_despesa/new', to: 'base/elementos_de_despesa#new', as: :new_base_elemento_de_despesa
	post ':modulo/:exercicio/elementos_de_despesa', to: 'base/elementos_de_despesa#create', as: :create_base_elemento_de_despesa
	get  ':modulo/:exercicio/elementos_de_despesa/:id/edit', to: 'base/elementos_de_despesa#edit', as: :edit_base_elemento_de_despesa
	put  ':modulo/:exercicio/elementos_de_despesa/:id', to: 'base/elementos_de_despesa#update', as: :update_base_elemento_de_despesa
	get  '/classificacao_da_despesa/:classificacao_da_despesa_id/grupos_de_natureza_da_despesa', to: 'base/elementos_de_despesa#retornar_grupos_de_despesa', as: :retornar_grupos_de_despesa
	get  '/acao/:acao_id/elementos_por_acao_do_contingenciamento/:contingenciamento_id', to: 'base/elementos_de_despesa#retorna_elementos_por_acao_do_contingenciamento'
	get  '/elemento_de_despesa/:elemento_de_despesa_id/sub_elementos_de_despesa', to: 'base/elementos_de_despesa#retorna_sub_elementos'
	get  '/elemento_de_despesa/:id/tipo_preferencial_de_credor', to: 'base/elementos_de_despesa#tipo_preferencial_de_credor'
	get  '/elemento_de_despesa/:id/retorna_codigo', to: 'base/elementos_de_despesa#retorna_codigo'
	get '/elemento_de_despesa/:id/vincular_matriz', to: 'base/elementos_de_despesa#vincular_matriz', as: :base_elemento_de_despesa_vincular_matriz
	patch '/elemento_de_despesa/:id/atualizar_matriz', to: 'base/elementos_de_despesa#atualizar_matriz', as: :base_elemento_de_despesa_atualizar_matriz
	get  ':modulo/:exercicio/elementos_de_despesa/:id/configurar', to: 'base/elementos_de_despesa#configurar_elemento_de_despesa', as: :configurar_elemento_de_despesa
	put  ':modulo/:exercicio/elementos_de_despesa/:id/configurar', to: 'base/elementos_de_despesa#configurar_elemento_de_despesa_update', as: :configurar_elemento_de_despesa_update
	get  ':modulo/:exercicio/lista_de_elementos', to: 'base/elementos_de_despesa#lista_de_elementos', as: :lista_de_elementos
	get  'escolher_elementos_de_despesa', to: 'base/elementos_de_despesa#escolher_elementos_de_despesa', as: :escolher_elementos_de_despesa

	# ROTAS PARA SUBELEMENTOS DE DESPESA
	get  ':modulo/:exercicio/sub_elementos_de_despesa', to: 'contabilidade/sub_elementos_de_despesa#index', as: :contabilidade_sub_elementos_de_despesa
	get  ':modulo/:exercicio/sub_elementos_de_despesa/new', to: 'contabilidade/sub_elementos_de_despesa#new', as: :new_contabilidade_sub_elemento_de_despesa
	post ':modulo/:exercicio/sub_elementos_de_despesa', to: 'contabilidade/sub_elementos_de_despesa#create', as: :create_contabilidade_sub_elemento_de_despesa
	get  ':modulo/:exercicio/sub_elementos_de_despesa/:id/edit', to: 'contabilidade/sub_elementos_de_despesa#edit', as: :edit_contabilidade_sub_elemento_de_despesa
	put  ':modulo/:exercicio/sub_elementos_de_despesa/:id', to: 'contabilidade/sub_elementos_de_despesa#update', as: :update_contabilidade_sub_elemento_de_despesa
	delete 'sub_elementos_de_despesa/:id', to: 'contabilidade/sub_elementos_de_despesa#destroy', as: :destroy_contabilidade_sub_elemento_de_despesa
	get  ':modulo/:exercicio/sub_elementos_de_despesa/adicionar_novo', to: 'contabilidade/sub_elementos_de_despesa#adicionar_novo', as: :adicionar_novo_sub_elemento_de_despesa
	post ':modulo/:exercicio/sub_elementos_de_despesa/criar_novo', to: 'contabilidade/sub_elementos_de_despesa#criar_novo', as: :criar_novo_sub_elemento_de_despesa

	get 'alertas', to: 'base/alertas#index', as: :alertas_index
	get 'alertas/:dias/:unidade_orcamentaria/:tipos', to: 'base/alertas#index'
	get 'alertas/almoxarifado' , to: 'base/alertas#alerta_almoxarifado' , as: :alerta_almoxarifado
	get 'alertas/patrimonio' , to: 'base/alertas#alerta_patrimonio' , as: :alerta_patrimonio

	get 'intermodulos/menu_de_obras', to: 'base/intermodulos#menu_de_obras', as: "intermodulos_menu_de_obras"
	get 'intermodulos/gestao_de_estoque', to: 'base/intermodulos#gestao_de_estoque', as: "intermodulos_gestao_de_estoque"
	get 'intermodulos/medicoes_da_obra', to: 'base/intermodulos#medicoes_da_obra', as: 'intermodulos_medicoes_da_obra'
	get 'intermodulos/medicoes_da_obra_lancadas', to: 'base/intermodulos#medicoes_da_obra_lancadas', as: 'intermodulos_medicoes_da_obra_lancadas'
	get 'intermodulos/obras_sem_classificacao_pcasp', to: 'base/intermodulos#obras_sem_classificacao_pcasp', as: 'obras_sem_classificacao_pcasp'
	
	get 'intermodulos/patrimonio', to: 'base/intermodulos#patrimonio', as: "intermodulos_patrimonio"
	get 'intermodulos/patrimonio_relatorios', to: 'base/intermodulos#patrimonio_relatorios', as: "relatorios_patrimonio"


	get 'intermodulos/movimentacoes_do_estoque/:relatorio', to: 'base/intermodulos#movimentacoes_do_estoque', as: "intermodulos_movimentacoes_do_estoque"
	get 'intermodulos/movimentacoes_do_estoque/conciliacao_fisica_contabil', to: 'base/intermodulos#conciliacao_fisica_contabil_do_estoque', as: "intermodulos_conciliacao_fisica_contabil_do_estoque"
	get 'intermodulos/movimentacoes_do_estoque/:estoque_id/movimentacoes_por_sub_elemento', to: 'base/intermodulos#movimentacoes_por_sub_elemento', as: "intermodulos_movimentacoes_por_sub_elemento"

	post 'intermodulos/reconhecer_ou_desreconhecer_movimentacoes_do_estoque', to: 'base/intermodulos#reconhecer_ou_desreconhecer_movimentacoes_do_estoque', as: "intermodulos_reconhecer_ou_desreconhecer_movimentacoes_do_estoque"
	get  'intermodulos/show_gestao_de_estoque/recebimento/:id', to: 'base/intermodulos#show_gestao_de_estoque_recebimento', as: "intermodulos_show_gestao_de_estoque_recebimento"
	get  'intermodulos/show_gestao_de_estoque/consumo/:id', to: 'base/intermodulos#show_gestao_de_estoque_consumo', as: "intermodulos_show_gestao_de_estoque_consumo"


end
