documents/generate: fix null.toFixed em loadAllVariables (isFinite global e enganoso)
loadVariables falhava com TypeError quando nao havia sessao vinculada (agendaEventoId=null) E o user nao passava extras.valor. Stack: 'Cannot read properties of null (reading toFixed)'. Causa: usei isFinite() global em vez de Number.isFinite(): isFinite(null) => true (coerce: Number(null) === 0) Number.isFinite(null) => false Como isFinite(null) retorna true, o codigo entrava no branch `valorNum.toFixed(2)` e crashava. Com isso, loadAllVariables inteiro estourava e variables.value zerava — explicando os inputs todos vazios mesmo com paciente/perfil/clinica preenchidos. Fix: trocar isFinite por Number.isFinite (versao strict, nao coerce null/undefined/string). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -268,16 +268,18 @@ export async function loadAllVariables(patientId, agendaEventoId = null, extras
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resolve valor numérico (extras tem prioridade sobre session)
|
// Resolve valor numérico (extras tem prioridade sobre session).
|
||||||
|
// Number.isFinite (strict) em vez de isFinite global: este último coerce
|
||||||
|
// null pra 0 e retorna true, fazendo null.toFixed crashar logo abaixo.
|
||||||
const valorNum = extras.valor != null
|
const valorNum = extras.valor != null
|
||||||
? Number(extras.valor)
|
? Number(extras.valor)
|
||||||
: (session.valor ? Number(String(session.valor).replace(/[R$\s.]/g, '').replace(',', '.')) : null);
|
: (session.valor ? Number(String(session.valor).replace(/[R$\s.]/g, '').replace(',', '.')) : null);
|
||||||
|
|
||||||
const valorFormatted = isFinite(valorNum)
|
const valorFormatted = Number.isFinite(valorNum)
|
||||||
? `R$ ${valorNum.toFixed(2).replace('.', ',')}`
|
? `R$ ${valorNum.toFixed(2).replace('.', ',')}`
|
||||||
: (session.valor || '');
|
: (session.valor || '');
|
||||||
|
|
||||||
const valorExtensoStr = isFinite(valorNum) ? valorExtenso(valorNum) : '';
|
const valorExtensoStr = Number.isFinite(valorNum) ? valorExtenso(valorNum) : '';
|
||||||
|
|
||||||
const merged = {
|
const merged = {
|
||||||
...patient,
|
...patient,
|
||||||
|
|||||||
Reference in New Issue
Block a user