Rails.application.routes.draw do
	nested_resources :contabilidade, :imposto_sobre_servicos, ':exercicio'
	nested_resources :contabilidade, :despesas_extra_orcamentarias, ':exercicio'
	nested_resources :contabilidade, :documentos_da_diaria, 'diaria/:diaria_id', except: [:index, :show]
	nested_resources :contabilidade, :documentos_do_decreto, 'decreto/:decreto_id', except: [:index, :show]
	nested_resources :contabilidade, :documentos_da_liquidacao, 'liquidacao/:liquidacao_id', except: [:index, :show]
	nested_resources :contabilidade, :membros_dos_comites_de_investimento, 'comite_de_investimento/:comite_de_investimento', except: [:index, :show]
	nested_resources :contabilidade, :membros_do_conselho_do_rpps, 'conselho_de_rpps/:conselho_de_rpps', except: [:index, :show]
	nested_resources :contabilidade, :fundos_de_investimento, 'conta_bancaria/:conta_bancaria', except: [:index, :show]
	nested_resources :contabilidade, :acompanhamentos_de_parcelamento_do_rpps, 'parcelamento_do_rpps/:parcelamento_do_rpps', except: [:index, :show]

	namespace :contabilidade do
		resources :importacoes_de_eventos_contabeis
	end

	get 'contabilidade/taloes_de_receita/fontes_de_recursos', to: 'contabilidade/taloes_de_receita#fontes_de_recursos'
	get 'contabilidade/taloes_de_receita/fontes_de_recursos_extra', to: 'contabilidade/taloes_de_receita#fontes_de_recursos_extra'
	get 'contabilidade/anulacoes_dos_taloes_de_receita/fontes_de_recursos', to: 'contabilidade/anulacoes_dos_taloes_de_receita#fontes_de_recursos'
	get 'contabilidade/cancelamentos_de_restos_a_pagar/empenhos_por_unidade_nao_processados', to: 'contabilidade/cancelamentos_de_restos_a_pagar#empenhos_por_unidade_nao_processados', as: :empenhos_por_unidade_nao_processados
	get 'contabilidade/cancelamentos_de_restos_a_pagar/empenhos_por_unidade_processados', to: 'contabilidade/cancelamentos_de_restos_a_pagar#empenhos_por_unidade_processados', as: :empenhos_por_unidade_processados
	get 'contabilidade/sub_elementos_de_despesa/contas_por_subelemento', to: 'contabilidade/sub_elementos_de_despesa#contas_por_subelemento'
	get 'contabilidade/controle_de_pagamentos/liquidacoes_folha_de_pagamento', to: 'contabilidade/controle_de_pagamentos#liquidacoes_folha_de_pagamento', as: :liquidacoes_folha_de_pagamento
	get 'contabilidade/controle_de_pagamentos/liquidacoes_sem_folha_de_pagamento', to: 'contabilidade/controle_de_pagamentos#liquidacoes_sem_folha_de_pagamento', as: :liquidacoes_sem_folha_de_pagamento
	patch 'contabilidade/controle_de_pagamentos/:id/adicionar_contas_retencao', to: 'contabilidade/controle_de_pagamentos#adicionar_contas_retencao' , as: :adicionar_contas_retencao
	get 'contabilidade/controle_de_pagamentos/:id/cadastrar_contas_retencao', to: 'contabilidade/controle_de_pagamentos#cadastrar_contas_retencao' , as: :cadastrar_contas_retencao
	patch 'contabilidade/controle_de_pagamentos/:id/atualiza_contas_do_grupo_da_retencao', to: 'contabilidade/controle_de_pagamentos#atualiza_contas_do_grupo_da_retencao' , as: :atualiza_contas_do_grupo_da_retencao
	get 'contabilidade/controle_de_pagamentos/:id/editar_contas_do_grupo_da_retencao', to: 'contabilidade/controle_de_pagamentos#editar_contas_do_grupo_da_retencao' , as: :editar_contas_do_grupo_da_retencao
	patch 'contabilidade/controle_de_pagamentos/:id/atualiza_conta_liquidacao', to: 'contabilidade/controle_de_pagamentos#atualiza_conta_liquidacao' , as: :atualiza_conta_liquidacao
	get 'contabilidade/controle_de_pagamentos/:id/editar_conta_liquidacao', to: 'contabilidade/controle_de_pagamentos#editar_conta_liquidacao' , as: :editar_conta_liquidacao
	patch 'contabilidade/controle_de_pagamentos/:id/pagar_liquido', to: 'contabilidade/controle_de_pagamentos#pagar_liquido' , as: :pagar_liquido
	patch 'contabilidade/controle_de_pagamentos/:id/pagar_retencoes', to: 'contabilidade/controle_de_pagamentos#pagar_retencoes' , as: :pagar_retencoes
	patch 'contabilidade/controle_de_pagamentos/:id/pagar_total', to: 'contabilidade/controle_de_pagamentos#pagar_total' , as: :pagar_total
	get 'contabilidade/liquidacoes/:liquidacao_id/pagamentos/:ultimo_pagamento_id/new', to: 'contabilidade/pagamentos#new', as: :novo_pagamento_cancelando_antigo
	get 'contabilidade/configuracoes_do_evento_contabil/:evento_contabil_id/new', to: "contabilidade/configuracoes_do_evento_contabil#new", as: :new_configuracao_do_evento_contabil
	get 'contabilidade/configuracoes_de_folha/novo', to: "contabilidade/configuracoes_de_folha#new", as: :nova_configuracao_de_folha
	get 'contabilidade/bem_do_balancete/:id/editar_bem', to: "contabilidade/balancetes_de_verificacoes#editar_bem", as: :editar_bem
	patch 'contabilidade/bem_do_balancete/:id/atualizar_bem', to: "contabilidade/balancetes_de_verificacoes#atualizar_bem", as: :atualizar_bem

	namespace :contabilidade do
    resources :configuracoes_do_evento_contabil, only: [:create, :edit, :update]
		resources :grupo_de_eventos_contabeis
		resources :configuracoes_de_folha, only: [:index, :create, :edit, :update, :destroy]
  end

	namespace :contabilidade do
    resources :tentativas_de_movimentacoes_do_plano_de_contas, only: [:index, :show, :edit, :update]
  end

	namespace :contabilidade, module: "licitacao" do
		resources :contratos, only: [:show, :index]
		get '/contratos_criados_na_contabilidade', to: 'contratos#index', as: :contratos_criados_na_contabilidade,defaults: { criado_na_contabilidade: true }

		resources :processos, only: [:show] do
			collection do
				get '/'               , action: :index, defaults: { processo_licitatorio: true }
				get '/dispensa'       , action: :index, defaults: { dispensa: true }
				get '/inexigibilidade', action: :index, defaults: { inexigibilidade: true }
				get '/parcerias'      , action: :index, defaults: { parcerias: true }
				get '/outros' 		  , action: :index, defaults: { outros: true }
			end
		end
		get '/processos_criados_na_contabilidade', to: 'processos#index', as: :processos_criados_na_contabilidade, defaults: { criado_na_contabilidade: true }

		resources :pedidos, only: [:show, :index]
		get '/pedidos_criados_na_contabilidade', to: 'pedidos#index', as: :pedidos_criados_na_contabilidade, defaults: { criado_na_contabilidade: true }
	end

	namespace :contabilidade do

    # ARQUIVOS MSC
    resources :periodos_matriz_de_saldos_contabeis do
      get :download_arquivos_msc, on: :member
    end
		get 'periodos_matriz_de_saldos_contabeis/:id/editar_campos_para_mapeamentos_manuais', to: "periodos_matriz_de_saldos_contabeis#editar_campos_para_mapeamentos_manuais", as: :editar_campos_para_mapeamentos_manuais
		patch 'periodos_matriz_de_saldos_contabeis/:id/atualizar_campos_para_mapeamentos_manuais', to: "periodos_matriz_de_saldos_contabeis#atualizar_campos_para_mapeamentos_manuais", as: :atualizar_campos_para_mapeamentos_manuais
		get 'periodos_matriz_de_saldos_contabeis/:anexo/linha_de_campos_para_mapeamentos_manuais_filtrado', to: 'periodos_matriz_de_saldos_contabeis#linha_de_campos_para_mapeamentos_manuais_filtrado'

		resources :sub_contas_pcasp
		patch '/inativar_subconta_pcasp', to: 'sub_contas_pcasp#inativar_subconta_pcasp'

		resources :transacoes_da_conciliacao
		resources :lotes_de_receitas, except: [:new, :create, :destroy] do
			member do
				get 'aprovar'
			end
		end
		resources :retornos_bancarios, except: [:edit, :update]
		resources :convenios_bancarios
		resources :lotes_bancarios do
			collection do
				get 'gerar_lotes'
				post 'gera_lotes'
			end
			member do
				get 'remover_item'
				get 'download'
				get 'imprimir'
				get 'cancelar'
				get 'reabrir'
				get 'finalizar'
			end
		end

		resources :comites_de_investimento do
			get 'extinguir_comite', to: 'comites_de_investimento#extinguir_comite', on: :member
		end

		resources :despesas_extra_orcamentarias do
			member do
				get 'imprimir'
			end
		end

		resources :membros_dos_comites_de_investimento, except: [:index, :show] do
			post 'extinguir_membro', to: 'membros_dos_comites_de_investimento#extinguir_membro', on: :member
		end

		resources :membros_do_conselho_do_rpps, except: [:index, :show] do
			post 'extinguir_membro', to: 'membros_do_conselho_do_rpps#extinguir_membro', on: :member
		end

		resources :demonstrativos_de_informacoes_previdenciarias

		get ':contigenciamento_id/decretos/new', to: 'decretos#new', as: :new_decreto_de_contigenciamento
		get '/inicio', to: 'inicio#index', as: :inicio
		get '/', to: 'alteracao_orcamentaria_inicio#index', as: :alteracao_orcamentaria_inicio
		get '/financeiro/', to: 'financeiro_inicio#index', as: :financeiro_inicio

		namespace :relatorios do
			get 'retornos_bancarios/imprimir', to: 'retornos_bancarios#imprimir', as: :imprimir
			get 'empenhos/imprimir', to: 'empenhos#imprimir', as: :empenhos_imprimir
			get 'liquidacoes/imprimir', to: 'liquidacoes#imprimir', as: :liquidacoes_imprimir
			get 'diarias/imprimir', to: 'diarias#imprimir', as: :diarias_imprimir
			get 'saldo_das_dotacoes/imprimir', to: 'saldo_das_dotacoes#imprimir', as: :saldo_das_dotacoes_imprimir
			get 'decretos/imprimir', to: 'decretos#imprimir', as: :decretos_imprimir
			get 'contas/imprimir', to: 'contas#imprimir', as: :contas_imprimir
			get 'taloes_de_receita/imprimir', to: 'taloes_de_receita#imprimir', as: :taloes_de_receita_imprimir
			get 'balancetes_de_verificacoes/imprimir', to: 'balancetes_de_verificacoes#imprimir', as: :balancetes_de_verificacoes_imprimir
			get 'livro_razao/:conta_id/imprimir', to: 'balancetes_de_verificacoes#imprimir', as: :livro_razao_imprimir
			get 'verificar_ics/:conta_id/imprimir', to: 'balancetes_de_verificacoes#imprimir', as: :verificar_ics_imprimir
			get 'controle_de_pagamentos/imprimir', to: 'controle_de_pagamentos#imprimir', as: :controle_de_pagamentos_imprimir
			get 'cancelamentos_de_restos_a_pagar/imprimir', to: 'cancelamentos_de_restos_a_pagar#imprimir', as: :cancelamentos_de_restos_a_pagar_imprimir
			get 'solicitacoes_de_alteracao_orcamentaria/imprimir', to: 'solicitacoes_de_alteracao_orcamentaria#imprimir', as: :solicitacoes_de_alteracao_orcamentaria_imprimir
			get 'mapeamentos/imprimir', to: 'mapeamentos#imprimir', to: 'mapeamentos#imprimir', as: :mapeamentos_imprimir
			get 'mapeamentos/imprimir2', to: 'mapeamentos#imprimir2', to: 'mapeamentos#imprimir2', as: :mapeamentos_imprimir2
			get 'mapeamentos/imprimir_erros', to: 'mapeamentos#imprimir_erros', to: 'mapeamentos#imprimir_erros', as: :mapeamentos_imprimir_erros
			get 'transferencias/imprimir', to: 'transferencias#imprimir', as: :transferencias_imprimir
			get 'lei_de_financas/imprimir', to: 'lei_de_financas#imprimir', to: 'lei_de_financas#imprimir', as: :lei_de_financas_imprimir
		end

		get 'documentos_da_diaria/:diaria_id/retorna_modelo/:modelo_id', to: 'documentos_da_diaria#retorna_modelo'
		get 'documentos_da_diaria/:diaria_id/modelos', to: 'documentos_da_diaria#modelos'
		get 'documentos_do_decreto/:decreto_id/retorna_modelo/:modelo_id', to: 'documentos_do_decreto#retorna_modelo'
		get 'documentos_da_liquidacao/:liquidacao_id/retorna_modelo/:modelo_id', to: 'documentos_da_liquidacao#retorna_modelo'
		get 'documentos_da_liquidacao/:liquidacao_id/modelos', to: 'documentos_da_liquidacao#modelos'

		resources :anulacoes_da_conta_extra
		resources :cancelamentos_de_restos_a_pagar

		get 'motivos_do_cancelamento/cancelamentos_de_restos_a_pagar', to: 'cancelamentos_de_restos_a_pagar#motivos_do_cancelamento', as: :motivos_do_cancelamento

		get 'restos_a_pagar_cancelados/retorna_valor_unitario_do_item_de_rp', to: 'restos_a_pagar_cancelados#retorna_valor_unitario_do_item_de_rp'
	
		resources :restos_a_pagar_cancelados, only: [:show, :edit, :update]


		resources :controle_de_pagamentos do
			collection do
				get '/com_folha', action: :index, defaults: { com_folha: true }
				get '/com_folha_autorizados', action: :index, defaults: { com_folha: true, autorizados: true }
				get '/sem_folha', action: :index, defaults: { sem_folha: true }
			end
		end

		patch '/cancelamentos_de_restos_a_pagar/:id/confirmar_cancelamento', to: 'cancelamentos_de_restos_a_pagar#confirmar_cancelamento', as: :cancelamento_confirmar
		patch '/cancelamentos_de_restos_a_pagar/:id/enviar_para_contabilidade', to: 'cancelamentos_de_restos_a_pagar#enviar_para_contabilidade', as: :enviar_cancelamento_para_contabilidade

		resources :conselhos_de_rpps do
			member do
				patch :extinguir_conselho
			end
		end
		resources :alocacoes_de_recurso_de_rpps
		resources :acompanhamentos_de_parcelamento_do_rpps, except: [:index, :show]

		resources :aportes_despesas
		get 'aportes_despesas/:natureza_do_lancamento/retorna_tipos_de_aportes', to: 'aportes_despesas#retorna_tipos_de_aportes'

		resources :parcelamentos_do_rpps
		get 'parcelamentos_do_rpps/:parcelamento_do_rpps_id/dados_do_parcelamento_do_rpps' , to: 'parcelamentos_do_rpps#dados_do_parcelamento_do_rpps' # Ajax


		resources :investimentos_do_rpps do
			collection do
				get 'retorna_saldo_inicial', to: 'investimentos_do_rpps#retorna_saldo_inicial'
			end
		end

		resources :estornos_de_liquidacao do
			collection do
				get '/a_receber',		action: :index, defaults: { a_receber: true }
				get '/a_confirmar', 	action: :index, defaults: { a_confirmar: true }
			end
		end

		resources :anulacoes_do_empenho, path_names: { new: '/new/empenho/:empenho_id/:tipo', create: '/empenho/:empenho_id/:tipo' }, except: [:index] do
			collection do
				get '/',						action: :index
				get '/a_receber',		action: :index, defaults: { a_receber: true }
				get '/a_confirmar', 	action: :index, defaults: { a_confirmar: true }
				get '/em_analise',     action: :index, defaults: { em_analise: true }
			end
		end

		resources :contas_extra_orcamentarias do
			member do
				get 'detalhamento_da_movimentacao/:unidade_orcamentaria_id', action: :detalhamento_da_movimentacao, as: :detalhamento_da_movimentacao
				patch '/ativar', to: 'contas_extra_orcamentarias#ativar'
			end
			get '/movimentacoes_das_contas', to: 'contas_extra_orcamentarias#movimentacoes_das_contas', on: :collection
			get '/retorna_receita_da_conta', to: 'contas_extra_orcamentarias#retorna_receita_da_conta', on: :collection # Ajax
			get '/retorna_saldo', to: 'contas_extra_orcamentarias#retorna_saldo' # Ajax
		end

		resources :lancamentos_extraorcamentario_receita, only: [:show, :index]
		resources :lancamentos_extraorcamentario_despesa, only: [:show, :index]

		resources :contigenciamentos do
			get '/orcamentarios', to: 'contigenciamentos#index', on: :collection, defaults: { orcamentarios: true }
			get '/financeiros', to: 'contigenciamentos#index', on: :collection, defaults: { financeiros: true }
		end

		resources :taloes_de_receita do
			collection do
				get '/',               action: :index
				get '/orcamentarios',       action: :index, defaults: { orcamentarios: true }
				get '/extra_orcamentarios', action: :index, defaults: { extra_orcamentarios: true }
			end

			resources :anulacoes_dos_taloes_de_receita, path: 'anulacoes', except: [:index, :show]

		end

		resources :anulacoes_dos_taloes_de_receita do
			member do
				get '/imprimir', action: :imprimir
			end
		end

		resources :orcamentos_do_contingenciamento, only: [:new, :create, :edit, :update]
		resources :bloqueio_de_dotacoes do
			member do
				patch :desbloquear
			end
		end

		resources :solicitacao_de_alteracao_orcamentarias do
			collection do
				get '/alteracoes_por_dotacao', action: :alteracoes_por_dotacao
				get '/solicitacoes',             action: :index, defaults: { solicitacoes: true }
				get '/suplementares',            action: :index, defaults: { suplementares: true }
				get '/especiais',                action: :index, defaults: { especiais: true }
				get '/extraordinarios',          action: :index, defaults: { extraordinarios: true }
				get '/confirmados',              action: :index, defaults: { confirmados: true }
				get '/enviados_ao_planejamento', action: :index, defaults: { enviados_ao_planejamento: true }
			end
			member do
				get   :editar_dotacoes
				patch :atualizar_dotacoes
				get   :editar_subacoes_da_solicitacao
				patch :atualizar_subacoes_da_solicitacao
				patch :enviar_para_contabilidade
				get   :confirmar_indeferir_alteracao
				patch :indeferir_alteracao
				patch :confirmar_alteracao
				patch :voltar_etapa
				post :duplica_alteracao_orcamentaria
			end
		end
		get 'editar_dotacoes_ajuste/:decreto_id', to: 'solicitacao_de_alteracao_orcamentarias#editar_dotacoes_ajuste' , as: :editar_dotacoes_ajuste
		post 'atualizar_dotacoes_ajuste', to: 'solicitacao_de_alteracao_orcamentarias#atualizar_dotacoes_ajuste' , as: :atualizar_dotacoes_ajuste
		get 'criar_alteracao_a_partir_do_decreto/:decreto_id', to: 'solicitacao_de_alteracao_orcamentarias#criar_alteracao_a_partir_do_decreto', as: :criar_alteracao_a_partir_do_decreto

		resources :decretos do
			patch :fechar, on: :member
			patch :retornar_para_solicitado
			get '/', to: 'decretos#index', on: :collection
			get '/decretos_contigenciamento', to: 'decretos#index', on: :collection, defaults: { contigenciamento: true }
			get '/decretos_rpps', to: 'decretos#index', on: :collection, defaults: { rpps: true }
			get '/retorna_dados_da_legislacao' , to: 'decretos#retorna_dados_da_legislacao' # Ajax
			get 'revogar_decreto', to: 'decretos#revogar_decreto', on: :member
		end

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

		# TRANSFERENCIA ENTRE UNIDADES ORCAMENTARIAS
		resources :transferencias_financeiras do
			member do
				patch  'confirmar'
			end
		end

		resources :transferencias_nao_financeiras

		get 'lancamentos_manuais_em_unidades_orcamentarias/edit', to: 'lancamentos_manuais_em_unidades_orcamentarias#edit', as: :lancamentos_manuais_em_unidades_orcamentarias_edit
		put 'lancamentos_manuais_em_unidades_orcamentarias/', to: 'lancamentos_manuais_em_unidades_orcamentarias#update', as: :lancamentos_manuais_em_unidades_orcamentarias_update

		# LANÇAMENTOS DA RECEITA
		get 'lancamentos_do_orcamento_da_receita/:natureza_da_receita_id/lancamentos_agrupados', to: 'lancamentos_do_orcamento_da_receita#lancamentos_agrupados', as: :lancamentos_do_orcamento_da_receita_agrupados
		get 'lancamentos_do_orcamento_da_receita/:natureza_da_receita_id/lancamento_da_receita', to: 'lancamentos_do_orcamento_da_receita#lancamento_da_receita', as: :lancamentos_da_receita
		get 'lancamentos_do_orcamento_da_receita/:exercicio/receitas', to: 'lancamentos_do_orcamento_da_receita#receitas', as: :lancamentos_do_orcamento_da_receita_receitas
		get 'lancamentos_do_orcamento_da_receita/:exercicio/:orcamento_da_receita/lancamentos', to: 'lancamentos_do_orcamento_da_receita#lancamentos', as: :lancamentos_do_orcamento_da_receita_lancamentos
		get 'lancamentos_do_orcamento_da_receita/:id/edit', to: 'lancamentos_do_orcamento_da_receita#edit', as: :lancamentos_do_orcamento_da_receita_edit
		post 'lancamentos_do_orcamento_da_receita/:id/update', to: 'lancamentos_do_orcamento_da_receita#update', as: :lancamentos_do_orcamento_da_receita_update
		get 'lancamentos_do_orcamento_da_receita/extra_orcamentarios', to: 'lancamentos_do_orcamento_da_receita#receitas', as: :lancamentos_das_receitas_extraorcamentaria, defaults: { extra_orcamentarios: true }

		# LANÇAMENTOS DA DESPESA
		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

		get 'lancamentos_do_orcamento_da_despesa/:exercicio/quadro_de_detalhamento', to: 'lancamentos_do_orcamento_da_despesa#quadro_de_detalhamento', as: :lancamentos_do_orcamento_da_despesa_quadro_de_detalhamento

		# VALOR DE UMA MEDIÇÃO DE UMA OBRA
		get 'medicoes_da_obra/:medicao_da_obra_id/retorna_dados_da_medicao', to: 'medicoes_da_obra#retorna_dados_da_medicao', as: :retorna_dados_da_medicao

		# PLANO DE CONTAS > EVENTOS CONTÁBEIS > CONTAS DO EVENTO CONTÁBIL
		get     'eventos_contabeis/:evento_contabil_id/contas_do_evento_contabil/new', to: 'contas_por_eventos_contabeis#new', as: :conta_por_evento_contabil_new
		post    'eventos_contabeis/:evento_contabil_id/contas_do_evento_contabil',     to: 'contas_por_eventos_contabeis#create', as: :contas_por_evento_contabil_create
		delete  'conta_do_evento_contabil/:id', to: 'contas_por_eventos_contabeis#destroy', as: :contas_por_eventos_contabeis_destroy


		# PLANO DE CONTAS: MOVIMENTAÇÕES
		resources :movimentacoes_do_plano_de_contas
		get 'movimentacoes_do_plano_de_contas/:gerador_id/new_por_gerador', to: 'movimentacoes_do_plano_de_contas#new_por_gerador', as: :new_por_gerador
		post 'movimentacoes_do_plano_de_contas/create/por_gerador', to: 'movimentacoes_do_plano_de_contas#create_por_gerador', as: :create_por_gerador

		get 'movimentacoes_do_plano_de_contas/index_movimentacoes_manuais/index', to: 'movimentacoes_do_plano_de_contas#index_movimentacoes_manuais', as: :index_movimentacoes_manuais

		# PLANO DE CONTAS: CONSULTAS - BALANCETES DE VERIFICAÇÕES
		resources :consulta_balancetes_de_verificacoes, only: [:index, :show]

		# PLANO DE CONTAS: GERAR - BALANCETES DE VERIFICAÇÕES
		resources :balancetes_de_verificacoes
		#	ITENS DA NOTA FISCAL
		delete '/itens_da_nota_fiscal/:id', to: 'itens_da_nota_fiscal#destroy', as: :destroy_itens_da_nota_fiscal
		# RETENÇÕES DE IMPOSTOS DA LIQUIDAÇÃO
		get '/liquidacoes/:liquidacao_id/retencoes', to: 'retencoes#edit', as: :edit_retencoes_liquidacao
		put '/liquidacoes/:liquidacao_id/retencoes', to: 'retencoes#update', as: :update_retencoes_liquidacao
		get '/liquidacoes/:liquidacao_id/retencoes/:imposto_type', to: 'retencoes#get_retencao'
		get 'liquidacoes/:id/editar_retencoes_de_folha', to: 'liquidacoes#editar_retencoes_de_folha' , as: :editar_retencoes_de_folha
		patch 'liquidacoes/:id/atualiza_retencoes_de_folha', to: 'liquidacoes#atualiza_retencoes_de_folha' , as: :atualiza_retencoes_de_folha
		get 'liquidacoes/:empenho_da_liquidacao/retorna_tipos_de_reconhecimento_do_passivo', to: 'liquidacoes#retorna_tipos_de_reconhecimento_do_passivo'

		# RETENÇÕES DE IMPOSTOS DOS PAGAMENTOS
		get '/pagamentos/:pagamento_id/retencoes', to: 'retencoes#edit', as: :edit_retencoes
		put '/pagamentos/:pagamento_id/retencoes', to: 'retencoes#update', as: :update_retencoes
		get '/pagamentos/:pagamento_id/retencoes/:imposto_type', to: 'retencoes#get_retencao'
		get 'pagamentos/:id/editar_retencoes_de_folha', to: 'pagamentos#editar_retencoes_de_folha' , as: :editar_retencoes_de_folha_pagamento
		patch 'pagamentos/:id/atualiza_retencoes_de_folha', to: 'pagamentos#atualiza_retencoes_de_folha' , as: :atualiza_retencoes_de_folha_pagamento

		#Retenções
		get 'retencoes/:liquidacao_id/retencoes_por_liquidacao', to: 'retencoes#retencoes_por_liquidacao', as: :retencoes_por_liquidacao

		delete '/retencoes/:id', to: 'retencoes#destroy', as: :destroy_retencoes_de_folha


		# ROTAS PARA IMPOSTO DE RENDA
		resources :impostos_de_renda
		resources :inss
		resources :pagamentos_das_retencoes, except: [:index, :show]

		# INDEX PARA LIQUIDAÇÕES DA CONTABILIDADE ATUAL
		get   'liquidacoes/new', to: 'liquidacoes#new', as: :criar_liquidacao

		resources :liquidacoes, except: [:new, :create, :edit, :update] do
			get '/'            , action: :index, on: :collection
			get '/em_analise', to: 'liquidacoes#index', on: :collection, defaults: { em_analise: true }
			get '/sol_restos_a_pagar', to: 'liquidacoes#index', on: :collection, defaults: {sol_restos_a_pagar: true}
			get '/confirmados', to: 'liquidacoes#index', on: :collection, defaults: { confirmados: true }
			get '/restos_a_pagar', to: 'liquidacoes#index', on: :collection, defaults: { restos_a_pagar: true }
			get '/enviados_para_o_financeiro', to: 'liquidacoes#index', on: :collection, defaults: { enviados_para_o_financeiro: true }
			get '/recebidos_pelo_financeiro', to: 'liquidacoes#index', on: :collection, defaults: { recebidos_pelo_financeiro: true }
			get '/enviados_para_contabilidade', to: 'liquidacoes#index', on: :collection, defaults: { enviados_para_contabilidade: true }
			get '/recebidos', to: 'liquidacoes#index', on: :collection, defaults: { recebidos: true }
			get '/autorizados', to: 'liquidacoes#index', on: :collection, defaults: { autorizados: true }
			get '/anulacao_liquidacao', to: 'liquidacoes#index', on: :collection, defaults: { anulacao_liquidacao: true }

			member do
				patch  :retornar_para_administrativo
				patch  :retornar_para_solicitado
				patch  :retornar_para_recebido
				post   :duplicar
				delete :remover_retencoes, as: :remover_retencoes_liquidacao
			end

			resources :notas_fiscais, path: 'nota_fiscal', except: %i[index show]

		end
		post  'liquidacoes', to: 'liquidacoes#create'
		patch 'liquidacoes/:id/confirmar_liquidacao', to: 'liquidacoes#confirmar_liquidacao', as: :liquidacao_confirmar
		patch 'liquidacoes/:id/receber', to: 'liquidacoes#receber', as: :liquidacao_receber
		patch 'liquidacoes/:id/receber_pelo_financeiro', to: 'liquidacoes#receber_pelo_financeiro', as: :liquidacao_receber_pelo_financeiro
		patch 'liquidacoes/:id/enviar_para_o_financeiro', to: 'liquidacoes#enviar_para_o_financeiro', as: :liquidacao_enviar_para_o_financeiro
		patch 'liquidacoes/:id/autorizar', to: 'liquidacoes#autorizar', as: :liquidacao_autorizar
		patch 'liquidacoes/:id/aguardar_notas_fiscais', to: 'liquidacoes#aguardar_notas_fiscais', as: :liquidacao_aguardar_notas_fiscais
		get   'liquidacoes/:id/retorna_dados_da_liquidacao', to: 'liquidacoes#retorna_dados_da_liquidacao'
		get   'liquidacoes/:id/retorna_dados_do_fornecedor_da_liquidacao', to: 'liquidacoes#retorna_dados_do_fornecedor_da_liquidacao'
		get   'liquidacoes/:id/retorna_tipos_de_emissao_da_nota_fiscal', to: 'liquidacoes#retorna_tipos_de_emissao_da_nota_fiscal'
		post 	'liquidacoes/receber_multiplas_liquidacoes_na_contabilidade', to: 'liquidacoes#receber_multiplas_liquidacoes_na_contabilidade', as: :receber_multiplas_liquidacoes_na_contabilidade
		post 	'liquidacoes/autorizar_multiplas_liquidacoes', to: 'liquidacoes#autoriza_multiplas_liquidacoes', as: :liquidacao_autorizar_multiplas
		post 	'liquidacoes/receber_multiplas_liquidacoes_no_financeiro', to: 'liquidacoes#receber_multiplas_liquidacoes_no_financeiro', as: :receber_multiplas_liquidacoes_no_financeiro
		patch	'liquidacoes/:id/retornar_para_contabilidade', to: 'liquidacoes#retornar_para_contabilidade', as: :liquidacoes_retornar_para_contabilidade
		post 'liquidacoes/retorna_selecionados_para_contabilidade', to: 'liquidacoes#retorna_selecionados_para_contabilidade', as: :retorna_selecionados_para_contabilidade
		post 'liquidacoes/retorna_selecionados_para_o_administrativo', to: 'liquidacoes#retorna_selecionados_para_o_administrativo', as: :retorna_selecionados_para_o_administrativo
		get 'liquidacoes/index/recebidos_pelo_financeiro_email', to: 'liquidacoes#recebidos_pelo_financeiro_email', as: :recebidos_pelo_financeiro_email
		get 'liquidacoes/:id/editar_liquidacoes_filhas', to: 'liquidacoes#editar_liquidacoes_filhas', as: :editar_liquidacoes_filhas
		patch 'liquidacoes/:id/atualizar_liquidacoes_filhas', to: 'liquidacoes#atualizar_liquidacoes_filhas', as: :atualizar_liquidacoes_filhas

		# PAGAMENTOS
		get   'pagamentos', to: 'pagamentos#index'
		get   'pagamentos/restos_a_pagar', to: 'pagamentos#index', defaults: { restos_a_pagar: true }
		get   'pagamentos/new', to: 'pagamentos#new', as: :criar_pagamento
		post  'pagamentos', to: 'pagamentos#create'
		get   'pagamentos/:id/edit', to: 'pagamentos#edit', as: :editar_pagamento
		post  'pagamentos', to: 'pagamentos#update'
		patch 'pagamentos/:id/enviar_para_controladoria', to: 'pagamentos#enviar_para_controladoria', as: :pagamento_enviar_para_controladoria
		patch 'pagamentos/:id/confirmar_pagamento', to: 'pagamentos#confirmar_pagamento', as: :pagamento_confirmar_pagamento
		patch 'pagamentos/:id/retornar_para_administrativo', to: 'pagamentos#retornar_para_administrativo', as: :pagamento_retornar_para_administrativo
		patch 'pagamentos/:id/enviar_para_contabilidade', to: 'pagamentos#enviar_para_contabilidade', as: :pagamento_enviar_para_contabilidade
		patch 'pagamentos/:id/enviar_para_administrativo', to: 'pagamentos#enviar_para_administrativo', as: :pagamento_enviar_para_administrativo
		get   'pagamentos/:id/cancelar_estorno', to: 'pagamentos#cancelar_estorno', as: :pagamento_cancelar_estorno

		# VALORES DO CONVENIO
		get 'convenios/:convenio_id/valores_do_convenio', to: 'valores_do_convenio#edit', as: :valores_do_convenio_edit
		put 'convenios/:convenio_id/valores_do_convenio', to: 'valores_do_convenio#update', as: :valores_do_convenio_update

		# IMPORTACAO
		get 'convenios/prepara_importacao', to: 'convenios#prepara_importacao', as: :prepara_importacao_dos_convenios_do_ppa
		post 'convenios/importar', to: 'convenios#importar', as: :importar_convenio_ppa

		get   '/medicoes_da_obra/:id/medir_itens_do_servico', to: 'medicoes_da_obra#editar_itens_do_servico', as: :editar_itens_do_servico
		patch '/medicoes_da_obra/:id/medir_itens_do_servico', to: 'medicoes_da_obra#atualizar_itens_do_servico', as: :atualizar_itens_do_servico
		patch '/medicoes_da_obra/:id/voltar_para_aberta', to: 'medicoes_da_obra#voltar_para_aberta', as: :voltar_para_aberta_medicao
		patch '/medicoes_da_obra/:id/enviar_para_cef', to: 'medicoes_da_obra#enviar_para_cef', as: :enviar_para_cef_medicao
		patch '/medicoes_da_obra/:id/liberar_pela_cef', to: 'medicoes_da_obra#liberar_pela_cef', as: :liberar_pela_cef_medicao
		patch '/medicoes_da_obra/:id/confirmar', to: 'medicoes_da_obra#confirmar', as: :confirmar_medicao
		patch '/medicoes_da_obra/convidar', to: 'medicoes_da_obra#convidar', as: :convidar_medicao
		patch '/medicoes_da_obra/:id/reenviar_email', to: 'medicoes_da_obra#reenviar_email', as: :reenviar_email_medicao
		get  '/medicoes_da_obra/medir', to: 'medicoes_da_obra#medir', as: :medir_medicao
		patch '/medicoes_da_obra/enviar_medicao', to: 'medicoes_da_obra#enviar_medicao', as: :enviar_medicao
		get '/medicoes_da_obra/show_medicao', to: 'medicoes_da_obra#show_medicao', as: :show_medicao
		get   '/medicoes_da_obra/:id/medir_itens_do_servico_externo', to: 'medicoes_da_obra#editar_itens_do_servico_externo', as: :editar_itens_do_servico_externo
		patch '/medicoes_da_obra/:id/medir_itens_do_servico_externo', to: 'medicoes_da_obra#atualizar_itens_do_servico_externo', as: :atualizar_itens_do_servico_externo
		get   '/medicoes_da_obra', to: 'medicoes_da_obra#index', as: :medicoes_da_obra
		patch '/medicoes_da_obra/:id/lancar', to: 'medicoes_da_obra#lancar', as: :lancar
		patch '/medicoes_da_obra/:id/retornar_para_a_liquidar', to: 'medicoes_da_obra#retornar_para_a_liquidar', as: :retornar_para_a_liquidar

		resources :relatorios_pcasp, only: [:index]

		########################################################################################################
		# RELATÓRIOS DA CONTABILIDADE

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

	namespace :contabilidade, module: "obra" do
		resources :ordens_de_servico, except: [:edit, :new, :destroy]
	end

	namespace :contabilidade do
		resources :obras, only: [:index] do
			collection do
				get '/',	action: :index
				get '/sem_classificacao', action: :index, defaults: { sem_classificacao: true }, as: "obras_sem_classificacao"
				get '/concluidas_a_tombar', action: :index, defaults: { concluidas_a_tombar: true }, as: "obras_concluidas_a_tombar"
			end
		end
	end

	namespace :contabilidade do
		resources :grupos_de_retencoes_do_controle_de_pagamento, only: [ :destroy ] do 
			collection do 
				get ':id/editar_grupo_de_contas', action: :editar_grupo_de_contas, as: "editar_grupo_de_contas"
				patch ':id/atualizar_grupo_de_contas', action: :atualizar_grupo_de_contas, as: "atualizar_grupo_de_contas"
			end
		end
		resources :conciliacoes_bancarias, except: [:edit, :update] do
			collection do
				get '/:transacao_da_conciliacao_id/:movimentacao_id/conciliar', action: :conciliar, as: "conciliar_movimentacao_bancaria"
				get 'conciliar_selecionados', action: :conciliar_selecionados, as: "conciliar_selecionados_movimentacao_bancaria"
			end
		end

		resources :conjuntos_de_lancamentos_contabeis, except: [:edit, :update] do
			collection do
				get 'new/:modelo_do_lancamento', action: :new, as: "new_conjuntos_de_lancamento_com_tipo"
				get 'pesquisa_eventos_manuais', action: :pesquisa_eventos_manuais, as: "pesquisa_eventos_manuais"
				get 'resultado_pesquisa_eventos_manuais', action: :resultado_pesquisa_eventos_manuais, as: "resultado_pesquisa_eventos_manuais"
				get 'retorna_dados_dos_eventos_manuais/:evento_manual_id', action: :retorna_dados_dos_eventos_manuais, as: "retorna_dados_dos_eventos_manuais"
			end
		end
	end

	nested_resources :contabilidade, :irrfs_pessoas_juridicas, ':exercicio'
	nested_resources :contabilidade, :inss_pessoas_juridicas, ':exercicio'
	nested_resources :contabilidade, :convenios_contas_bancarias, 'convenios/:convenio_id', except: [:index, :edit, :update, :show]
	nested_resources :contabilidade, :obras, '/', except: [:index, :edit, :new, :destroy]
	nested_resources :contabilidade, :medicoes_da_obra, 'obras/:obra_id', except: [:index, :edit, :new, :destroy, :update]
	nested_resources :contabilidade, :suplementacoes_do_empenho, 'empenhos/:empenho_id', except: [:show, :edit, :update, :destroy, :index]
	nested_resources :contabilidade, :itens_do_empenho, 'empenhos/:empenho_id', except: [:show, :edit, :update]
	nested_resources :contabilidade, :liquidacoes, 'empenhos/:empenho_id', except: [:index]
	nested_resources :contabilidade, :estornos_de_despesa_extra_orcamentaria, 'despesas_extra_orcamentarias/:despesa_extra_orcamentaria_id', except: [:index, :show]
	nested_resources :contabilidade, :itens_da_nota_fiscal, 'liquidacoes/:liquidacao_id', except: [:index, :show, :edit, :update]
	nested_resources :contabilidade, :metas_fisicas_da_liquidacao, 'liquidacoes/:liquidacao_id', except: [ :index, :show, :edit, :update ]
	nested_resources :contabilidade, :pagamentos, 'liquidacoes/:liquidacao_id', except: [:index ,:edit , :update]

	put '/contabilidade/pagamento/:id/atualizar_prepagamento_em_pagamento', to: 'contabilidade/pagamentos#atualizar_prepagamento_em_pagamento', as: :atualizar_prepagamento_em_pagamento
	delete '/contabilidade/pagamento/:id/remover_retencoes', to: 'contabilidade/pagamentos#remover_retencoes', as: :remover_retencoes
	nested_resources :contabilidade, :estornos_de_pagamento, 'pagamentos/:pagamento_id', except: [:index, :edit, :update]
	nested_resources :contabilidade, :convenios, ':exercicio'
	nested_resources :contabilidade, :irrfs_pessoas_fisicas, 'impostos_de_renda/:imposto_de_renda_id'
	nested_resources :contabilidade, :inss_pessoas_fisicas, 'inss/:inss_id', except: [:index]

	#IRPF 
	get '/contabilidade/irpf_por_data_do_pagamento', to: 'contabilidade/impostos_de_renda#irpf_por_data_do_pagamento'

	# CONTABILIDADE > PLANO DE CONTAS
	nested_resources :contabilidade, :contas, ':exercicio'
	get 'contabilidade/contas/:id/retorna_dados_da_conta', to: 'contabilidade/contas#retorna_dados_da_conta', as: :retorna_dados_da_conta
	get 'contabilidade/contas/:id/registros_contabeis', to: 'contabilidade/contas#registros_contabeis', as: :registros_contabeis
	patch 'contabilidade/atualiza_saldos_de_contas/contas', to: 'contabilidade/contas#atualiza_saldos_de_contas', as: :atualiza_saldos_de_contas

	nested_resources :contabilidade, :eventos_contabeis, ':exercicio'
	# LANÇAMENTO MANUAL
	get  'contabilidade/eventos_contabeis/:id/lancamento_manual', to: 'contabilidade/eventos_contabeis#lancamento_manual', as: :lancamento_manual_contabilidade_evento_contabil
	post 'contabilidade/eventos_contabeis/:id/cria_lancamento_manual', to: 'contabilidade/eventos_contabeis#cria_lancamento_manual'
	# DOTAÇÕES (ORÇAMENTO DA DESPESA) DO EVENTO CONTÁBIL
	get 'contabilidade/eventos_contabeis/:id/adiciona_dotacao', to: 'contabilidade/eventos_contabeis#adiciona_dotacao' , as: :adiciona_dotacao_contabilidade_evento_contabil
	post 'contabilidade/eventos_contabeis/:id/salvar_dotacao', to: 'contabilidade/eventos_contabeis#salvar_dotacao' , as: :salvar_dotacao_contabilidade_evento_contabil
	post 'contabilidade/eventos_contabeis/:id/atualiza_dotacao', to: 'contabilidade/eventos_contabeis#atualiza_dotacao' , as: :atualiza_dotacao_contabilidade_evento_contabil
	delete 'contabilidade/eventos_contabeis/excluir_dotacao/:orcamento_da_despesa_por_evento_contabil_id', to: 'contabilidade/eventos_contabeis#excluir_dotacao', as: :excluir_dotacao_contabilidade_evento_contabil
	# ORÇAMENTO DA RECEITA DO EVENTO CONTÁBIL
	get 'contabilidade/eventos_contabeis/:id/adiciona_receita', to: 'contabilidade/eventos_contabeis#adiciona_receita' , as: :adiciona_receita_contabilidade_evento_contabil
	post 'contabilidade/eventos_contabeis/:id/salvar_receita', to: 'contabilidade/eventos_contabeis#salvar_receita' , as: :salvar_receita_contabilidade_evento_contabil
	post 'contabilidade/eventos_contabeis/:id/atualiza_receita', to: 'contabilidade/eventos_contabeis#atualiza_receita' , as: :atualiza_receita_contabilidade_evento_contabil
	delete 'contabilidade/eventos_contabeis/excluir_receita/:orcamento_da_receita_por_evento_contabil_id', to: 'contabilidade/eventos_contabeis#excluir_receita', as: :excluir_receita_contabilidade_evento_contabil

	get 'contabilidade/eventos_contabeis/:id/editar_contas', to: 'contabilidade/eventos_contabeis#editar_contas' , as: :editar_contas
	patch 'contabilidade/eventos_contabeis/:id/atualizar_contas', to: 'contabilidade/eventos_contabeis#atualizar_contas' , as: :atualizar_contas

	# GRUPO DE EVENTOS 
	get 'contabilidade/index_grupos_dos_eventos', to: 'contabilidade/eventos_contabeis#index_grupos_dos_eventos', as: :index_grupos_dos_eventos

	# CONFIGURAÇÕES DOS EVENTOS CONTÁBEIS POR AÇÃO DE SISTEMA
	get 'contabilidade/configuracoes_dos_eventos_contabeis/:exercicio', to: 'orcamentos#configuracoes_eventos_contabeis', as: :configurar_eventos_contabeis
	put 'contabilidade/configuracoes_dos_eventos_contabeis/',           to: 'orcamentos#configuracoes_eventos_contabeis_update'

	# ESTORNOS DE LIQUIDACAO
	patch 'estornos_de_liquidacao/:id/confirmar', to: "contabilidade/estornos_de_liquidacao#confirmar_estorno_de_liquidacao", as: :confirmar_estorno_de_liquidacao
	patch 'estornos_de_liquidacao/:id/receber', to: "contabilidade/estornos_de_liquidacao#receber_estorno_de_liquidacao", as: :receber_estorno_de_liquidacao
	patch 'estornos_de_liquidacao/:id/retornar_para_administrativo', to: "contabilidade/estornos_de_liquidacao#retornar_para_solicitado", as: :retornar_para_solicitado_o_estorno_de_liquidacao
	post 	'estornos_de_liquidacao/receber_varios_itens', to: "contabilidade/estornos_de_liquidacao#receber_varios_itens", as: :receber_varios_estornos_de_liquidacao
	post 	'estornos_de_liquidacao/confirmar_varios_itens', to: "contabilidade/estornos_de_liquidacao#confirmar_varios_itens", as: :confirmar_varios_estornos_de_liquidacao
	get 	'estornos_de_liquidacao/:id', to: 'contabilidade/estornos_de_liquidacao#show', as: :anulacao_de_liquidacao, defaults: { anulacao_liquidacao: true }

	# ANULAÇÕES DE EMPENHOS
	patch 'anulacoes_do_empenho/:id/receber_anulacao', to: "contabilidade/anulacoes_do_empenho#receber_anulacao", as: :receber_anulacao_do_empenho
	post 	'anulacoes_do_empenho/receber_varios_itens', to: "contabilidade/anulacoes_do_empenho#receber_varios_itens", as: :receber_varias_anulacoes_do_empenho
	post 	'anulacoes_do_empenho/confirmar_varios_itens', to: "contabilidade/anulacoes_do_empenho#confirmar_varios_itens", as: :confirmar_varias_anulacoes_do_empenho
	patch 'anulacoes_do_empenho/:id/retornar_para_solicitado', to: "contabilidade/anulacoes_do_empenho#retornar_para_solicitado", as: :anulacoes_do_empenho_retornar_para_solicitado
	get 'anulacoes_do_empenho/:id/editar_itens', to: "contabilidade/anulacoes_do_empenho#editar_itens", as: :anulacoes_do_empenho_editar_itens
	patch 'anulacoes_do_empenho/:id/atualizar_itens', to: "contabilidade/anulacoes_do_empenho#atualizar_itens", as: :anulacoes_do_empenho_atualizar_itens

	# OBRAS
	post ':exercicio/obras/contas_pcasp', to: "contabilidade/obras#recuperar_contas_pcasp", as: :recuperar_contas_pcasp
	post ':exercicio/obras/dados_de_obra_via_contrato', to: "contabilidade/obras#recuperar_dados_de_obra_via_contrato", as: :recuperar_dados_de_obra_via_contrato
	post ':exercicio/obras/verificar_se_contrato_tem_obra_do_tipo_obra', to: "contabilidade/obras#verificar_se_contrato_tem_obra_do_tipo_obra", as: :verificar_se_contrato_tem_obra_do_tipo_obra
	patch "contabilidade/obras/:id/tombar_obra", to: "contabilidade/obras#tombar_obra", as: :contabilidade_tombar_obra

	#Lançamentos Manuais
	get 'lancamentos_manuais_index', to: "contabilidade/lancamentos_manuais#index", as: :lancamentos_manuais_index

end
