DISPENSA DE LICITAÇÃO Nº. 012/2026 – HOMOLOGAÇÃO

Sessão de abertura: -

DISPENSA DE LICITAÇÃO Nº. 012/2026 – HOMOLOGAÇÃO

Sessão de abertura: -

Edital nº 012/2026/2026

Sessão de abertura: -
Valor estimado: R$ 18.987,00
Situação: ABERTA

Objeto: O objeto da presente dispensa é a Contratação de empresa especializada para o fornecimento de material de expediente para atender as necessidades da Câmara Municipal de Pé de Serra-Bahia, conforme condições, quantidades e exigências estabelecidas neste Aviso de Contratação Direta e seus anexos.

DISPENSA DE LICITAÇÃO Nº. 012/2026 – HOMOLOGAÇÃO

Sessão de abertura: -

DISPENSA DE LICITAÇÃO Nº. 012/2026 – HOMOLOGAÇÃO

Sessão de abertura: -
'; return html; } function exportData(format) { const rows = gatherData(); if (!rows.length) { alert('Nenhum dado para exportar.'); return; } switch (format) { case 'json': downloadFile(JSON.stringify(rows, null, 2), 'application/json', 'json'); break; case 'xml': let xml = '<' + '?xml version="1.0" encoding="UTF-8"?' + '>'; rows.forEach(row => { xml += ''; Object.keys(row).forEach(key => { xml += `<${key}>${escapeXml(row[key])}`; }); xml += ''; }); xml += ''; downloadFile(xml, 'application/xml', 'xml'); break; case 'html': downloadFile(buildHtml(rows), 'text/html', 'html'); break; case 'csv': { const headers = ['ordem', 'titulo', 'id_pncp', 'modalidade', 'orgao', 'local', 'sessao_abertura', 'valor_estimado', 'valor_homologado', 'situacao', 'ultima_atualizacao', 'objeto', 'link']; const lines = [headers.join(',')]; rows.forEach(row => { lines.push(headers.map(h => escapeCsv(row[h] ?? '')).join(',')); }); downloadFile(lines.join('\n'), 'text/csv', 'csv'); break; } case 'txt': { const blocks = rows.map(r => [ `#${r.ordem} - ${r.titulo}`, `Id PNCP: ${r.id_pncp}`, `Modalidade: ${r.modalidade}`, `Órgão: ${r.orgao}`, `Local: ${r.local}`, `Sessão de abertura: ${r.sessao_abertura}`, `Valor estimado: ${r.valor_estimado}`, `Valor homologado: ${r.valor_homologado}`, `Situação: ${r.situacao}`, `Última atualização: ${r.ultima_atualizacao}`, `Objeto: ${r.objeto}`, `Link: ${r.link}` ].join('\n')); downloadFile(blocks.join('\n\n'), 'text/plain', 'txt'); break; } default: alert('Formato não suportado.'); } } if (exportBtn && exportMenu) { exportBtn.addEventListener('click', function (ev) { ev.preventDefault(); exportMenu.classList.toggle('is-open'); }); exportMenu.addEventListener('click', function (ev) { const btn = ev.target.closest('button[data-format]'); if (!btn) return; exportMenu.classList.remove('is-open'); exportData(btn.getAttribute('data-format')); }); document.addEventListener('click', function (ev) { if (!exportMenu.contains(ev.target) && ev.target !== exportBtn) { exportMenu.classList.remove('is-open'); } }); } })();