Rails.application.routes.draw do

	namespace :gestao_de_estoque do
		get '/', to: 'inicio#index', as: :inicio
		get '/encerramento', to: 'inicio#encerramento', as: :encerramento
		post '/criar_encerramento', to: 'inicio#criar_encerramento', as: :criar_encerramento
		delete '/encerramento/:id', to: 'inicio#deleta_encerramento', as: :deleta_encerramento
		get '/encerramento_exercicio', to: 'inicio#encerramento_exercicio', as: :encerramento_exercicio
		get '/:unidade_orcamentaria_id/almoxarifados_por_unidades_orcamentarias', to: 'almoxarifados#almoxarifados_por_unidades_orcamentarias', as: :almoxarifados_por_unidades_orcamentarias #Ajax
		get '/:unidade_orcamentaria_id/almoxarifados_por_unidades', to: 'almoxarifados#almoxarifados_por_unidades', as: :almoxarifados_por_unidades #Ajax
		get '/:empenho_id/retorna_almoxarifado_por_empenho', to: 'almoxarifados#retorna_almoxarifado_por_empenho', as: :retorna_almoxarifado_por_empenho
		get '/recebimento_de_materiais_por_unidade_orcamentaria_e_almoxarifado', to: 'recebimento_de_materiais#recebimento_de_materiais_por_unidade_orcamentaria_e_almoxarifado', as: :recebimento_de_materiais_por_unidade_orcamentaria_e_almoxarifado #Ajax
		get '/recebimento_de_materiais/:id/listar_itens_do_recebimento_por_codigo', to: 'recebimento_de_materiais#listar_itens_do_recebimento_por_codigo', as: :listar_itens_do_recebimento_por_codigo # Ajax
		get '/recebimento_de_materiais/buscar_valor_a_receber_do_item', to: 'recebimento_de_materiais#buscar_valor_a_receber_do_item'
		# almoxarifados
		resources :almoxarifados

		# consumos
		resources :consumos

		# rotas adicionais consumos
		get '/consumos/:id/editar_itens_do_consumo', to: 'consumos#editar_itens_do_consumo', as: :editar_itens_do_consumo
		patch '/consumos/:id/atualizar_itens_do_consumo', to: 'consumos#atualizar_itens_do_consumo', as: :atualizar_itens_do_consumo
		patch '/consumos/:id/retornar_para_aberto', to: 'consumos#retornar_para_aberto', as: :retornar_para_aberto
		patch '/consumos/:id/confirmar_consumo', to: 'consumos#confirmar_consumo', as: :confirmar_consumo
		patch '/consumos/:id/enviar_ao_almoxarifado', to: 'consumos#enviar_ao_almoxarifado', as: :enviar_ao_almoxarifado
		patch '/consumos/:id/receber_no_almoxarifado', to: 'consumos#receber_no_almoxarifado', as: :receber_no_almoxarifado
		patch '/consumos/:id/recusar_requisicao', to: 'consumos#recusar_requisicao', as: :recusar_requisicao
		
		# escolas
		resources :escolas
		
		# programas por consumo
		resources :programas_por_consumo

		get '/programas_por_consumo/:id/:programa_por_escola_id/:consumo_id/cadastrar_itens_por_consumo_e_programa', to: 'programas_por_consumo#cadastrar_itens_por_consumo_e_programa', as: :cadastrar_itens_por_consumo_e_programa
		patch '/programas_por_consumo/:id/:programa_por_escola_id/:consumo_id/atualizar_itens_por_consumo_e_programa', to: 'programas_por_consumo#atualizar_itens_por_consumo_e_programa', as: :atualizar_itens_por_consumo_e_programa

		# devolução de materiais
    resources :devolucoes_de_materiais

		# rotas adicionais Devolução de Material
		patch '/devolucoes_de_materiais/:id/enviar_devolucao_ao_almoxarifado', to: 'devolucoes_de_materiais#enviar_devolucao_ao_almoxarifado', as: :enviar_devolucao_ao_almoxarifado
		patch '/devolucoes_de_materiais/:id/cancelar_devolucao', to: 'devolucoes_de_materiais#cancelar_devolucao', as: :cancelar_devolucao
		get '/devolucoes_de_materiais/:id/editar_itens_das_devolucoes_de_materiais', to: 'devolucoes_de_materiais#editar_itens_das_devolucoes_de_materiais', as: :editar_itens_das_devolucoes_de_materiais
		patch '/devolucoes_de_materiais/:id/atualiza_itens_das_devolucoes_de_materiais', to: 'devolucoes_de_materiais#atualiza_itens_das_devolucoes_de_materiais', as: :atualiza_itens_das_devolucoes_de_materiais
		get '/devolucoes_de_materiais/:id/recusar_devolucao', to: 'devolucoes_de_materiais#recusar_devolucao', as: :recusar_devolucao
		patch '/devolucoes_de_materiais/:id/confirmar_recusa', to: 'devolucoes_de_materiais#confirmar_recusa', as: :confirmar_recusa
		patch '/devolucoes_de_materiais/:id/confirmar_devolucao', to: 'devolucoes_de_materiais#confirmar_devolucao', as: :confirmar_devolucao
		patch '/devolucoes_de_materiais/:id/receber_devolucao', to: 'devolucoes_de_materiais#receber_devolucao', as: :receber_devolucao
		# Ajax
		get '/devolucoes_de_materiais/:id/retorna_dados_itens', to: 'devolucoes_de_materiais#retorna_dados_itens', as: :retorna_dados_itens

		resources :programas_escolares

		resources :programa_por_escolas

		resources :programas_por_almoxarifado_e_transferencia
		# rotas adicionais Programa por almoxarifado e transferencia
		get '/programas_por_almoxarifado_e_transferencia/:id/:transferencia_id/cadastrar_itens_do_programa_por_almoxarifado_e_transferencia', to: 'programas_por_almoxarifado_e_transferencia#cadastrar_itens_do_programa_por_almoxarifado_e_transferencia', as: :cadastrar_itens_do_programa_por_almoxarifado_e_transferencia
		patch '/programas_por_almoxarifado_e_transferencia/:id/:transferencia_id/atualizar_itens_do_programa_por_almoxarifado_e_transferencia', to: 'programas_por_almoxarifado_e_transferencia#atualizar_itens_do_programa_por_almoxarifado_e_transferencia', as: :atualizar_itens_do_programa_por_almoxarifado_e_transferencia

		#resposaveis dos almoxarifados
		resources :responsaveis_dos_almoxarifados, except: [:index, :show, :destroy]
		#transferencias
		resources :transferencias

		# recebimento de materiais
		resources :recebimento_de_materiais
		post '/recebimento_de_materiais/:id/atualiza_informacoes_extras', to: "recebimento_de_materiais#atualiza_informacoes_extras", as: :atualiza_informacoes_extras
		# legislação bolsa de materiais
		scope '/legislacao_bolsa_de_materiais' do
			get '/', to: 'legislacao_bolsa_de_materiais#show', as: :legislacao_bolsa_de_materiais
			get '/edit', to: 'legislacao_bolsa_de_materiais#edit', as: :edit_legislacao_bolsa_de_materiais
			patch '/update', to: 'legislacao_bolsa_de_materiais#update', as: :update_legislacao_bolsa_de_materiais
		end

		# informações adicionais
		get '/recebimento_de_materiais/:id/editar_itens_do_recebimento_de_materiais', to: 'recebimento_de_materiais#editar_itens_do_recebimento_de_materiais', as: :editar_itens_do_recebimento_de_materiais
		patch '/recebimento_de_materiais/:id/atualiza_itens_do_recebimento_de_materiais', to: 'recebimento_de_materiais#atualiza_itens_do_recebimento_de_materiais', as: :atualiza_itens_do_recebimento_de_materiais

		get '/recebimento_de_materiais/:id/editar_itens_para_nota_mista', to: 'recebimento_de_materiais#editar_itens_para_nota_mista', as: :editar_itens_para_nota_mista
		patch '/recebimento_de_materiais/:id/atualizar_itens_para_nota_mista', to: 'recebimento_de_materiais#atualizar_itens_para_nota_mista', as: :atualizar_itens_para_nota_mista
		
		get '/transferencias/:id/editar_itens_da_transferencias', to: 'transferencias#editar_itens_da_transferencias', as: :editar_itens_da_transferencias
		patch '/transferencias/:id/atualiza_itens_da_transferencias', to: 'transferencias#atualiza_itens_da_transferencias', as: :atualiza_itens_da_transferencias
		
		patch '/transferencias/:id/retornar_para_confirmado', to: 'transferencias#retornar_para_confirmado', as: :reabrir

		patch '/transferencias/:id/solicitar_transferencia' , to: 'transferencias#solicitar_transferencia' , as: :solicitar_transferencia
		patch '/transferencias/:id/confirmar_transferencia' , to: 'transferencias#confirmar_transferencia' , as: :confirmar_transferencia
		patch '/transferencias/:id/confirmar_recebimento_da_transferencia' , to: 'transferencias#confirmar_recebimento_da_transferencia' , as: :confirmar_recebimento_da_transferencia

    patch '/recebimento_de_materiais/:id/tornar_definitivo', to: 'recebimento_de_materiais#tornar_definitivo', as: :tornar_definitivo_recebimento_de_material

		# status
		patch '/recebimento_de_materiais/:id/reabrir', to: 'recebimento_de_materiais#reabrir', as: :reabrir_recebimento_de_material
		patch '/recebimento_de_materiais/:id/fechar', to: 'recebimento_de_materiais#fechar', as: :fechar_recebimento_de_material
		patch '/recebimento_de_materiais/:id/receber_parcialmente', to: 'recebimento_de_materiais#receber_parcialmente', as: :receber_parcialmente_recebimento_de_material
		patch '/recebimento_de_materiais/:id/receber', to: 'recebimento_de_materiais#receber', as: :receber_recebimento_de_material
		patch '/recebimento_de_materiais/:id/devolver_ao_fornecedor', to: 'recebimento_de_materiais#devolver_ao_fornecedor', as: :devolver_ao_fornecedor_recebimento_de_material
		patch '/recebimento_de_materiais/:id/enviar_ao_patrimonio', to: 'recebimento_de_materiais#enviar_ao_patrimonio', as: :enviar_ao_patrimonio
		patch '/recebimento_de_materiais/:id/remoto', to: 'recebimento_de_materiais#remoto', as: :remoto

		get '/estoques', to: 'estoques#index'
		get '/estoques/:id', to: 'estoques#show'

		# informações adicionais
		get '/recebimento_de_materiais/:id/adicionar_informacoes_adicionais/:item_do_recebimento_id', to: 'recebimento_de_materiais#adicionar_informacoes_adicionais', as: :adicionar_informacoes_adicionais
		patch '/recebimento_de_materiais/:id/atualiza_informacoes_adicionais/:item_do_recebimento_id', to: 'recebimento_de_materiais#atualiza_informacoes_adicionais', as: :atualiza_informacoes_adicionais

		# intermodulos
		post '/recebimento_de_materiais/confirmar_multiplos_recebimentos', to: 'recebimento_de_materiais#confirmar_multiplos_recebimentos', as: :confirmar_multiplos_recebimentos_entradas

		# relatórios
		namespace :relatorios do
			get 'requisicoes_de_materiais/imprimir', to: 'requisicoes_de_materiais#imprimir', as: :requisicao_de_material_imprimir
			get 'recebimento_de_materiais/imprimir', to: 'recebimentos_de_materiais#imprimir', as: :recebimento_de_material_imprimir
			get 'consumos/imprimir', to: 'consumos#imprimir', as: :consumo_imprimir
			get 'transferencias/imprimir', to: 'transferencias#imprimir', as: :transferencia_imprimir
		end

		resources :relatorios_da_gestao_de_estoque, only: [:new] do
			get 'imprimir', on: :collection
		end
		get '/relatorios_da_gestao_de_estoque', to: 'relatorios_da_gestao_de_estoque#selecionar_relatorio', as: :selecionar_relatorio

		# comissão
		post '/comissoes/:id/extinguir_comissao', to: 'comissoes#extinguir_comissao', as: :extinguir_comissao
		post '/comissoes/:comissao_id/extinguir_membro/:id', to: 'membros_da_comissao#extinguir_membro', as: :extinguir_membro

		get '/estoques_por_almoxarifado' , to: "estoques#por_almoxarifado"
		get '/estoques_por_almoxarifado/:almoxarifado_id/:unidade_orcamentaria_id' , to: "estoques#exibir_por_almoxarifado" , as: :exibir_por_almoxarifado
		resources :comissoes do
			resources :membros_da_comissao, except: [:index, :show]
		end

		get '/estoque_especifico/:id' , to: "estoques#estoque_especifico" , as: :estoque_especifico
		# controle de extintores
		resources :controle_de_extintores

		get '/controle_de_extintores/:id/editar_manutencoes', to: "controle_de_extintores#editar_manutencoes", as: :editar_manutencoes
		patch '/controle_de_extintores/:id/atualizar_manutencoes', to: 'controle_de_extintores#atualizar_manutencoes', as: :atualizar_manutencoes

		# controle de pragas
		resources :controle_de_pragas
	end
	namespace :gestao_de_estoque, module: "licitacao" do
		resources :processos, only: [:show, :index]
	end
end
