module Contabilidade::ObrasHelper
	def rota_obras obra = @obra
		if params[:action] == "servicos"
			servicos_de_engenharia_path(exercicio: contexto_atual.exercicio)
		else
			if logado_na_contabilidade?
				if params["sem_classificacao"] || (obra.present? && !obra.try(:foi_classificada?))
					obras_sem_classificacao_contabilidade_obras_path
				elsif params["concluidas_a_tombar"] || (obra.present? && obra.try(:esta_concluida?))
					obras_concluidas_a_tombar_contabilidade_obras_path
				else
					contabilidade_obras_path
				end
			elsif logado_na_controladoria?
				controladoria_obras_path(exercicio: contexto_atual.exercicio)
			elsif logado_na_obra? || logado_no_administrativo?
				administrativo_obras_path(exercicio: contexto_atual.exercicio)
			else
				administrativo_obras_path(exercicio: contexto_atual.exercicio)
			end
		end
	end

	def rota_obra obra=@obra
		if contabilidade_atual
			contabilidade_obra_path(obra)
		elsif logado_na_controladoria?
			controladoria_obra_path(obra)
		elsif logado_na_obra?
			administrativo_obra_path(obra)
		else
			administrativo_obra_path(obra)
		end
	end

	def rota_ordem_de_servico ordem_de_servico=@ordem_de_servico
		if contabilidade_atual
			contabilidade_ordem_de_servico_path(ordem_de_servico)
		else
			if logado_no_administrativo?
				administrativo_ordem_de_servico_path(ordem_de_servico)
			else
				obra_ordem_de_servico_path(ordem_de_servico)
			end
		end
	end

	def rota_ordens_de_servico
		if contabilidade_atual
			contabilidade_ordens_de_servico_path
		else
			if logado_no_administrativo?
				administrativo_ordens_de_servico_path
			else
				obra_ordens_de_servico_path
			end
		end
	end

	def enviar_documento_da_medicao_da_obra medicao_da_obra_id
		@configuracoes = Configuracao.last
		pdf = WickedPdf.new.pdf_from_string(
				render_to_string(
					template: "obra/relatorios/relatorio_de_medicao_em_liquidacao.pdf.slim",
					orientation: 'Portrait',
					disable_smart_shrinking: true,
					
					dpi: '96',
					header: { html:
										{ template: 'layouts/_cabecalho_pdf.html.slim',
												locals:   { titulo1:  'Relatório de Medição em Liquidação' , titulo2: "" }
										},
										spacing: 5
									}
					)
			)

		email = @configuracoes.email_contabilidade
		unless email.blank?
			PrincipalMailer.relatorio_de_medicao_em_liquidacao(medicao_da_obra_id, email, pdf ).deliver_later unless Rails.env.development? || Rails.env.test?
		end
	end

	def rota_para_ordem_de_servico metodo, ordem_de_servico = nil
		if metodo == 'new'
			if logado_no_administrativo?
				new_administrativo_ordem_de_servico_path
			else
				new_obra_ordem_de_servico_path
			end
		elsif metodo == 'edit'
			if logado_no_administrativo?
				edit_administrativo_ordem_de_servico_path(ordem_de_servico)
			else
				edit_obra_ordem_de_servico_path(ordem_de_servico)
			end
		end
	end
end
