module Licitacao::DocumentosDoProcessoHelper
	include Licitacao::DocumentosDoPedidoHelper

	def substitui_variaveis_do_projeto(conteudo)
		conteudo = conteudo.gsub("{{LEI_FEDERAL}}", "#{@processo.localizar(:lei_federal)}") if conteudo.include?("{{LEI_FEDERAL}}")
		conteudo = conteudo.gsub("{{NUMERO_DO_PROJETO_BASICO}}", "#{@processo.pedido.numero}") if conteudo.include?("{{NUMERO_DO_PROJETO_BASICO}}")
		conteudo = conteudo.gsub("{{NUMERO_DO_PROCESSO_ORIGINAL}}", "#{@processo.numero_do_processo_original}") if conteudo.include?("{{NUMERO_DO_PROCESSO_ORIGINAL}}")
		conteudo = conteudo.gsub("{{NUMERO_DO_PROJETO_BASICO_12_DIGITOS}}", "#{@processo.pedido.numero_12_digitos}") if conteudo.include?("{{NUMERO_DO_PROJETO_BASICO_12_DIGITOS}}")
		conteudo = conteudo.gsub("{{DOTACAO_ORCAMENTARIA}}", "#{dotacoes_orcamentarias}") if conteudo.include?("{{DOTACAO_ORCAMENTARIA}}")
		conteudo = conteudo.gsub("{{DOTACAO_ORCAMENTARIA_SUBELEMENTO}}", "#{dotacoes_orcamentarias_subelemento}") if conteudo.include?("{{DOTACAO_ORCAMENTARIA_SUBELEMENTO}}")
		conteudo = conteudo.gsub("{{VALIDADE_DO_PROJETO}}", "#{@processo.try(:validade_do_projeto)}") if conteudo.include?("{{VALIDADE_DO_PROJETO}}")
		conteudo = conteudo.gsub("{{MODALIDADE_DO_PROCESSO}}", "#{@processo.localizar(:modalidade_do_processo).try(:upcase)}") if conteudo.include?("{{MODALIDADE_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{MODALIDADE_DA_LICITACAO}}", "#{@processo.localizar(:modalidade_de_licitacao).try(:upcase)}") if conteudo.include?("{{MODALIDADE_DA_LICITACAO}}")
		conteudo = conteudo.gsub("{{CRITERIO_DE_JULGAMENTO}}", "#{@processo.localizar(:criterio_de_julgamento).try(:upcase)}") if conteudo.include?("{{CRITERIO_DE_JULGAMENTO}}")
		conteudo = conteudo.gsub("{{FORMA_DE_AGRUPAMENTO}}", "#{@processo.try(:forma_de_agrupamento).try(:humanize).try(:upcase)}") if conteudo.include?("{{FORMA_DE_AGRUPAMENTO}}")
		conteudo = conteudo.gsub("{{LEGISLACAO}}", "#{@processo.legislacao.try(:titulo)}") if conteudo.include?("{{LEGISLACAO}}")
		conteudo = conteudo.gsub("{{PRESIDENTE_DA_COMISSAO}}", "#{@processo.try(:comissao).try(:nome_do_presidente)}") if conteudo.include?("{{PRESIDENTE_DA_COMISSAO}}")
		conteudo = conteudo.gsub("{{NUMERO_DA_PORTARIA_DA_COMISSAO}}", "#{@processo.try(:comissao).try(:numero_da_portaria)}") if conteudo.include?("{{NUMERO_DA_PORTARIA_DA_COMISSAO}}")
		conteudo = conteudo.gsub("{{MENOR_VALOR_DO_PROJETO}}", "#{@processo.pedido.menor_cotacao_dos_itens.try(:real_contabil)} (#{@processo.pedido.menor_cotacao_dos_itens.try(:real_contabil).try(:real).try(:por_extenso_em_reais).upcase})") if conteudo.include?("{{MENOR_VALOR_DO_PROJETO}}")
		conteudo = conteudo.gsub("{{VALOR_MEDIO_DO_PROJETO}}", "#{@processo.pedido.cotacao_media_dos_itens.try(:real_contabil)} (#{@processo.pedido.cotacao_media_dos_itens.try(:real_contabil).try(:real).try(:por_extenso_em_reais).upcase})") if conteudo.include?("{{VALOR_MEDIO_DO_PROJETO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROJETO_BASICO}}", "#{table_itens_do_projeto_basico}") if conteudo.include?("{{ITENS_DO_PROJETO_BASICO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROJETO_BASICO_SEM_PRECO}}", "#{table_itens_do_projeto_basico_sem_preco}") if conteudo.include?("{{ITENS_DO_PROJETO_BASICO_SEM_PRECO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROJETO_BASICO_POR_DESCONTO}}", "#{table_itens_do_projeto_basico_por_desconto}") if conteudo.include?("{{ITENS_DO_PROJETO_BASICO_POR_DESCONTO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROJETO_BASICO_POR_VALOR_PREVISTO}}", "#{table_itens_do_projeto_basico_por_valor_previsto}") if conteudo.include?("{{ITENS_DO_PROJETO_BASICO_POR_VALOR_PREVISTO}}")
		# Informações da Ata Vinculada
		conteudo = conteudo.gsub("{{NUMERO_DA_ATA_DE_REGISTRO}}", "#{@processo.try(:ata_de_registro_de_precos_original)}") if conteudo.include?("{{NUMERO_DA_ATA_DE_REGISTRO}}")
		conteudo = conteudo.gsub("{{ORGAO_GERENCIADOR_CARONA}}", "#{@processo.try(:orgao_gerenciador_da_ata)}") if conteudo.include?("{{ORGAO_GERENCIADOR_CARONA}}")
		conteudo = conteudo.gsub("{{UNIDADES_ORCAMENTARIAS}}", "#{table_itens_do_pb_unidades_orcamentarias}") if conteudo.include?("{{UNIDADES_ORCAMENTARIAS}}")
		conteudo = conteudo.gsub("{{ESTADO}}", "#{@processo.estado.try(:uf)}") if conteudo.include?("{{ESTADO}}")
		conteudo = conteudo.gsub("{{CIDADE}}", "#{@processo.cidade.try(:nome)}") if conteudo.include?("{{CIDADE}}")
		
		conteudo
	
	end

	def substitui_variaveis_do_processo(conteudo)
		conteudo = conteudo.gsub("{{NUMERO_DO_PROCESSO}}", "#{@processo.numero_do_processo}") if conteudo.include?("{{NUMERO_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{DATA_DE_ABERTURA_DA_SESSAO}}", "#{@processo.data_da_sessao}") if conteudo.include?("{{DATA_DE_ABERTURA_DA_SESSAO}}")
		conteudo = conteudo.gsub("{{HORARIO_DA_ABERTURA_DA_SESSAO}}", "#{@processo.horario_da_abertura}") if conteudo.include?("{{HORARIO_DA_ABERTURA_DA_SESSAO}}")
		conteudo = conteudo.gsub("{{DATA_DA_PUBLICACAO}}", "#{@processo.try(:publicacoes).try(:last).try(:data_da_publicacao)}") if conteudo.include?("{{DATA_DA_PUBLICACAO}}")
		conteudo = conteudo.gsub("{{VEICULO_DA_PUBLICACAO}}", "#{@processo.try(:publicacoes).try(:last).try(:local_publicado)}") if conteudo.include?("{{VEICULO_DA_PUBLICACAO}}")
		conteudo = conteudo.gsub("{{DATA_DE_PUBLICACAO_NO_FLANELOGRAFO}}", "#{@processo.try(:publicacoes).try(:last).try(:data_de_publicacao_no_flanelografo)}") if conteudo.include?("{{DATA_DE_PUBLICACAO_NO_FLANELOGRAFO}}")
		conteudo = conteudo.gsub("{{DATA_DO_EDITAL}}", "#{@processo.try(:publicacoes).try(:last).try(:data_de_publicacao_no_flanelografo)}") if conteudo.include?("{{DATA_DO_EDITAL}}")
		conteudo = conteudo.gsub("{{DATA_DA_HOMOLOGACAO}}", "#{@processo.try(:data_da_homologacao)}") if conteudo.include?("{{DATA_DA_HOMOLOGACAO}}")
		conteudo = conteudo.gsub("{{DATA_DA_ADJUDICACAO}}", "#{@processo.try(:data_de_adjudicacao)}") if conteudo.include?("{{DATA_DA_ADJUDICACAO}}")
		conteudo = conteudo.gsub("{{VENCEDORES_DO_PROCESSO}}", "#{bloco_vencedores_do_processo}") if conteudo.include?("{{VENCEDORES_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROCESSO_COMPLETO_SEM_CODIGO}}", "#{table_itens_do_processo_completo_sem_codigo}") if conteudo.include?("{{ITENS_DO_PROCESSO_COMPLETO_SEM_CODIGO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROCESSO_COMPLETO_SEM_CODIGO_DE_SERVICO}}", "#{table_itens_do_processo_completo_sem_codigo_de_servico}") if conteudo.include?("{{ITENS_DO_PROCESSO_COMPLETO_SEM_CODIGO_DE_SERVICO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROCESSO_POR_LOTE_SEM_CODIGO}}", "#{table_itens_do_processo_por_lote_sem_codigo}") if conteudo.include?("{{ITENS_DO_PROCESSO_POR_LOTE_SEM_CODIGO}}")
		conteudo = conteudo.gsub("{{ITENS_DO_PROCESSO_POR_LOTE_SEM_CODIGO_DE_SERVICO}}", "#{table_itens_do_processo_por_lote_sem_codigo_de_servico}") if conteudo.include?("{{ITENS_DO_PROCESSO_POR_LOTE_SEM_CODIGO_DE_SERVICO}}")
		conteudo = conteudo.gsub("{{DADOS_DOS_FORNECEDORES_DO_PROCESSO}}", "#{bloco_de_dados_dos_fornecedores_processo}") if conteudo.include?("{{DADOS_DOS_FORNECEDORES_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{FORNECEDORES_POR_LOTE_DO_PROCESSO}}", "#{table_fornecedores_por_lote_do_processo}") if conteudo.include?("{{FORNECEDORES_POR_LOTE_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{FORNECEDORES_POR_ITEM_DO_PROCESSO}}", "#{table_fornecedores_por_item_do_processo}") if conteudo.include?("{{FORNECEDORES_POR_ITEM_DO_PROCESSO}}")
		conteudo = conteudo.gsub("{{VALOR_DA_ADJUDICACAO}}", "#{@processo.valor_total.try(:real_contabil) + ' ' + '(' + @processo.valor_total.try(:por_extenso_em_reais).try(:upcase) + ')' }") if conteudo.include?("{{VALOR_DA_ADJUDICACAO}}") #Pedido em documento "VALOR TOTAL ADJUDICADO, QUE É A SOMA DOS	VALORES FINAIS DE CADA ITEM"
		conteudo = conteudo.gsub("{{VALOR_DA_HOMOLOGACAO}}", "#{@processo.valor_da_homologacao.try(:real_contabil) + ' ' + '(' + @processo.valor_da_homologacao.try(:por_extenso_em_reais).try(:upcase) + ')' }") if conteudo.include?("{{VALOR_DA_HOMOLOGACAO}}")
		conteudo = conteudo.gsub("{{RESPONSAVEL_JURIDICO}}", "#{@processo.try(:agente_publico_municipal).try(:nome)}") if conteudo.include?("{{RESPONSAVEL_JURIDICO}}")
		conteudo = conteudo.gsub("{{RESPONSAVEL_PELA_COTACAO_DE_PRECO}}", "#{@processo.try(:responsavel_cotacao_sim).try(:pessoa).try(:nome)}") if conteudo.include?("{{RESPONSAVEL_PELA_COTACAO_DE_PRECO}}")
		conteudo = conteudo.gsub("{{RESPONSAVEL_PELA_ELABORACAO_DO_TR}}", "#{@processo.try(:responsavel_elaboracao_sim).try(:pessoa).try(:nome)}") if conteudo.include?("{{RESPONSAVEL_PELA_ELABORACAO_DO_TR}}")
		conteudo = conteudo.gsub("{{DATA_DE_AUTUACAO}}", "#{@processo.try(:data_de_autuacao)}") if conteudo.include?("{{DATA_DE_AUTUACAO}}")
		conteudo = conteudo.gsub("{{TIPO_DE_DISPUTA}}", "#{@processo.try(:tipo_de_disputa_sim)}".sub(/_sim\z/, '')) if conteudo.include?("{{TIPO_DE_DISPUTA}}")
		conteudo = conteudo.gsub("{{FORMA_DE_CONTRATACAO}}", "#{@processo.try(:forma_de_contratacao_sim)}") if conteudo.include?("{{FORMA_DE_CONTRATACAO}}")
		conteudo = conteudo.gsub("{{URL_DA_PLATAFORMA_ELETRONICA}}", "#{@processo.try(:url_do_processo_eletronico)}") if conteudo.include?("{{URL_DA_PLATAFORMA_ELETRONICA}}")

		conteudo
	
	end

	##########################################################################################
	# VARIÁVEIS REFERENTES AO PROCESSO



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

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

		lista << '</ul>'
	end

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

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

		lista << '</ul>'
	end
	##########################################################################################
	# TABELAS DE ITENS DO PROJETO BÁSICO

	def table_itens_do_projeto_basico
		return table_itens_do_pb_global if @processo.global?
		return table_itens_do_pb_por_item if @processo.por_item?
		table_itens_do_pb_por_lote
	end

	def table_itens_do_projeto_basico_sem_preco
		return table_itens_do_pb_global_sem_preco if @processo.global?
		return table_itens_do_pb_por_item_sem_preco if @processo.por_item?
		table_itens_do_pb_por_lote_sem_preco
	end

	def table_itens_do_projeto_basico_por_desconto
		return table_itens_do_pb_por_desconto_global if @processo.global?
		return table_itens_do_pb_por_desconto_por_item if @processo.por_item?
		table_itens_do_pb_por_desconto_por_lote
	end

	def table_itens_do_projeto_basico_por_valor_previsto
		return table_itens_do_pb_por_valor_previsto_global if @processo.global?
		return table_itens_do_pb_por_valor_previsto_por_item if @processo.por_item?
		table_itens_do_pb_por_valor_previsto_por_lote
	end

	def table_itens_do_pb_por_item_sem_preco
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					</tr>
				</thead> <tbody>'
			@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
					</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_unidades_orcamentarias
		tabela = "
		<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
			<tbody>
			<tr>
				<th style=\"border: 1px solid black;width: 15%;\">UNIDADE ORÇAMENTÁRIA</th>
				<th style=\"border: 1px solid black;width: 20%; \">VALOR ESTIMADO</th>
			</tr>
		"

		@processo.unidades_orcamentarias.each do |uo|
			valor_dotacao = @processo.valor_total_por_unidade(uo.id)
			tabela <<
				"<tr>
					<td style=\"border: 1px solid black;text-align: center;\">#{uo.try(:nome)}</td>
					<td style=\"border: 1px solid black;text-align: center;\">#{valor_dotacao.real_contabil}</td>
				</tr>"
		end

		tabela <<
				"<tr>
					<td style=\"border: 1px solid black;text-align: center;\"><b>Total</b></td>
					<td style=\"border: 1px solid black;text-align: center;\">#{@processo.valor_estimado_global.real_contabil}</td>
				</tr>"

		tabela << "</tbody> </table>"

		tabela
	end

	def table_itens_do_pb_global_sem_preco
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					</tr>
				</thead> <tbody>'
		@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
			tables <<
				"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
				</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_global
		table = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
			<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: 9%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 12%;\">VALOR UNIT.</th>
					<th style=\"border: 1px solid black;width: 14%;\">VALOR TOTAL</th>
				</tr>
			</thead> <tbody>'

		@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
			table <<
				"<tr>
					<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
					<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
					<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
					<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
					<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.valor_unitario.to_f.valor_financeiro}</td>
					<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.valor_total.to_f.real_contabil}</td>
				</tr>"
		end

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

	def table_itens_do_pb_por_item
			tables = '<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
						<th style=\"border: 1px solid black;width: 12%;\">VALOR UNIT.</th>
						<th style=\"border: 1px solid black;width: 14%;\">VALOR TOTAL</th>
					</tr>
				</thead> <tbody>'
			@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
				tables <<
				"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.valor_unitario.to_f.valor_financeiro}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.valor_total.to_f.real_contabil}</td>
				</tr>"

		end

		tables <<
			"</tbody> <tfoot> <tr>
				<th colspan='4' style=\"align: right; border: 1px solid black;\"></th>
				<th colspan='2' style=\"align: right; border: 1px solid black;\">TOTAL: #{@processo.valor_estimado_global.try(:real_contabil)}</th>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_por_lote_sem_preco
		tables = ''

		@processo.lotes.includes(:itens_do_lote).order(:numero).each_with_index do |lote, index_lote|
			tables << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%; border:1px solid black;\"> <thead>
				<tr>
					<th align=\"left\" colspan=\"8\">
						LOTE ##{lote.numero}
					</th>
				</tr>
				<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: 9%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
				</tr> </thead> <tbody>"

			itens_do_lote = lote.itens_do_lote.ativos.includes(item_do_pedido: :item)
			itens_do_lote.order(:ordem).each_with_index do |item_do_lote, index_itens|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index_itens + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
					</tr>"
			end
		end
		tables
	end

	def table_itens_do_pb_por_lote
		tables = ''
		@processo.lotes.includes(:itens_do_lote).order(:numero).each_with_index do |lote, index_lote|
			tables << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%; border:1px solid black;\"> <thead>
				<tr>
					<th align=\"left\" colspan=\"8\">
						LOTE ##{lote.numero}
					</th>
				</tr>
				<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: 9%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 12%;\">VALOR UNIT.</th>
					<th style=\"border: 1px solid black;width: 14%;\">VALOR TOTAL</th>
				</tr> </thead> <tbody>"

			itens_do_lote = lote.itens_do_lote.ativos.includes(item_do_pedido: :item)
			itens_do_lote.order(:ordem).each_with_index do |item_do_lote, index_itens|
				if @processo.simplificado?
					valor_unitario = item_do_lote.valor_estimativo
					valor_total = item_do_lote.item_do_pedido.valor_total_projeto_simplificado
				else
					valor_unitario = item_do_lote.valor_unitario
					valor_total = item_do_lote.valor_total
				end
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index_itens + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{valor_unitario.to_f.valor_financeiro}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{valor_total.to_f.real_contabil}</td>
					</tr>"
			end

			tables <<
				"</tbody> <tfoot> <tr style=\"border-top: 1px solid black;\">
					<th colspan='3' style=\"align: right; border: 1px solid black;\"></th>
					<th colspan='3' style=\"border:1px solid black;\">TOTAL: #{lote.total.try(:real_contabil)}</th>
				</tr> </tfoot> </table>"
		end

		tables
	end

	def table_itens_do_pb_por_desconto_por_lote
		tables = ''
		@processo.lotes.includes(:itens_do_lote).order(:numero).each_with_index do |lote, index_lote|
			tables << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%; border:1px solid black;\"> <thead>
				<tr>
					<th align=\"left\" colspan=\"8\">
						LOTE ##{lote.numero}
					</th>
				</tr>
				<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: 9%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 12%;\">VALOR ESTIMADO</th>
					<th style=\"border: 1px solid black;width: 14%;\">% MÉDIO</th>
				</tr> </thead> <tbody>"

			itens_do_lote = lote.itens_do_lote.ativos.includes(item_do_pedido: :item)
			total_geral = 0
			itens_do_lote.order(:ordem).each_with_index do |item_do_lote, index_itens|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index_itens + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.maior_desconto.to_f}</td>
					</tr>"
			end
		end

		tables
	end

	def table_itens_do_pb_por_valor_previsto_por_lote
		tables = ''
		@processo.lotes.includes(:itens_do_lote).order(:numero).each_with_index do |lote, index_lote|
			tables << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%; border:1px solid black;\"> <thead>
				<tr>
					<th align=\"left\" colspan=\"8\">
						LOTE ##{lote.numero}
					</th>
				</tr>
				<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: 9%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QTD.</th>
					<th style=\"border: 1px solid black;width: 12%;\">VALOR ESTIMADO</th>
					<th style=\"border: 1px solid black;width: 14%;\">VALOR MÉDIO</th>
				</tr> </thead> <tbody>"

			itens_do_lote = lote.itens_do_lote.ativos.includes(item_do_pedido: :item)
			total_geral = 0
			itens_do_lote.order(:ordem).each_with_index do |item_do_lote, index_itens|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index_itens + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.quantidade_total_requisitada.try(:valor_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.menor_preco.to_f}</td>
					</tr>"
			end
		end

		tables
	end

	def table_itens_do_pb_por_desconto_global
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR ESTIMADO</th>
						<th style=\"border: 1px solid black;width: 10%;\">% MÉDIO</th>
					</tr>
				</thead> <tbody>'
		@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
			tables <<
				"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.maior_desconto.to_f}</td>
				</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_por_valor_previsto_global
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR ESTIMADO</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR MÉDIO</th>
					</tr>
				</thead> <tbody>'
		@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
			tables <<
				"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.menor_preco.to_f}</td>
				</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_por_desconto_por_item
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR ESTIMADO</th>
						<th style=\"border: 1px solid black;width: 10%;\">% MÉDIO</th>
					</tr>
				</thead> <tbody>'
			@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.maior_desconto.to_f}</td>
					</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def table_itens_do_pb_por_valor_previsto_por_item
		tables = '<table style="font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 10px; width: 100%;border: 1px solid black;">
				<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: 9%;\">UNID.</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR ESTIMADO</th>
						<th style=\"border: 1px solid black;width: 10%;\">VALOR MÉDIO</th>
					</tr>
				</thead> <tbody>'
			@processo.itens_do_lote.ativos.order(:ordem).each_with_index do |item_do_lote, index|
				tables <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{(index + 1).to_s}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item_do_pedido.item.codigo_e_descricao}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.valor_total_previsto_por_desconto.to_f.try(:real_contabil)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.menor_preco.to_f}</td>
					</tr>"
		end
		tables <<
			"</tbody> <tfoot> <tr>
			</tr> </tfoot> </table>"
	end

	def bloco_vencedores_do_processo
		bloco = ''
		fornecedores_colocados_no_bloco = []
		@processo.ganhadores_dos_lotes.each do |ganhador|
			valor_ganho = 0
			ganhador.lotes_ganhos.each do |lote|
				valor_ganho += ganhador.valor_total_final_do_lote(lote).to_d
			end

			unless fornecedores_colocados_no_bloco.include? ganhador.pessoa.id
				fornecedores_colocados_no_bloco << ganhador.pessoa.id

				bloco <<
				"
					<div style=\"font-family: arial; font-size: 10pt; margin-bottom: 5px\">
						#{ganhador.pessoa.nome} (<strong>CPF/CNPJ:</strong> #{ganhador.pessoa.cpf_ou_cnpj})
				"
				
				if ganhador.nome_do_responsavel.present?
					bloco << " - <strong> REPRESENTANTE LEGAL: </strong>#{ganhador.try(:nome_do_responsavel)}"
				end

				bloco << " - <strong>  VALOR TOTAL VENCIDO: </strong>#{valor_ganho.to_f.real_contabil}"

				bloco <<
				"
					</div>
				"
			end
		end

		return bloco
	end

	def table_itens_do_processo_completo_sem_codigo
		table = ''
		if @processo.por_item?
			@processo.ganhadores_dos_lotes.each do |ganhador|
				total_por_ganhador = 0

				table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
				<tbody>
				<tr>
					<th colspan='7' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{ganhador.try(:pessoa).try(:nome)} / #{ganhador.try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
				</tr>
				<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: 10%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
				</tr>"

				valor_total_de_itens_por_ganhador = 0
				ganhador.lotes_ganhos.each do |lote|
					lote.itens_do_lote.each do |item_do_lote|
						item_do_lote = Licitacao::ItemDoLote.find(item_do_lote.id)

						unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
						proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
						quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

						total = proposta_final_do_item * quantidade_por_unidade
						total_por_ganhador += total

						table <<
							"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{quantidade_por_unidade.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
							</tr>"
						valor_total_de_itens_por_ganhador += item_do_lote.valor_total_por_unidade.to_f
					end
				end
				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{valor_total_de_itens_por_ganhador.to_f.real_contabil}</th>
					</tr> </tfoot> </table>"
			end
		
		else
			@processo.itens_do_lote.ativos.group_by {|item_do_lote| item_do_lote.lote}.each do |lote, itens_do_lote|
				total_por_ganhador = 0

				table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
				<tbody>
				<tr>
					<th colspan='6' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome)} / #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
				</tr>
				<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: 10%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
				</tr>"

				itens_do_lote.each do |item_do_lote|

					unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
					proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
					quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

					total = proposta_final_do_item * quantidade_por_unidade
					total_por_ganhador += total

					table <<
						"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{quantidade_por_unidade.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
							
						</tr>"
				end
				
				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{total_por_ganhador.to_f.real_contabil}</th>
					</tr> </tfoot> </table>"
			end
		end
		return table
	end

	def table_itens_do_processo_completo_sem_codigo_de_servico
		table = ''
		if @processo.por_item?
			@processo.ganhadores_dos_lotes.each do |ganhador|
				total_por_ganhador = 0

				table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
				<tbody>
				<tr>
					<th colspan='7' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{ganhador.try(:pessoa).try(:nome)} / #{ganhador.try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
				</tr>
				<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: 10%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
				</tr>"

				valor_total_de_itens_por_ganhador = 0
				ganhador.lotes_ganhos.each do |lote|
					lote.itens_do_lote.each do |item_do_lote|
						item_do_lote = Licitacao::ItemDoLote.find(item_do_lote.id)

						unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
						proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
						quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

						total = proposta_final_do_item * quantidade_por_unidade
						total_por_ganhador += total

						table <<
							"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{quantidade_por_unidade.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
							</tr>"
						valor_total_de_itens_por_ganhador += item_do_lote.valor_total_por_unidade.to_f
					end
				end
				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{valor_total_de_itens_por_ganhador.to_f.real_contabil}</th>
					</tr> </tfoot> </table>"
			end
		
		else
			@processo.itens_do_lote.ativos.group_by {|item_do_lote| item_do_lote.lote}.each do |lote, itens_do_lote|
				total_por_ganhador = 0

				table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
				<tbody>
				<tr>
					<th colspan='6' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome)} / #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
				</tr>
				<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: 10%;\">UNID.</th>
					<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
					<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
				</tr>"

				itens_do_lote.each do |item_do_lote|
					
					unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
					proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
					quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

					total = proposta_final_do_item * quantidade_por_unidade
					total_por_ganhador += total

					table <<
						"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{quantidade_por_unidade.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
							
						</tr>"
				end
				
				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{total_por_ganhador.to_f.real_contabil}</th>
					</tr> </tfoot> </table>"
			end
		end
		return table
	end
	
	def table_itens_do_processo_por_lote_sem_codigo
		table = ''
		@processo.itens_do_lote.ativos.order("licitacao_lotes.numero").group_by {|item_do_lote| item_do_lote.lote}.each do |lote, itens_do_lote|
			total_por_ganhador = 0

			table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
			<tbody>
			<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">LOTE N° #{lote.numero} </th>
			</tr>
			<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome)} / #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
			</tr>
			<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: 10%;\">UNID.</th>
				<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
				<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
				<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
			</tr>"

			itens_do_lote.each do |item_do_lote|
					
				unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
				proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
				quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

				total = proposta_final_do_item * quantidade_por_unidade
				total_por_ganhador += total

				table <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade).to_f.valor_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
						
					</tr>"
			end

			table <<
			"</tbody> <tfoot> <tr>
			<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{total_por_ganhador.to_f.real_contabil}</th>
			</tr> </tfoot> </table>"

		end
		return table
	end

	def table_itens_do_processo_por_lote_sem_codigo_de_servico
		table = ''
		@processo.itens_do_lote.ativos.order("licitacao_lotes.numero").group_by {|item_do_lote| item_do_lote.lote}.each do |lote, itens_do_lote|
			total_por_ganhador = 0

			table << "<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
			<tbody>
			<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">LOTE N° #{lote.numero} </th>
			</tr>
			<tr>
				<th colspan='7' style=\"align: right; border: 1px solid black;\">LICITANTE VENCEDOR: #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome)} / #{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:texto_cpf_ou_cnpj)}  </th>
			</tr>
			<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: 10%;\">UNID.</th>
				<th style=\"border: 1px solid black;width: 10%;\">QUANT.</th>
				<th style=\"border: 1px solid black;width: 12%;\">R$ UNIT</th>
				<th style=\"border: 1px solid black;width: 12%;\">R$ TOTAL</th>
			</tr>"

			itens_do_lote.each do |item_do_lote|
					
				unidade_id = item_do_lote.item_do_pedido.pedido.unidade_orcamentaria.id
				proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
				quantidade_por_unidade = item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade)

				total = proposta_final_do_item * quantidade_por_unidade
				total_por_ganhador += total

				table <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.id}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_do_lote.item.descricao_do_item}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_do_lote.item_do_pedido.try(:quantidade_total_requisitada_sem_periodicidade).to_f.valor_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{proposta_final_do_item.to_f.real_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{total.to_f.real_contabil}</td>
						
					</tr>"
			end

			table <<
			"</tbody> <tfoot> <tr>
			<th colspan='6' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{total_por_ganhador.to_f.real_contabil}</th>
			</tr> </tfoot> </table>"

		end
		return table
	end

	def bloco_de_dados_dos_fornecedores_processo
		bloco = ''
		fornecedores_colocados_no_bloco = []
		@processo.ganhadores_dos_lotes.each do |ganhador|
			unless fornecedores_colocados_no_bloco.include? ganhador.pessoa.id
				fornecedores_colocados_no_bloco << ganhador.pessoa.id

				bloco <<
				"
					<div style=\"font-family: arial; font-size: 10pt;\">
						<div><strong>RAZÃO SOCIAL: </strong>#{ganhador.pessoa.nome}</div>
						<div><strong>CNPJ: </strong>#{ganhador.pessoa.cpf_ou_cnpj}</div>
						<div><strong>ENDEREÇO: </strong>#{ganhador.pessoa.endereco_completo}</div>
						<div><strong>TELEFONE: </strong>#{ganhador.pessoa.telefone_formatado}</div>
						<div><strong>E-MAIL: </strong>#{ganhador.pessoa.email}</div>
						<div>
							<strong>REPRESENTANTE: </strong>#{ganhador.try(:nome_do_responsavel)}
							<strong>CPF:</strong>#{ganhador.try(:cpf_do_responsavel).try(:as_cpf)}
						</div>
				"
				ganhador.pessoa.pessoas_contas_bancarias.each do |conta|
					bloco <<
						"
							<div>
								<strong>BANCO: </strong>#{conta.banco.nome}
								<strong>AGÊNCIA:</strong>#{conta.agencia}
								<strong>CONTA CORRENTE:</strong>#{conta.numero_da_conta}
							</div>
						"
				end
				bloco << "</div><br>"
			end
		end
		return bloco
	end

	def table_fornecedores_por_lote_do_processo
		tabela = ''
		@processo.itens_do_lote.ativos.order("licitacao_lotes.numero").group_by {|item_do_lote| item_do_lote.lote}.each do |lote, itens_do_lote|
			if lote.pessoa_do_projeto_do_lote_ganhadora.present?
				total_por_lote = 0
				itens_do_lote.each do |item_do_lote|
					proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
					quantidade_por_unidade = item_do_lote.item_do_pedido.quantidade_total_requisitada

					total = proposta_final_do_item * quantidade_por_unidade
					total_por_lote += total
				end

				tabela << "
						<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 5px; width: 100%;border: 1px solid black;\">
						<tbody>
						<tr>
							<th style=\"border: 1px solid black;width: 10%;\">Nº DO LOTE</th>
							<th style=\"border: 1px solid black;width: 20%; \">VALOR DO LOTE</th>
							<th style=\"border: 1px solid black;width: 70%;\">EMPRESA GANHADORA</th>
						</tr>
						<tr>
							<th style=\"border: 1px solid black; width: 10%; font-weight: normal;\">#{lote.numero}</th>
							<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{total_por_lote.to_f.real_contabil}</th>
							<th style=\"border: 1px solid black; width: 70%; font-weight: normal;\">#{lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj)}</th>
						</tr>
						</tbody> </table>
					"
			end
		end
		return tabela		
		end

		
	def table_fornecedores_por_item_do_processo
		tabela = ''
		processo_total = 0
		processos = @processo.itens_do_lote.sort_by{|item_do_lote | item_do_lote.lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase)}
		ganhador_comparador = processos.first.lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase)
		ganhador_atual = processos.first.lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase)
		tabela << "
			<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 30px; width: 100%;border: 1px solid black;\">
			<tbody>
			<tr>
				<th style=\"border: 1px solid black;width: 40%;\">Nº DO ITEM</th>
				<th style=\"border: 1px solid black;width: 40%;\">EMPRESA GANHADORA</th>
				<th style=\"border: 1px solid black;width: 20%; \">VALOR TOTAL</th>
			</tr>
			<tr>
				<th style=\"border: 1px solid black;width: 40%; font-weight: normal;\">
			"

		processos.each_with_index do |item_do_lote , index|
			tem_novo_ganhador = item_do_lote.lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase) != ganhador_comparador
			if tem_novo_ganhador
				ganhador_atual = item_do_lote.lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase)
				ganhador_comparador = ganhador_atual

				tabela << "
					<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{processo_total.real_contabil}</th>
					</tr>
					</tbody> </table>
					<table style=\"font-family: arial; font-size: 8pt; margin: auto; margin-bottom: 30px; width: 100%;border: 1px solid black;\">
						<tbody>
						<tr>
							<th style=\"border: 1px solid black;width: 40%;\">Nº DO ITEM</th>
							<th style=\"border: 1px solid black;width: 40%;\">EMPRESA GANHADORA</th>
							<th style=\"border: 1px solid black;width: 20%; \">VALOR TOTAL</th>
						</tr>
						<tr>
							<th style=\"border: 1px solid black;width: 40%; font-weight: normal;\">
						"
					processo_total = 0
			end

			proposta_final_do_item = Licitacao::ItemDoProjetoPorPessoa.where(item_do_lote_id: item_do_lote.id, final:true).last.preco rescue 0
			quantidade_por_unidade = item_do_lote.item_do_pedido.quantidade_total_requisitada

			total = proposta_final_do_item * quantidade_por_unidade
			processo_total += total.to_f

			if index + 1 < processos.length && processos[index + 1].lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).try(:downcase) == ganhador_atual
				texto_item_do_lote = "#{item_do_lote.item.id},"
			else
				texto_item_do_lote = "#{item_do_lote.item.id}
				<th style=\"border: 1px solid black; width: 40%; font-weight: normal;\">#{item_do_lote.lote.try(:pessoa_do_projeto_do_lote_ganhadora).try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj)}</th>
				"
			end
			tabela << "
					#{texto_item_do_lote}
				"

		end
		tabela << "
					<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{processo_total.real_contabil}</th>
					</tr>
					</tbody> </table>
					"
		return tabela
	end
		
	
end
