module Licitacao::DocumentosDaAtaHelper
	include Licitacao::DocumentosDoPedidoHelper
	include Licitacao::DocumentosDoProcessoHelper

	def substitui_variaveis_da_obra(conteudo)
		conteudo = conteudo.gsub("{{NUMERO_DA_ARP}}", "#{@ata_de_registro_de_precos.try(:numero)}") if conteudo.include?("{{NUMERO_DA_ARP}}")
		conteudo = conteudo.gsub("{{DATA_INICIO}}", "#{@ata_de_registro_de_precos.try(:data_inicio_de_vigencia)}") if conteudo.include?("{{DATA_INICIO}}")
		conteudo = conteudo.gsub("{{DATA_FINAL}}", "#{@ata_de_registro_de_precos.try(:data_final_de_vigencia)}") if conteudo.include?("{{DATA_FINAL}}")

		conteudo
	end

	def substitui_variaveis_da_ata(conteudo)
		conteudo = conteudo.gsub("{{NUMERO_DA_ARP}}", "#{@ata_de_registro_de_precos.try(:numero)}") if conteudo.include?("{{NUMERO_DA_ARP}}")
		conteudo = conteudo.gsub("{{VIGENCIA_DA_ATA}}", "#{@ata_de_registro_de_precos.try(:data_inicio_de_vigencia)} A #{@ata_de_registro_de_precos.try(:data_final_de_vigencia)}") if conteudo.include?("{{VIGENCIA_DA_ATA}}")
		conteudo = conteudo.gsub("{{VIGENCIA_INICIAL_DA_ATA}}", "#{@ata_de_registro_de_precos.try(:data_inicio_de_vigencia)}") if conteudo.include?("{{VIGENCIA_INICIAL_DA_ATA}}")
		conteudo = conteudo.gsub("{{VIGENCIA_FINAL_DA_ATA}}", "#{@ata_de_registro_de_precos.try(:data_final_de_vigencia)}") if conteudo.include?("{{VIGENCIA_FINAL_DA_ATA}}")
		conteudo = conteudo.gsub("{{VALOR_TOTAL_POR_EXTENSO_DA_ATA}}", "R$ #{@ata_de_registro_de_precos.valor_total.try(:real_contabil).try(:real)} (#{@ata_de_registro_de_precos.valor_total.try(:real_contabil).try(:real).try(:por_extenso_em_reais).upcase})") if conteudo.include?("{{VALOR_TOTAL_POR_EXTENSO_DA_ATA}}")

		# Itens do Contrato
		conteudo = conteudo.gsub("{{ITENS_DA_ATA_COMPLETO_SEM_CODIGO}}", "#{table_itens_da_ata_completo_sem_codigo}") if conteudo.include?("{{ITENS_DA_ATA_COMPLETO_SEM_CODIGO}}")
		conteudo = conteudo.gsub("{{ITENS_DA_ATA_COMPLETO_SEM_CODIGO_DE_SERVICO}}", "#{table_itens_da_ata_completo_sem_codigo_de_servico}") if conteudo.include?("{{ITENS_DA_ATA_COMPLETO_SEM_CODIGO_DE_SERVICO}}")
		conteudo = conteudo.gsub("{{ITENS_DA_ATA_POR_LOTE_SEM_CODIGO}}", "#{table_itens_da_ata_por_lote_sem_codigo}") if conteudo.include?("{{ITENS_DA_ATA_POR_LOTE_SEM_CODIGO}}")
		conteudo = conteudo.gsub("{{ITENS_DA_ATA_POR_LOTE_SEM_CODIGO_DE_SERVICO}}", "#{table_itens_da_ata_por_lote_sem_codigo_de_servico}") if conteudo.include?("{{ITENS_DA_ATA_POR_LOTE_SEM_CODIGO_DE_SERVICO}}")

		#Fornecedores
		conteudo = conteudo.gsub("{{DADOS_DOS_FORNECEDORES}}", "#{bloco_de_dados_dos_fornecedores}") if conteudo.include?("{{DADOS_DOS_FORNECEDORES}}")
		conteudo = conteudo.gsub("{{FORNECEDORES_DA_ATA}}", "#{fornecedores_da_ata}") if conteudo.include?("{{FORNECEDORES_DA_ATA}}")
		conteudo = conteudo.gsub("{{FORNECEDORES_POR_LOTE}}", "#{table_fornecedores_por_lote}") if conteudo.include?("{{FORNECEDORES_POR_LOTE}}")
		conteudo = conteudo.gsub("{{FORNECEDORES_POR_ITEM}}", "#{table_fornecedores_por_item}") if conteudo.include?("{{FORNECEDORES_POR_ITEM}}")

		conteudo = conteudo.gsub("{{TABELA_ATA_DE_REGISTRO_DE_PRECOS}}", "#{table_ata_de_registro_de_precos}") if conteudo.include?("{{TABELA_ATA_DE_REGISTRO_DE_PRECOS}}")
		conteudo = conteudo.gsub("{{TABELA_ATA_DE_REGISTRO_DE_PRECOS_COM_PARTICIPANTES}}", "#{table_ata_de_registro_de_precos_com_participantes}") if conteudo.include?("{{TABELA_ATA_DE_REGISTRO_DE_PRECOS_COM_PARTICIPANTES}}")

		conteudo
	end

	##########################################################################################
	# TABELA DE ITENS DA ATA

	def table_itens_da_ata_completo_sem_codigo
		table = ''
		if @ata_de_registro_de_precos.processo.por_item?
			@ata_de_registro_de_precos.processo.ganhadores_dos_lotes.each do |ganhador|

				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%;\">MARCA</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_da_ata = Licitacao::ItemDaAta.find_by(item_do_lote_id: item_do_lote.id)
						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.marca_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_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
								<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
								<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
							</tr>"
						valor_total_de_itens_por_ganhador = valor_total_de_itens_por_ganhador + item_da_ata.valor_total_por_unidade.to_f
					end
				end

				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='7' 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
			@ata_de_registro_de_precos.itens_da_ata.dos_lotes_ativos.group_by {|item_da_ata| item_da_ata.item_do_lote.lote}.each do |lote, itens_da_ata|

				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: #{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%;\">MARCA</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_da_ata.each do |item_da_ata|
					table <<
						"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_da_ata.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item_do_lote.marca_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
						</tr>"
				end

				table <<
					"</tbody> <tfoot> <tr>
						<th colspan='7' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{@ata_de_registro_de_precos.valor_total_por_lote(lote.id).to_f.real_contabil}</th>
					</tr> </tfoot> </table>"

			end
		end

		return table
	end

	def table_itens_da_ata_completo_sem_codigo_de_servico
		table = ''

		if @ata_de_registro_de_precos.processo.por_item?
			@ata_de_registro_de_precos.processo.ganhadores_dos_lotes.each do |ganhador|

				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_da_ata = Licitacao::ItemDaAta.find_by(item_do_lote_id: item_do_lote.id)
						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_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
								<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
								<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
							</tr>"
							valor_total_de_itens_por_ganhador = valor_total_de_itens_por_ganhador + item_da_ata.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
			@ata_de_registro_de_precos.itens_da_ata.dos_lotes_ativos.order("licitacao_lotes.numero").group_by {|item_da_ata| item_da_ata.item_do_lote.lote}.each do |lote, itens_da_ata|
				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_da_ata.each do |item_da_ata|
					table <<
						"<tr>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.id}</td>
							<td style=\"border: 1px solid black;text-align: justify;\">#{item_da_ata.item.descricao_do_item}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.try(:unidade_de_medida).try(:descricao)}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
							<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
						</tr>"
				end

				table <<

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

			end
		end
		return table
	end

	def table_itens_da_ata_por_lote_sem_codigo
		table = ''
		@ata_de_registro_de_precos.itens_da_ata.dos_lotes_ativos.order("licitacao_lotes.numero").group_by {|item_da_ata| item_da_ata.item_do_lote.lote}.each do |lote, itens_da_ata|

			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%;\">MARCA</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_da_ata.each do |item_da_ata|
				table <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.id}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_da_ata.item.descricao_do_item}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item_do_lote.marca_do_item}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
					</tr>"
			end

			table <<
				"</tbody> <tfoot> <tr>
					<th colspan='7' style=\"align: right; border: 1px solid black;\">VALOR GLOBAL R$ #{@ata_de_registro_de_precos.valor_total_por_lote(lote.id).to_f.real_contabil}</th>
				</tr> </tfoot> </table>"


		end
		return table
	end

	def table_itens_da_ata_por_lote_sem_codigo_de_servico
		table = ''
		@ata_de_registro_de_precos.itens_da_ata.dos_lotes_ativos.order("licitacao_lotes.numero").group_by {|item_da_ata| item_da_ata.item_do_lote.lote}.each do |lote, itens_da_ata|

			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;\">LOTE N° #{lote.numero} </th>
			</tr>
			<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_da_ata.each do |item_da_ata|
				table <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.id}</td>
						<td style=\"border: 1px solid black;text-align: justify;\">#{item_da_ata.item.descricao_do_item}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.item.try(:unidade_de_medida).try(:descricao)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.quantidade_por_unidade_da_ata.to_f.valor_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_por_unidade_da_ata.to_f.real_contabil}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{item_da_ata.valor_total_por_unidade.to_f.real_contabil}</td>
					</tr>"
			end

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


		end
		return table
	end

	def bloco_de_dados_dos_fornecedores
		bloco = ''
		fornecedores_colocados_no_bloco = []
		@ata_de_registro_de_precos.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 fornecedores_da_ata
		bloco = ''
		fornecedores_colocados_no_bloco = []

		@ata_de_registro_de_precos.processo.ganhadores_dos_lotes.each do |ganhador|
			unless fornecedores_colocados_no_bloco.include? ganhador.pessoa.id
				fornecedores_colocados_no_bloco << ganhador.pessoa.id
				bloco <<
				"
						<hr style=\"text-align: center; width: 50%; \">
						<div style=\"text-align: center;\">#{ganhador.pessoa.nome}</div>
						<div style=\"text-align: center;\">#{ganhador.pessoa.texto_cpf_ou_cnpj}</div>
						<div style=\"text-align: center;\">#{ganhador.try(:nome_do_responsavel)}</div>
						<div style=\"text-align: center;\">#{ganhador.try(:cpf_do_responsavel).try(:as_cpf)}</div>
						<div style=\"text-align: center;\">DETENTORA DO REGISTRO DE PREÇOS</div>
						<br><br><br><br>
				"
			end
		end

		return bloco
	end

	def table_fornecedores_por_lote
		tabela = ''

		@ata_de_registro_de_precos.itens_da_ata.dos_lotes_ativos.order("licitacao_lotes.numero").group_by {|item_da_ata| item_da_ata.item_do_lote.lote}.each do |lote, itens_da_ata|
			if lote.pessoa_do_projeto_do_lote_ganhadora.present?
				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;\">#{itens_da_ata.sum(&:valor_total_por_unidade).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
		tabela = ''
		ata_total = 0
		atas = @ata_de_registro_de_precos.itens_da_ata.sort_by{|item_da_ata| item_da_ata.item_do_lote.lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).downcase}
		ganhador_comparador = atas.first.item_do_lote.lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).downcase
		ganhador_atual = atas.first.item_do_lote.lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).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;\">
			"

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

				tabela << "
					<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{ata_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;\">
						"
					ata_total = 0
			end
			ata_total = ata_total + item_da_ata.valor_total_por_unidade.to_f

			if index + 1 < atas.length && atas[index + 1].item_do_lote.lote.pessoa_do_projeto_do_lote_ganhadora.try(:pessoa_do_projeto).try(:pessoa).try(:nome_e_cpf_ou_cnpj).downcase == ganhador_atual
				texto_item_do_lote = "#{item_da_ata.item_do_lote.item.id},"
			else
				texto_item_do_lote = "#{item_da_ata.item_do_lote.item.id}
				<th style=\"border: 1px solid black; width: 40%; font-weight: normal;\">#{item_da_ata.item_do_lote.lote.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;\">#{ata_total.real_contabil}</th>
					</tr>
					</tbody> </table>
					"
		return tabela
	end

	def table_ata_de_registro_de_precos
		tabela = ''
		agente_orgao_gerenciado = @ata_de_registro_de_precos.processo.pedido.unidade_orcamentaria.unidade_gestora.gestor_no_periodo(@ata_de_registro_de_precos.data_final_de_vigencia).try(:agente_publico_municipal)

		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%;\">ÓRGÃO GERENCIADOR</th>
				<th style=\"border: 1px solid black;width: 20%; \">NOME DO TITULAR</th>
				<th style=\"border: 1px solid black;width: 15%;\">CARGO</th>
				<th style=\"border: 1px solid black;width: 15%;\">CPF</th>
				<th style=\"border: 1px solid black;\">ASSINATURA</th>
			</tr>
			<tr>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{@ata_de_registro_de_precos.processo.pedido.unidade_orcamentaria.unidade_gestora.nome}</th>
				<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:nome)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:tipo_de_cargo).try(:upcase)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:cpf).try(:as_cpf).try(:as_cpf)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\"></th>
			</tr>
		"

		if @ata_de_registro_de_precos.processo.ganhadores_dos_lotes.count > 0
			tabela << "
				<tr>
					<th style=\"border: 1px solid black;width: 15%;\">DETENTORES DO REGISTRO DE PREÇOS</th>
					<th style=\"border: 1px solid black;width: 20%; \">NOME DO REPRESENTANTE</th>
					<th style=\"border: 1px solid black;width: 15%;\">CARGO</th>
					<th style=\"border: 1px solid black;width: 15%;\">CPF</th>
					<th style=\"border: 1px solid black;\">ASSINATURA</th>
				</tr>
			"
		end

		fornecedores_colocados_no_bloco = []

		@ata_de_registro_de_precos.processo.ganhadores_dos_lotes.each do |ganhador|
			unless fornecedores_colocados_no_bloco.include? ganhador.pessoa.id
				fornecedores_colocados_no_bloco << ganhador.pessoa.id

				tabela <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.pessoa.try(:nome)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:nome_do_responsavel)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:tipo_de_responsavel).try(:humanize).try(:upcase)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:cpf_do_responsavel).try(:as_cpf)}</td>
						<td style=\"border: 1px solid black;text-align: center;\"></td>
					</tr>"

			end
		end

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

		return tabela
	end

	def table_ata_de_registro_de_precos_com_participantes
		tabela = ''
		agente_orgao_gerenciado = @ata_de_registro_de_precos.processo.pedido.unidade_orcamentaria.unidade_gestora.gestor_no_periodo(@ata_de_registro_de_precos.data_final_de_vigencia).try(:agente_publico_municipal)

		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%;\">ÓRGÃO GERENCIADOR</th>
				<th style=\"border: 1px solid black;width: 20%; \">NOME DO TITULAR</th>
				<th style=\"border: 1px solid black;width: 15%;\">CARGO</th>
				<th style=\"border: 1px solid black;width: 15%;\">CPF</th>
				<th style=\"border: 1px solid black;\">ASSINATURA</th>
			</tr>
			<tr>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{@ata_de_registro_de_precos.processo.pedido.unidade_orcamentaria.unidade_gestora.nome}</th>
				<th style=\"border: 1px solid black; width: 20%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:nome)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:tipo_de_cargo).try(:upcase)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\">#{agente_orgao_gerenciado.try(:cpf).try(:as_cpf)}</th>
				<th style=\"border: 1px solid black; width: 15%; font-weight: normal;\"></th>
			</tr>
		"

		if @ata_de_registro_de_precos.processo.pedido.unidades_convidadas.count > 0
			tabela << "
				<tr>
					<th style=\"border: 1px solid black;width: 15%;\">ÓRGÃO(S) PARTICIPANTE(S)</th>
					<th style=\"border: 1px solid black;width: 20%; \">NOME DO TITULAR</th>
					<th style=\"border: 1px solid black;width: 15%;\">CARGO</th>
					<th style=\"border: 1px solid black;width: 15%;\">CPF</th>
					<th style=\"border: 1px solid black;\">ASSINATURA</th>
				</tr>
			"

			@ata_de_registro_de_precos.processo.pedido.unidades_convidadas.each do |unidade|
				gestor = unidade.unidade_orcamentaria.unidade_gestora.gestor_no_periodo(Date.today)

				tabela <<"
						<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{unidade.unidade_orcamentaria.nome}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{gestor.try(:nome)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{gestor.try(:agente_publico_municipal).try(:localizar, :tipo_de_cargo).try(:upcase)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{gestor.try(:cpf).try(:as_cpf)}</td>
						<td style=\"border: 1px solid black;text-align: center;\"></td>
					</tr>"
			end
		end

		if @ata_de_registro_de_precos.processo.ganhadores_dos_lotes.count > 0
			tabela << "
				<tr>
					<th style=\"border: 1px solid black;width: 15%;\">DETENTORES DO REGISTRO DE PREÇOS</th>
					<th style=\"border: 1px solid black;width: 20%; \">NOME DO REPRESENTANTE</th>
					<th style=\"border: 1px solid black;width: 15%;\">CARGO</th>
					<th style=\"border: 1px solid black;width: 15%;\">CPF</th>
					<th style=\"border: 1px solid black;\">ASSINATURA</th>
				</tr>
			"
		end

		fornecedores_colocados_no_bloco = []

		@ata_de_registro_de_precos.processo.ganhadores_dos_lotes.each do |ganhador|
			unless fornecedores_colocados_no_bloco.include? ganhador.pessoa.id
				fornecedores_colocados_no_bloco << ganhador.pessoa.id

				tabela <<
					"<tr>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.pessoa.try(:nome)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:nome_do_responsavel)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:tipo_de_responsavel).try(:humanize).try(:upcase)}</td>
						<td style=\"border: 1px solid black;text-align: center;\">#{ganhador.try(:cpf_do_responsavel).try(:as_cpf)}</td>
						<td style=\"border: 1px solid black;text-align: center;\"></td>
					</tr>"

			end
		end

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

		return tabela
	end
end
