module Licitacao::DocumentosDoAditivoHelper
	include Licitacao::DocumentosDoPedidoHelper
	include Licitacao::DocumentosDoProcessoHelper
	include Licitacao::DocumentosDoContratoHelper

	def substitui_variaveis_do_aditivo(conteudo)
		conteudo = conteudo.gsub("{{NUMERO_DO_ADITIVO}}", "#{@aditivo.try(:numero)}") if conteudo.include?("{{NUMERO_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{OBJETO_DO_ADITIVO}}", "#{@aditivo.try(:objeto)}") if conteudo.include?("{{OBJETO_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{JUSTIFICATIVA_DO_ADITIVO}}", "#{@aditivo.try(:justificativa)}") if conteudo.include?("{{JUSTIFICATIVA_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{VIGENCIA_DO_ADITIVO}}", "#{@aditivo.try(:inicio_da_vigencia)} a #{@aditivo.try(:fim_da_vigencia)}") if conteudo.include?("{{VIGENCIA_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{VIGENCIA_INICIAL_DO_ADITIVO}}", "#{@aditivo.try(:inicio_da_vigencia)}") if conteudo.include?("{{VIGENCIA_INICIAL_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{VIGENCIA_FINAL_DO_ADITIVO}}", "#{@aditivo.try(:fim_da_vigencia)}") if conteudo.include?("{{VIGENCIA_FINAL_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{NOME_DO_ORGAO_DO_ADITIVO}}", "#{orgao_do_aditivo.nome}") if conteudo.include?("{{NOME_DO_ORGAO_DO_ADITIVO}}")

		if @aditivo.present?
			conteudo = conteudo.gsub("{{ITENS_DO_ADITIVO_COMPLETO}}", "#{table_itens_do_aditivo_completo}") if conteudo.include?("{{ITENS_DO_ADITIVO_COMPLETO}}")
			conteudo = conteudo.gsub("{{ITENS_DO_ADITIVO_REEQUILIBRIO}}", "#{table_itens_do_aditivo_reequilibrio}") if conteudo.include?("{{ITENS_DO_ADITIVO_REEQUILIBRIO}}")
			conteudo = conteudo.gsub("{{ITENS_DO_ADITIVO_REEQUILIBRIO_AJUSTADO}}", "#{table_itens_do_aditivo_reequilibrio_ajustado}") if conteudo.include?("{{ITENS_DO_ADITIVO_REEQUILIBRIO_AJUSTADO}}")
		end

		conteudo = conteudo.gsub("{{LEGISLACAO_DO_ADITIVO}}", "#{@aditivo.try(:legislacao).try(:titulo)}") if conteudo.include?("{{LEGISLACAO_DO_ADITIVO}}")
		conteudo = conteudo.gsub("{{VALOR_DO_ADITIVO}}", "#{@aditivo.try(:valor_total).try(:real_contabil)} (#{@aditivo.try(:valor_total).try(:abs).try(:real_contabil).try(:real).try(:por_extenso_em_reais).try(:upcase) })") if conteudo.include?("{{VALOR_DO_ADITIVO}}")

		if @aditivo.present?
			conteudo = conteudo.gsub("{{DOTACOES_DO_ADITIVO}}", "#{dotacoes_do_aditivo}") if conteudo.include?("{{DOTACOES_DO_ADITIVO}}")
			conteudo = conteudo.gsub("{{DOTACOES_DO_ADITIVO_SUBELEMENTO}}", "#{dotacoes_do_aditivo_subelemento}") if conteudo.include?("{{DOTACOES_DO_ADITIVO_SUBELEMENTO}}")
		end

		conteudo
	end


	private

	##########################################################################################

	def dotacoes_do_aditivo
		lista = '<ul style="font-family: arial; font-size: 10pt;">'

		@aditivo.orcamentos_da_despesa_do_aditivo.each do |orcamento|
			lista << "<li>#{orcamento.classificacao_completa_com_subelemento}</li>"
		end

		lista << '</ul>'
	end

	def dotacoes_do_aditivo_subelemento
		lista = '<ul style="font-family: arial; font-size: 10pt;">'

		@aditivo.orcamentos_da_despesa_do_aditivo.each do |orcamento|
			lista << "<li>#{orcamento.variante_da_classificacao_completa_com_subelemento}</li>"
		end

		lista << '</ul>'
	end

	def orgao_do_aditivo
		@aditivo.unidade_orcamentaria_atual
	end

	# TABELA DE ITENS DO ADITIVO COMPLETO

	def table_itens_do_aditivo_completo
		table = '<table style="margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black; font-family: arial; font-size: 8pt;">
			<thead>
					<tr>
						<th style=\"border: 1px solid black;width: 5%;\">ITEM</th>
						<th style=\"border: 1px solid black \">DESCRIÇÃO</th>
						<th style=\"border: 1px solid black;width: 13%;\">QTD</th>
						<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT.</th>
						<th style=\"border: 1px solid black;width: 15%;\">VALOR TOTAL</th>
					</tr>
			</thead> <tbody>'
			@aditivo.itens_do_aditivo.por_id_dos_itens_do_lote.each_with_index do |item_do_aditivo, index|
				table <<
					"<tr>
						<td style=\"border: 1px solid black;text-align:center\">#{index + 1}</td>
						<td style=\"border: 1px solid black;text-align:justify\">#{item_do_aditivo.item_do_lote.item_do_pedido.try(:item).try(:codigo_e_descricao)}</td>
						<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.quantidade.try(:contabil)}</td>
						<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_do_item.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.total.try(:real_contabil)}</td>
					</tr>"
			end

		table <<
			"<tr>
				<th colspan='5' style=\"align: right; border: 1px solid black;\">TOTAL: #{@aditivo.valor_total.try(:real_contabil)}</th>
			</tr> </tbody> </table>"
	end

	# TABELA DE ITENS DO ADITIVO DE REEQUILIBRIO DE PREÇO

	def table_itens_do_aditivo_reequilibrio
		table = '<table style="margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black; font-family: arial; font-size: 8pt;">
			<thead>
				<tr>
					<th style=\"border: 1px solid black;width: 5%;\">ITEM</th>
					<th style=\"border: 1px solid black;\">DESCRIÇÃO</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. ATUAL</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. DO REAJUSTE</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. REAJUSTADO</th>
					<th style=\"border: 1px solid black;width: 13%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 15%;\">VALOR TOTAL DO REAJUSTE</th>
				</tr>
			</thead> <tbody>'

		@aditivo.itens_do_aditivo.por_id_dos_itens_do_lote.each_with_index do |item_do_aditivo, index|
			table <<
				"<tr>
					<td style=\"border: 1px solid black;text-align:center\">#{index + 1}</td>
					<td style=\"border: 1px solid black;text-align:justify\">#{item_do_aditivo.item_do_lote.item_do_pedido.try(:item).try(:codigo_e_descricao)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_do_item.try(:real_contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_adicionado.try(:real_contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_final_item_do_aditivo_de_reequilibrio.try(:real_contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.quantidade.try(:contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.total.try(:real_contabil)}</td>
				</tr>"
		end

		table <<
			"<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">TOTAL: #{@aditivo.try(:valor_total).try(:real_contabil)}</th>
			</tr> </tbody> </table>"
	end

	def table_itens_do_aditivo_reequilibrio_ajustado
		table = '<table style="margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black; font-family: arial; font-size: 8pt;">
			<thead>
				<tr>
					<th style=\"border: 1px solid black;width: 5%;\">ITEM</th>
					<th style=\"border: 1px solid black;\">DESCRIÇÃO</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. SEM REAJUSTE</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. DO REAJUSTE</th>
					<th style=\"border: 1px solid black;width: 13%;\">VALOR UNIT. REAJUSTADO</th>
					<th style=\"border: 1px solid black;width: 13%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 15%;\">VALOR TOTAL COM REAJUSTE</th>
				</tr>
			</thead> <tbody>'

		@aditivo.itens_do_aditivo.por_id_dos_itens_do_lote.each_with_index do |item_do_aditivo, index|
			table <<
				"<tr>
					<td style=\"border: 1px solid black;text-align:center\">#{index + 1}</td>
					<td style=\"border: 1px solid black;text-align:justify\">#{item_do_aditivo.item_do_lote.item_do_pedido.try(:item).try(:codigo_e_descricao)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_do_item.try(:real_contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.valor_adicionado.try(:real_contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{(item_do_aditivo.valor_do_item.to_f + item_do_aditivo.valor_adicionado.to_f).try(:real_contabil) }</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.quantidade.try(:contabil)}</td>
					<td style=\"border: 1px solid black;text-align:center\">#{item_do_aditivo.total.try(:real_contabil)}</td>
				</tr>"
		end

		table <<
			"<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">TOTAL: #{@aditivo.try(:valor_total).try(:real_contabil)}</th>
			</tr> </tbody> </table>"
	end
end
