module Contabilidade::DocumentosDaDiariaHelper
	def substitui_variaveis_da_diaria(conteudo)
		conteudo = conteudo.gsub("{{NUMERO_DA_PORTARIA}}", "#{@diaria.numero_da_portaria}") if conteudo.include?("{{NUMERO_DA_PORTARIA}}")
		conteudo = conteudo.gsub("{{DATA_DA_PORTARIA}}", "#{@diaria.data_da_portaria}") if conteudo.include?("{{DATA_DA_PORTARIA}}")
		conteudo = conteudo.gsub("{{UNIDADE_GESTORA_DA_DIARIA}}", "#{@diaria.unidade_orcamentaria.unidade_gestora.nome}") if conteudo.include?("{{UNIDADE_GESTORA_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{ORGAO_DA_DIARIA}}", "#{@diaria.unidade_orcamentaria.orgao.nome}") if conteudo.include?("{{ORGAO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{DESTINO}}", "#{@diaria.cidade.nome_e_uf}") if conteudo.include?("{{DESTINO}}")
		conteudo = conteudo.gsub("{{PARTIDA}}", "#{@diaria.data_da_viagem}") if conteudo.include?("{{PARTIDA}}")
		conteudo = conteudo.gsub("{{RETORNO}}", "#{@diaria.data_do_retorno}") if conteudo.include?("{{RETORNO}}")
		conteudo = conteudo.gsub("{{VALOR_DO_DIA}}", "#{@diaria.valor.to_f.real_contabil} (#{@diaria.valor.to_f.try(:por_extenso_em_reais).upcase})") if conteudo.include?("{{VALOR_DO_DIA}}")
		conteudo = conteudo.gsub("{{QUANTIDADE_DE_DIARIAS}}", "#{@diaria.qtd_de_diarias} (#{@diaria.qtd_de_diarias.to_f.numero_por_extenso_diaria})") if conteudo.include?("{{QUANTIDADE_DE_DIARIAS}}")
		conteudo = conteudo.gsub("{{TOTAL_DA_DIARIA}}", "#{@diaria.valor_total.to_f.real_contabil} (#{@diaria.valor_total.to_f.try(:por_extenso_em_reais).upcase})") if conteudo.include?("{{TOTAL_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{MOTIVO_DA_VIAGEM}}", "#{@diaria.historico}") if conteudo.include?("{{MOTIVO_DA_VIAGEM}}")
		conteudo = conteudo.gsub("{{DOTACAO_DA_DIARIA}}", "#{dotacao_da_diaria}") if conteudo.include?("{{DOTACAO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{NOME_DO_ORDENADOR_DA_DIARIA}}", "#{ordenador_de_despesa_da_diaria.try(:nome)}") if conteudo.include?("{{NOME_DO_ORDENADOR_DA_DIARIA}}")
		# Agente Público da Diária
		conteudo = conteudo.gsub("{{AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.try(:nome)}") if conteudo.include?("{{AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{CPF_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.cpf.try(:as_cpf)}") if conteudo.include?("{{CPF_AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{MATRICULA_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.matricula_municipal}") if conteudo.include?("{{MATRICULA_AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{CARGO_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.tipo_de_cargo.try(:humanize)}") if conteudo.include?("{{CARGO_AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{OCUPACAO_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.codigo_ocupacao.try(:humanize)}") if conteudo.include?("{{OCUPACAO_AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{RG_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.try(:identidade)}") if conteudo.include?("{{RG_AGENTE_PUBLICO_DA_DIARIA}}")
		conteudo = conteudo.gsub("{{ENDERECO_DO_AGENTE_PUBLICO_DA_DIARIA}}", "#{agente_publico_da_diaria.try(:endereco_completo)}") if conteudo.include?("{{ENDERECO_DO_AGENTE_PUBLICO_DA_DIARIA}}")
		# Fornecedor do Empenho
		conteudo = conteudo.gsub("{{RAZAO_SOCIAL_DO_FORNECEDOR}}", "#{@empenho.try(:pessoa).try(:nome)}") if conteudo.include?("{{RAZAO_SOCIAL_DO_FORNECEDOR}}")
		conteudo = conteudo.gsub("{{CNPJ_DO_FORNECEDOR}}", "#{@empenho.try(:pessoa).try(:cpf_ou_cnpj)}") if conteudo.include?("{{CNPJ_DO_FORNECEDOR}}")
		conteudo = conteudo.gsub("{{ENDERECO_DO_FORNECEDOR}}", "#{@empenho.try(:pessoa).try(:endereco_completo)}") if conteudo.include?("{{ENDERECO_DO_FORNECEDOR}}")
		conteudo = conteudo.gsub("{{TELEFONE_DO_FORNECEDOR}}", "#{@empenho.try(:pessoa).try(:telefone)}") if conteudo.include?("{{TELEFONE_DO_FORNECEDOR}}")
		conteudo = conteudo.gsub("{{EMAIL_DO_FORNECEDOR}}", "#{emails_do_fornecedor}") if conteudo.include?("{{EMAIL_DO_FORNECEDOR}}")
		conteudo
	end

	def substitui_outras_variaveis(conteudo)

		conteudo = conteudo.gsub("{{DATA}}", "#{I18n.l(Date.today, format: :long, locale: 'pt-BR')}") if conteudo.include?("{{DATA}}")
		conteudo = conteudo.gsub("{{DATA_DO_DOCUMENTO}}", "#{params[:data_do_documento].present? ? I18n.l(params[:data_do_documento].to_date, format: :long, locale: 'pt-BR') : ''}") if conteudo.include?("{{DATA_DO_DOCUMENTO}}")
		conteudo = conteudo.gsub("{{ANO_DO_DOCUMENTO}}", "#{params[:data_do_documento].present? ? params[:data_do_documento].to_date.year : ''}") if conteudo.include?("{{ANO_DO_DOCUMENTO}}")
		conteudo = conteudo.gsub("{{LOCAL_E_DATA}}", "#{@configuracao.try(:cidade).try(:nome)}, #{I18n.l(Date.today, format: :long, locale: 'pt-BR')}") if conteudo.include?("{{LOCAL_E_DATA}}")
		conteudo = conteudo.gsub("{{MUNICIPIO_E_ESTADO}}", "Município de #{@configuracao.try(:cidade).try(:nome)}, Estado do #{@configuracao.try(:estado).try(:nome)}") if conteudo.include?("{{MUNICIPIO_E_ESTADO}}")
		conteudo = conteudo.gsub("{{PREFEITURA}}", "#{@configuracao.try(:nome_da_prefeitura)}") if conteudo.include?("{{PREFEITURA}}")
		conteudo = conteudo.gsub("{{EXERCICIO_ATUAL}}", "#{contexto_atual.exercicio}") if conteudo.include?("{{EXERCICIO_ATUAL}}")
		conteudo = conteudo.gsub("{{CNPJ_DA_PREFEITURA}}", "#{@configuracao.try(:cnpj_da_prefeitura)}") if conteudo.include?("{{CNPJ_DA_PREFEITURA}}")
		conteudo = conteudo.gsub("{{ENDERECO_DA_PREFEITURA}}", "#{@configuracao.try(:endereco_da_prefeitura)}") if conteudo.include?("{{ENDERECO_DA_PREFEITURA}}")
		conteudo = conteudo.gsub("{{TELEFONE_DA_PREFEITURA}}", "#{@configuracao.try(:telefone_da_prefeitura)}") if conteudo.include?("{{TELEFONE_DA_PREFEITURA}}")
		conteudo = conteudo.gsub("{{HORARIO_DA_PREFEITURA}}", "De #{@configuracao.try(:horario_inicio_funcionamento_da_prefeitura)} ás #{@configuracao.try(:horario_fim_funcionamento_da_prefeitura)} ") if conteudo.include?("{{HORARIO_DA_PREFEITURA}}")
		conteudo = conteudo.gsub("{{NOME_DO_PREGOEIRO}}", "#{@configuracao.try(:nome_do_pregoeiro)}") if conteudo.include?("{{NOME_DO_PREGOEIRO}}")
		conteudo
	end

	##########################################################################################
	# VARIÁVEIS REFERENTES À DIÁRIA

	def dotacao_da_diaria
		@diaria.orcamento_da_despesa_por_diaria.try(:classificacao_completa_com_subelemento)
	end

	def ordenador_de_despesa_da_diaria
		@diaria.unidade_orcamentaria.ordenadores_de_despesa.atual.try(:agente_publico)
	end

	def agente_publico_da_diaria
		@diaria.agente_publico_municipal
	end

	def emails_do_fornecedor
		emails = "#{@empenho.try(:pessoa).try(:email)}"
		if @empenho.pessoa.present? && @empenho.pessoa.email_alternativo.present?
			emails << " - #{@empenho.try(:pessoa).try(:email_alternativo)}"
		end
		return emails
	end
end
