teste #10
@@ -258,11 +258,25 @@
|
|||||||
renderPeriodo(data.periodo, data.falhas);
|
renderPeriodo(data.periodo, data.falhas);
|
||||||
// Só veio o card pronto quando a NF tem um lançamento único; com mais de
|
// Só veio o card pronto quando a NF tem um lançamento único; com mais de
|
||||||
// um, o ADM escolhe na lista antes de abrir qualquer coisa.
|
// um, o ADM escolhe na lista antes de abrir qualquer coisa.
|
||||||
if (data.visita) { abrirCard(data.visita); } else { visita = null; renderOcorrencias(); }
|
if (data.visita) {
|
||||||
if (!data.visita && !ocorrencias.length) mostrarErroBusca('Nenhum lançamento localizado para esta NF no período consultado.');
|
abrirCard(data.visita);
|
||||||
|
} else {
|
||||||
|
visita = null;
|
||||||
|
renderOcorrencias();
|
||||||
|
// Tela em branco é pior que erro: se não há card E a lista ficou
|
||||||
|
// escondida, o ADM precisa saber por quê em vez de achar que a NF
|
||||||
|
// não existe.
|
||||||
|
if (ocEl.classList.contains('hidden')) {
|
||||||
|
mostrarErroBusca(ocorrencias.length
|
||||||
|
? 'O lançamento foi localizado mas não pôde ser aberto — veja os avisos acima.'
|
||||||
|
: 'Nenhum lançamento localizado para esta NF no período consultado.');
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
renderOcorrencias();
|
// Mostra o erro real: "Erro de conexão" genérico escondeu uma exceção de
|
||||||
mostrarErroBusca('Erro de conexão ao buscar a NF.');
|
// renderização e deixou a tela muda.
|
||||||
|
console.error('[edicao-lancamento] falha na busca', e);
|
||||||
|
mostrarErroBusca('Falha ao processar a busca: ' + ((e && e.message) || e));
|
||||||
} finally {
|
} finally {
|
||||||
loadEl.classList.add('hidden');
|
loadEl.classList.add('hidden');
|
||||||
}
|
}
|
||||||
@@ -306,10 +320,16 @@
|
|||||||
const ocCont = document.getElementById('oc-contador');
|
const ocCont = document.getElementById('oc-contador');
|
||||||
const ocDica = document.getElementById('oc-dica');
|
const ocDica = document.getElementById('oc-dica');
|
||||||
|
|
||||||
|
// ⚠️ NÃO usar new Date('2026-07-15') para data pura: o JS lê como meia-noite
|
||||||
|
// UTC e o toLocale em UTC-3 devolve o DIA ANTERIOR. Data planejada não é um
|
||||||
|
// instante — formata direto do texto ISO.
|
||||||
const fmtData = v => {
|
const fmtData = v => {
|
||||||
if (!v) return '—';
|
if (!v) return '—';
|
||||||
const d = new Date(v);
|
const s = String(v);
|
||||||
return isNaN(d) ? String(v).slice(0, 10) : d.toLocaleDateString('pt-BR');
|
const iso = s.match(/^(\d{4})-(\d{2})-(\d{2})/);
|
||||||
|
if (iso) return iso[3] + '/' + iso[2] + '/' + iso[1];
|
||||||
|
const d = new Date(s);
|
||||||
|
return isNaN(d) ? s.slice(0, 10) : d.toLocaleDateString('pt-BR');
|
||||||
};
|
};
|
||||||
const fmtHora = v => {
|
const fmtHora = v => {
|
||||||
if (!v) return null;
|
if (!v) return null;
|
||||||
@@ -325,6 +345,9 @@
|
|||||||
ocEl.classList.add('hidden'); ocLista.innerHTML = ''; return;
|
ocEl.classList.add('hidden'); ocLista.innerHTML = ''; return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// O bloco nasce com `hidden` no ERB — sem tirar a classe aqui, a lista é
|
||||||
|
// montada e fica invisível (a tela parecia não ter achado nada).
|
||||||
|
ocEl.classList.remove('hidden');
|
||||||
ocCont.textContent = n + (n === 1 ? ' lançamento' : ' lançamentos');
|
ocCont.textContent = n + (n === 1 ? ' lançamento' : ' lançamentos');
|
||||||
ocDica.textContent = n > 1 ? 'para esta NF — escolha qual quer editar.' : 'para esta NF.';
|
ocDica.textContent = n > 1 ? 'para esta NF — escolha qual quer editar.' : 'para esta NF.';
|
||||||
ocLista.innerHTML = ocorrencias.map((o, i) => {
|
ocLista.innerHTML = ocorrencias.map((o, i) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user