Rails.application.routes.draw do
	nested_resources :loa, :orgaos, ':exercicio'
	get 'loa/:exercicio/orgao/prepara_importacao', to: 'loa/orgaos#prepara_importacao', as: :prepara_importacao_dos_orgao_do_ppa
	post 'loa/:exercicio/orgao/importar', to: 'loa/orgaos#importar', as: :importar_orgao_do_ppa

	nested_resources :loa, :ordenadores_de_despesa, 'unidades_orcamentarias/:id'
	get 'loa/unidades_orcamentarias/:id/editar_unidades_vinculada', to: 'loa/unidades_orcamentarias#editar_unidades_vinculada', as: :editar_unidades_vinculada
	patch 'loa/unidades_orcamentarias/:id/atualizar_unidades_vinculada', to: 'loa/unidades_orcamentarias#atualizar_unidades_vinculada', as: :atualizar_unidades_vinculada

	get 'loa/unidades_orcamentarias/:id/editar_logo', to: 'loa/unidades_orcamentarias#editar_logo', as: :unidade_orcamentaria_editar_logo
	patch 'loa/unidades_orcamentarias/:id/atualizar_logo', to: 'loa/unidades_orcamentarias#atualizar_logo', as: :unidade_orcamentaria_atualizar_logo

	nested_resources :loa, :programas_de_governo, ':exercicio'
	get 'loa/:exercicio/programas_de_governo/prepara_importacao', to: 'loa/programas_de_governo#prepara_importacao', as: :prepara_importacao_dos_programas_do_ppa
	post 'loa/:exercicio/programas_de_governo/importar', to: 'loa/programas_de_governo#importar', as: :importar_programas_do_ppa

	nested_resources :loa, :acoes, 'programas_de_governo/:id', except: [:index]
	get 'loa/programas_de_governo/:id/acoes/prepara_importacao', to: 'loa/acoes#prepara_importacao', as: :prepara_importacao_das_acoes_do_ppa
	post 'loa/programas_de_governo/:id/acoes/importar', to: 'loa/acoes#importar', as: :importar_acoes_do_ppa

	nested_resources :loa, :subacoes, 'acoes/:acao_id', except: [:index]

	nested_resources :loa, :metas_fisicas, 'subacoes/:subacao_id', except: [:index]
	get 'loa/:subacao_id/metas_fisicas/prepara_importacao', to: 'loa/metas_fisicas#prepara_importacao', as: :prepara_importacao_das_metas_fisicas_do_ppa
	post 'loa/:subacao_id/metas_fisicas/importar', to: 'loa/metas_fisicas#importar', as: :importa_metas_fisicas_do_ppa

	get 'loa/subacoes/:unidade_orcamentaria_id/subacoes_por_unidade_orcamentaria', to: 'loa/subacoes#subacoes_por_unidade_orcamentaria'

	get 'loa/unidades_orcamentarias', to: 'loa/unidades_orcamentarias#index', as: :unidades_orcamentarias_listagem

	get 'envios_pncp/unidades_gestoras', to: 'loa/unidades_gestoras#envios_pncp', as: :envios_pncp

	namespace :loa do
		get 'validador_de_sim/enviar_arquivo', to: 'validador_de_sim#enviar_arquivo', as: :validador_de_sim_enviar_arquivo
		post 'validador_de_sim/validar_arquivo', to: 'validador_de_sim#validar_arquivo', as: :validador_de_sim_validar_arquivo
	end

	nested_resources :loa, :unidades_orcamentarias, 'orgaos/:id'
	nested_resources :loa, :unidades_gestoras, ':exercicio'
	nested_resources :loa, :gestores, ':exercicio/unidades_gestoras/:unidade_gestora_id', except: [:index, :show]
	nested_resources :loa, :transferencias_de_recursos, ':exercicio', except: [:show]
	nested_resources :loa, :elementos_de_despesa_por_subacao, 'subacoes/:subacao_id', to: 'elementos_de_despesa_por_subacao#index', except: [:show, :new, :create, :edit, :update, :destroy]
	nested_resources :loa, :tipos_de_deducao, ':exercicio', except: [:show]
	nested_resources :loa, :assessores_de_contabilidade_responsaveis, 'unidades_orcamentarias/:unidade_orcamentaria_id', except: [:index, :show]

	namespace :loa do
		resources :unidades_orcamentarias, only: [] do
			resources :assessores_de_contabilidade_responsaveis, except: [:index, :show], path: 'assessores_de_contabilidade_responsaveis' do
				member do
					get 'edit'
				end
			end
		end
	end
	
	namespace :loa do
		# SUGESTÃO DE CÓDIGO P/ NOVA AÇÃO
		get 'acoes/proximo_codigo/:natureza_da_acao_id/:programa_de_governo_id', defaults: { format: 'json' }, to: 'acoes#proximo_codigo', as: :proximo_codigo

		#SUBACOES
		get ':exercicio/subacoes', to: 'subacoes#index', as: :subacoes

		# ORCAMENTOS DA RECEITA
		get 'naturezas_da_receita/:id/orcamentos_da_receita', to: 'orcamentos_da_receita#edit', as: :edit_orcamento_da_receita
		put 'naturezas_da_receita/:id/orcamentos_da_receita',to: 'orcamentos_da_receita#update'

		# ORCAMENTOS DA DESPESA
		get 'elementos_de_despesa_por_subacao/:elemento_id/orcamentos_da_despesa', to: 'orcamentos_da_despesa#index'
		get 'subacoes/:id/orcamentos_da_despesa', to: 'orcamentos_da_despesa#edit', as: :edit_orcamento_da_despesa
		get 'acoes/:acao_id/orcamentos_da_despesa', to: 'orcamentos_da_despesa#edit', as: :edit_orcamento_da_despesa_via_acao
		put 'subacoes/:id/orcamentos_da_despesa',to: 'orcamentos_da_despesa#update'
		put 'acoes/:acao_id/orcamentos_da_despesa',to: 'orcamentos_da_despesa#update'

		get 'orcamentos_da_despesa/:id/retorna_codigo_fonte_de_recurso', to: 'orcamentos_da_despesa#retorna_codigo_fonte_de_recurso'

		#Orgaos
		get 'orgaos/:id/editar_logo', to: 'orgaos#editar_logo', as: :orgao_editar_logo
		patch 'orgaos/:id/atualizar_logo', to: 'orgaos#atualizar_logo', as: :orgao_atualizar_logo

		# ORÇAMENTOS TEMÁTICOS
		resources :orcamentos_tematicos, except: [:show]

		# METAS FÍSICAS
		get 'subacoes/:id/metas_fisicas/new', to: 'metas_fisicas#new', as: :new_meta_fisica
		get 'acoes/:acao_id/metas_fisicas/new', to: 'metas_fisicas#new', as: :new_meta_fisica_via_acao
		post 'metas_fisicas', to: 'metas_fisicas#create'
		get 'metas_fisicas/:id', to: 'metas_fisicas#edit', as: :edit_meta_fisica
		put 'metas_fisicas/:id',to: 'metas_fisicas#update'
		delete 'metas_fisicas/:id', to: 'metas_fisicas#destroy', as: :destroy_meta_fisica

		# RELATÓRIOS DO PLANEJAMENTO

		resources :relatorios_do_planejamento, only: [:new] do
			get 'imprimir', on: :collection
		end
		get '/relatorios_do_planejamento', to: 'relatorios_do_planejamento#selecionar_relatorio', as: :selecionar_relatorio

		# RELATORIOS
		get ':exercicio/relatorios/quadro_de_evolucao_da_despesa_por_funcao_excel', to: 'relatorios/impressao_de_loa#quadro_de_evolucao_da_despesa_por_funcao_excel', as: :quadro_de_evolucao_da_despesa_por_funcao_excel
		get ':exercicio/relatorios/quadro_de_evolucao_da_receita_por_categoria_economica_excel', to: 'relatorios/impressao_de_loa#quadro_de_evolucao_da_receita_por_categoria_economica_excel', as: :quadro_de_evolucao_da_receita_por_categoria_economica_excel

		get ':exercicio/relatorios/imprimir', to: 'relatorios/impressao_de_loa#prepara_impressao_loa', as: :prepara_impressao
		post ':exercicio/relatorios/imprimir', to: 'relatorios/impressao_de_loa#imprime_loa', as: :impressao_relatorio
		get ':exercicio/relatorios/selecionar_relatorio', to: 'relatorios/impressao_de_loa#selecionar_relatorio', as: :selecionar_relatorio_para_imprimir
		get ':exercicio/relatorios/mostrar_relatorio', to: 'relatorios/impressao_de_loa#mostrar_relatorio', as: :mostrar_relatorio


		resources :cotas_orcamentarias, only: [:index, :show, :edit, :update] do
			get 'gerar', on: :collection
			get 'imprimir_por_unidade', on: :collection
			get 'imprimir_por_fonte', on: :collection
			get 'imprimir_conferencia', on: :collection
			get 'index_setorial', on: :collection
		end

		resources :fontes_das_cotas_orcamentarias, only: [:edit, :update] do
			get 'edit_setorial', on: :member
			patch 'update_setorial', on: :member
		end

		resources :relatorios_da_loa, only: [:new] do
			get 'imprimir', on: :collection
		end
		get '/relatorios_da_loa', to: 'relatorios_da_loa#selecionar_relatorio', as: :selecionar_relatorio_loa


		#UNIDADES ORCAMENTARIAS
		get 'unidades_orcamentarias/retorna_json/unidades_orcamentarias', defaults: { format: 'json' }, to: 'unidades_orcamentarias#retorna_todas_as_unidades_orcamentarias'
		get 'unidades_orcamentarias/retorna_json_por_poder/:tipo_de_poder/unidades_orcamentarias', defaults: {format: 'json'}, to: 'unidades_orcamentarias#retorna_unidades_orcamentarias_por_tipo_de_poder' 
	end

	resources :orcamentos, path: 'loa', param: :exercicio do
		put 'alterar_status', to: 'orcamentos#alterar_status', as: :alterar_status
		put 'encerrar_plano_de_contas', to: 'orcamentos#encerrar_plano_de_contas', as: :encerrar_plano_de_contas
		get 'finalizar', to: 'orcamentos#finalizar', as: :finalizar
		delete 'deletar', to: 'orcamentos#destroy', as: :deletar
	end
end
