module ReceitaHelper
	def classificacao_da_receita_com_destaque(receita, modelo)
		posicao_de_destaque = receita.classificacao_com_niveis_utilizados.count - 1

		classificacao = receita.classificacao.try(:values)
		classificacao[posicao_de_destaque] = '<b>' + classificacao[posicao_de_destaque] + '</b>'
		classificacao.join('.').html_safe
	end

	def classificacao_da_receita_sem_destaque(receita, modelo)
		posicao_de_destaque = receita.classificacao_com_niveis_utilizados.count - 1

		classificacao = receita.classificacao.try(:values)
		classificacao[posicao_de_destaque] = classificacao[posicao_de_destaque]
		classificacao.join('.').html_safe
	end

	def receitas_com_e_sem_calculo_de_projecao_identificadas_em_hash receitas, projecao_de_receita
		exercicios_destino = projecao_de_receita.exercicios_destino
		exercicios_com_tipo = projecao_de_receita.exercicios_com_tipo
		receitas.map do |receita|
			tem_valor = false
			projecoes = exercicios_com_tipo.map do |exercicio_com_tipo|
				resultado = {}
				if exercicios_destino.include?(exercicio_com_tipo[:exercicio])
					total_agregado = receita.total_agregado(exercicio_com_tipo[:exercicio]).to_f
					background = total_agregado.eql?(0.0) && !receita.calculo_por_exercicios_projecao.find_by(exercicio: exercicio_com_tipo[:exercicio]) ? 'rgba(255, 0, 0, 0.5)' : false
					resultado = { total_agregado: total_agregado, background: background }
				else
					total_agregado = receita.total_agregado(exercicio_com_tipo[:exercicio], exercicio_com_tipo[:tipo])
					resultado = { total_agregado: total_agregado.to_f, background: false }
				end
				tem_valor = true if resultado[:total_agregado] != 0
				resultado
			end
			{id: receita.id, descricao: receita.descricao.to_s, codigo: classificacao_da_receita_com_destaque(receita, Projecao::Receita) , projecoes: projecoes } if (tem_valor && receita.codigo.present? )
		end
	end
end
