Rails.application.routes.draw do
	nested_resources :controladoria, :documentos_do_processo, 'processo/:projeto_id', except: [:index, :show]

	namespace :controladoria do
		resources :liquidacoes,  only: [:show, :index] do
			get '/'         , action: :index, on: :collection
			get '/pendentes', action: :index, on: :collection, defaults: { pendentes: true }

			member do
				patch :retornar_para_administrativo
				patch :enviar_para_contabilidade
				patch :enviar_para_administrativo
			end

			resources :vistos, except: [:destroy]
		end

    resources :centro_de_custos

		resources :responsaveis_do_centro_de_custos, except: [:index]

		get '/centro_de_custos/:id/editar_responsaveis_do_centro_de_custos', to: 'centro_de_custos#editar_responsaveis_do_centro_de_custos', as: :editar_responsaveis_do_centro_de_custos
		patch '/centro_de_custos/:id/atualiza_responsaveis_do_centro_de_custos', to: 'centro_de_custos#atualiza_responsaveis_do_centro_de_custos', as: :atualiza_responsaveis_do_centro_de_custos
		patch '/centro_de_custos/:id/alterar_ativacao', to: 'centro_de_custos#alterar_ativacao', as: :alterar_ativacao_centro_de_custos
		get '/centro_de_custos/:id/imprimir', to: 'centro_de_custos#imprimir', as: :centro_de_custos_imprimir

		resources :empenhos, only: [] do
			resources :vistos, except: [:destroy]
		end

		resources :pagamentos, only: [] do
			resources :vistos, except: [:destroy]
		end

		resources :anulacoes_do_empenho, only: [] do
			resources :vistos, except: [:destroy]
		end

		resources :contratos, only: [:index, :show] do
			patch :enviar_para_copfin, on: :member
			patch :enviar_para_licitacao, on: :member
			patch :retornar_para_licitacao, on: :member

			resources :vistos, except: [:destroy]
		end

		resources :aditivos , only: [:index, :show] do
			resources :vistos, except: [:destroy]
		end

		get '/solicitacoes_de_contrato', to: 'contratos#solicitacoes', as: :solicitacoes_de_contrato
		get '/aditivos_pendentes', to: 'contratos#aditivos_pendentes' , as: :aditivos_pendentes

		#get '/aditivo/:aditivo_id/vistos/new', to: 'vistos#new' , as: :new_controladoria_aditivo

		resources :projetos, only: [:index, :show] do
			get '/'         , action: :index, on: :collection
			get '/pendentes', to: '/controladoria/projetos#index', on: :collection, defaults: { pendentes: true }
			patch :enviar_para_copfin, on: :member
			patch :enviar_para_confirmar_projeto, on: :member
			patch :retornar_para_licitacao, on: :member

			resources :vistos, except: [:destroy]
			resources :modelos_de_documento
		end

		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

		get 'documentos_do_processo/:projeto_id/modelos/:id', to: 'documentos_do_processo#modelos', as: :modelos
		post 'documentos_do_processo/:projeto_id/retorna_modelo/:modelo_id', to: 'documentos_do_processo#retorna_modelo'

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

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

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

		resources :anulacoes_do_empenho, only: [] do
			member do
				patch :retornar_para_administrativo
				patch :enviar_para_administrativo
				patch :enviar_para_contabilidade
			end
		end
	end

	namespace :controladoria, module: "contabilidade" do
		resources :pagamentos,  only: [:show, :index] do
			get '/pendentes', on: :collection, to: 'pagamentos#index', defaults: { pendentes: true }
		end
	end

	namespace :controladoria, module: "contabilidade" do
		nested_subresources :estornos_de_liquidacao, 'liquidacoes/:liquidacao_id', except: [:edit, :update, :show, :destroy,:new, :create]
	end

	namespace :controladoria, module: "contabilidade" do
		nested_subresources :anulacoes_do_empenho, 'liquidacoes/:liquidacao_id', except: [:edit, :update, :show, :destroy,:new, :create]
	end

	namespace :controladoria, module: "licitacao" do
		nested_subresources :processos,  except: [:new, :create, :destroy, :edit, :update] do
			get '/', to: 'processos#index', on: :collection, defaults: { processo_licitatorio: true }
		end
	end
end
