Rails.application.routes.draw do
	namespace :administrativo do
		# REQUISIÇÃO DE MATERIAIS
		resources :requisicoes_de_materiais

		patch '/requisicoes_de_materiais/:id/reabrir_requisicao', to: 'requisicoes_de_materiais#reabrir_requisicao', as: :reabrir_requisicao
		patch '/requisicoes_de_materiais/:id/fechar_requisicao', to: 'requisicoes_de_materiais#fechar_requisicao', as: :fechar_requisicao
		patch '/requisicoes_de_materiais/:id/enviar_requisicao_ao_almoxarifado', to: 'requisicoes_de_materiais#enviar_requisicao_ao_almoxarifado', as: :enviar_requisicao_ao_almoxarifado
		patch '/requisicoes_de_materiais/:id/receber_no_almoxarifado', to: 'requisicoes_de_materiais#receber_no_almoxarifado', as: :receber_no_almoxarifado
		patch '/requisicoes_de_materiais/:id/atender_requisicao', to: 'requisicoes_de_materiais#atender_requisicao', as: :atender_requisicao
		patch '/requisicoes_de_materiais/:id/concluir_atendimento_parcial', to: 'requisicoes_de_materiais#concluir_atendimento_parcial', as: :concluir_atendimento_parcial
		patch '/requisicoes_de_materiais/:id/concluir_atendimento', to: 'requisicoes_de_materiais#concluir_atendimento', as: :concluir_atendimento
		patch '/requisicoes_de_materiais/:id/concluir_consumo', to: 'requisicoes_de_materiais#concluir_consumo', as: :concluir_consumo
		patch '/requisicoes_de_materiais/:id/retornar_ao_administrativo', to: 'requisicoes_de_materiais#retornar_ao_administrativo', as: :requisicoes_de_materiais_retornar_ao_administrativo

		# RECUSAR REQUISIÇÃO
		get '/requisicoes_de_materiais/:id/recusar_requisicao', to: 'requisicoes_de_materiais#recusar_requisicao', as: :recusar_requisicao
		patch '/requisicoes_de_materiais/:id/recusar', to: 'requisicoes_de_materiais#recusar', as: :recusar

		# ITENS DA REQUISIÇÃO
		get '/requisicoes_de_materiais/:id/editar_itens_das_requisicoes_de_materiais', to: 'requisicoes_de_materiais#editar_itens_das_requisicoes_de_materiais', as: :editar_itens_das_requisicoes_de_materiais
		patch '/requisicoes_de_materiais/:id/atualiza_itens_das_requisicoes_de_materiais', to: 'requisicoes_de_materiais#atualiza_itens_das_requisicoes_de_materiais', as: :atualiza_itens_das_requisicoes_de_materiais

		# DEMANDA PROGRAMADA
		get '/requisicoes_de_materiais/:id/demanda_programada', to: 'requisicoes_de_materiais#demanda_programada', as: :demanda_programada
		patch '/requisicoes_de_materiais/:id/atualiza_demanda_programada', to: 'requisicoes_de_materiais#atualiza_demanda_programada', as: :atualiza_demanda_programada

		# intermodulos
		post '/requisicoes_de_materiais/confirmar_multiplas_requisicoes', to: 'requisicoes_de_materiais#confirmar_multiplas_requisicoes', as: :confirmar_multiplas_requisicoes_saidas

		# LIQUIDAÇÔES
		get '/liquidacoes', to: 'liquidacoes#index', as: :liquidacoes
		get '/liquidacoes', to: 'liquidacoes#index', as: :liquidacao_confirmadas, defaults: { confirmados: true }
		get '/restos_a_pagar', to: 'liquidacoes#index', as: :liquidacao_restos_a_pagar, defaults: { restos_a_pagar: true }
		patch '/liquidacoes/:id/enviar_para_controladoria', to: 'liquidacoes#enviar_para_controladoria', as: :liquidacao_enviar_para_controladoria
		patch '/liquidacoes/:id/enviar_para_contabilidade', to: 'liquidacoes#enviar_para_contabilidade', as: :liquidacao_enviar_para_contabilidade
		patch '/liquidacoes/:id/confirmar_liquidacao', to: 'liquidacoes#confirmar_liquidacao', as: :liquidacao_confirmar
		patch '/liquidacoes/:id/retornar_para_solicitado', to: 'liquidacoes#retornar_para_solicitado', as: :liquidacao_reabrir
		patch 'liquidacoes/:id/aguardar_notas_fiscais', to: 'liquidacoes#aguardar_notas_fiscais', as: :liquidacao_aguardar_notas_fiscais

		get '/', to: 'inicio#index', as: :inicio

		#ITENS DO EMPENHO - NÃO É USADO DAQUI, É USADO A ROTA LÁ DO ROUTES.RB
		patch 'empenhos/itens_do_empenho/:id', to: 'empenhos#atualiza_itens' , as: :atualiza_itens_empenho
		get 'empenhos/itens_do_empenho/:id', to: 'empenhos#editar_itens' , as: :editar_itens_empenho

		get '/atas_de_registro_de_precos', to: '/licitacao/atas_de_registro_de_precos#index'
		get '/atas_de_registro_de_precos/:id', to: '/licitacao/atas_de_registro_de_precos#show', as: :ata_de_registro_de_precos

		namespace :relatorios do
			get 'empenhos/imprimir'   , to: 'empenhos#imprimir'   , as: :empenhos_imprimir
			get 'liquidacoes/imprimir', to: 'liquidacoes#imprimir', as: :liquidacoes_imprimir
			get 'pagamentos/imprimir', to: 'pagamentos#imprimir', as: :pagamentos_imprimir
			get 'liquidacoes/imprimir_doc', to: 'liquidacoes#imprimir_doc', as: :liquidacoes_imprimir_doc
		end

		########################################################################################################
		# RELATÓRIOS DO ADMINISTRATIVO

		resources :relatorios_do_administrativo, only: [:new] do
			get 'imprimir', on: :collection
		end
	end

	namespace :administrativo, module: "licitacao" do
		resources :contratos, only: [:show, :index]
		resources :processos, only: [:show, :index]
		get '/solicitacoes_de_contrato', to: 'contratos#index', as: :solicitacoes_de_contrato, defaults: { solicitacao: true }
	end

	namespace :administrativo, module: "contabilidade" do
		resources :solicitacao_de_alteracao_orcamentarias
		resources :pagamentos

		get '/restos_a_pagar_pagamento', to: 'pagamentos#index', as: :pagamentos_restos_a_pagar, defaults: { restos_a_pagar: true }

		resources :anulacoes_do_empenho, only: [] do
			member do
				patch :enviar_para_controladoria
				patch :confirmar_anulacao
			end
		end

		get 'lancamentos_do_orcamento_da_despesa/:exercicio/despesas', to: 'lancamentos_do_orcamento_da_despesa#despesas', as: :lancamentos_do_orcamento_da_despesa_despesas
		get 'lancamentos_do_orcamento_da_despesa/:exercicio/:orcamento_da_despesa/lancamentos', to: 'lancamentos_do_orcamento_da_despesa#lancamentos', as: :lancamentos_do_orcamento_da_despesa_lancamentos

		namespace :relatorios do
			get 'saldo_das_dotacoes/imprimir', to: 'saldo_das_dotacoes#imprimir', as: :saldo_das_dotacoes_imprimir
		end

		resources :diarias do
			member do
				get    'selecionar_dotacao'
				post   'adicionar_dotacao'
				delete 'excluir_dotacao/:orcamento_da_despesa_por_diaria_id', action: :excluir_dotacao, as: :excluir_dotacao
			end
		end
	end

	get 'solicitacao_de_alteracao_orcamentarias/editar_dotacoes_administrativo/:id', to: "contabilidade/solicitacao_de_alteracao_orcamentarias#editar_dotacoes_administrativo", as: :editar_dotacoes_administrativo
	post 'solicitacao_de_alteracao_orcamentarias/atualizar_dotacoes_administrativo/:id', to: "contabilidade/solicitacao_de_alteracao_orcamentarias#atualizar_dotacoes_administrativo", as: :atualizar_dotacoes_administrativo

	#passagens
	get    'passagens/new'     , to: 'contabilidade/passagens#new', as: :new_passagem
	get    'passagens/:id/edit', to: 'contabilidade/passagens#edit', as: :edit_passagem
	get    'passagens'         , to: 'contabilidade/passagens#index', as: :passagens
	get    'passagens/:id'     , to: 'contabilidade/passagens#show', as: :passagem
	post   'passagens'         , to: 'contabilidade/passagens#create'
	patch  'passagens/:id'     , to: 'contabilidade/passagens#update'
	put    'passagens/:id'     , to: 'contabilidade/passagens#update'
	delete 'passagens/:id'     , to: 'contabilidade/passagens#destroy'

	#ordens de compra
	get    'ordens_de_compra/imprimir', to: 'licitacao/relatorios/ordens_de_compra#imprimir'
	get    'ordens_de_compra/new'     , to: 'licitacao/ordens_de_compra#new', as: :new_ordem_de_compra
	get    'ordens_de_compra/:id/edit', to: 'licitacao/ordens_de_compra#edit', as: :edit_ordem_de_compra
	get    'ordens_de_compra'         , to: 'licitacao/ordens_de_compra#index', as: :ordens_de_compra
	get    'ordens_de_compra/:id'     , to: 'licitacao/ordens_de_compra#show', as: :ordem_de_compra
	post   'ordens_de_compra'         , to: 'licitacao/ordens_de_compra#create'
	patch  'ordens_de_compra/:id'     , to: 'licitacao/ordens_de_compra#update'
	put    'ordens_de_compra/:id'     , to: 'licitacao/ordens_de_compra#update'
	delete 'ordens_de_compra/:id'     , to: 'licitacao/ordens_de_compra#destroy'

	get 'ordens_de_compra/cancelar/:id', to: 'licitacao/ordens_de_compra#confirmar_cancelamento', as: :confirmar_cancelamento
	patch 'ordens_de_compra/cancelar/:id', to: 'licitacao/ordens_de_compra#cancelar', as: :cancelar_ordem
	get 'ordens_de_compra/itens_da_ordem_de_compra/:id', to: 'licitacao/ordens_de_compra#editar_itens' , as: :editar_itens_ordem_de_compra
	patch 'ordens_de_compra/atualiza_itens/:id', to: 'licitacao/ordens_de_compra#atualiza_itens' , as: :atualiza_itens_ordem_de_compra
	patch 'ordens_de_compra/fechar/:id', to: 'licitacao/ordens_de_compra#fechar', as: :fechar_ordem_de_compra
	patch 'ordens_de_compra/retornar_para_aberto/:id', to: 'licitacao/ordens_de_compra#retornar_para_aberto', as: :retornar_para_aberto
	patch 'ordens_de_compra/:id/liberar_saldo_dos_itens', to: 'licitacao/ordens_de_compra#liberar_saldo_dos_itens', as: :liberar_saldo_dos_itens
	patch 'ordens_de_compra/enviar_para_almoxarifado/:id', to: 'licitacao/ordens_de_compra#enviar_para_almoxarifado', as: :enviar_para_almoxarifado
	patch 'ordens_de_compra/confirmar_recebimento_almoxarifado/:id', to: 'licitacao/ordens_de_compra#confirmar_recebimento_almoxarifado', as: :confirmar_recebimento_almoxarifado
	get 'ordens_de_compra/recusar/:id', to: 'licitacao/ordens_de_compra#recusar_recebimento', as: :recusar_recebimento
	patch 'ordens_de_compra/recusar/:id', to: 'licitacao/ordens_de_compra#recusar', as: :recusar_ordem

	# envio de email da ordem de compra
	get 'ordens_de_compra/:id/enviar_por_email', to: 'licitacao/ordens_de_compra#enviar_ordem_de_compra_por_email', as: :enviar_ordem_de_compra_por_email

	namespace :administrativo, module: "contabilidade" do
		nested_subresources :obras, ':exercicio'
		nested_subresources :medicoes_da_obra, 'obras/:obra_id'
		nested_subresources :engenheiros_da_obra, 'obras/:obra_id', except: [:show]
		nested_subresources :empresas_da_obra, 'obras/:obra_id', except: [:show]
		nested_subresources :situacoes_da_obra, 'obras/:obra_id', except: [:show]
		nested_subresources :itens_do_empenho, 'empenhos/:empenho_id', except: [:show, :edit, :update, :index]
		nested_subresources :estornos_de_liquidacao, 'liquidacoes/:liquidacao_id', except: [:new, :create]

		get '/situacoes_da_obra/:id', to: 'situacoes_da_obra#show', as: :show_situacao_da_obra
	end

	namespace :administrativo, module: 'obra' do
		resources :ordens_de_servico, :except => [:destroy]
	end

	namespace :administrativo, module: "contabilidade" do
		patch 'liquidacoes/itens_da_nota_fiscal/:id', to: 'itens_da_nota_fiscal#atualiza_itens' , as: :atualiza_itens_liquidacao
		get 'liquidacoes/itens_da_nota_fiscal/:id', to: 'itens_da_nota_fiscal#editar_itens' , as: :editar_itens_liquidacao
		get 'liquidacoes/itens_da_nota_fiscal/:id/busca_itens', to: 'itens_da_nota_fiscal#busca_itens' , as: :busca_itens_liquidacao
		patch 'liquidacoes/itens_da_nota_fiscal/:id/adiciona_itens', to: 'itens_da_nota_fiscal#adiciona_itens', as: :adiciona_itens_liquidacao

		#estorno de liquidações
		patch 'estornos_de_liquidacao/:id/enviar_para_contabilidade', to: "estornos_de_liquidacao#enviar_para_contabilidade", as: :enviar_estorno_de_liquidacao_para_contabilidade
		patch 'estornos_de_liquidacao/:id/confirmar', to: "estornos_de_liquidacao#confirmar_estorno_de_liquidacao", as: :confirmar_estorno_de_liquidacao

	end

	nested_resources :administrativo, :liquidacoes, ':empenho_id', except: [:index]
end
