fix: dados objeto (não string) + merge com existing dados parseado
This commit is contained in:
+19
-12
@@ -3045,18 +3045,25 @@ window.salvarEdicaoModal = async function() {
|
|||||||
total_cancelamentos: canc_tot,
|
total_cancelamentos: canc_tot,
|
||||||
|
|
||||||
// Lançamentos detalhados (JSONB — gravados no campo `dados`)
|
// Lançamentos detalhados (JSONB — gravados no campo `dados`)
|
||||||
dados: JSON.stringify({
|
// IMPORTANTE: não usar JSON.stringify — dados deve ser objeto, não string,
|
||||||
cartoes,
|
// para o Rust serializar corretamente como JSONB no Supabase.
|
||||||
vales,
|
// Se full.dados existe (string de stringify anterior), parsear de volta.
|
||||||
despesas,
|
dados: (() => {
|
||||||
sangrias,
|
const existing = full.dados;
|
||||||
cancelamentos,
|
const base = { cartoes, vales, despesas, sangrias, cancelamentos, pixcnpj, receber };
|
||||||
pixcnpj,
|
const counters = {
|
||||||
receber,
|
clientes: parseInt(inp('edit-clientes') || '0'),
|
||||||
clientes: parseInt(inp('edit-clientes') || '0'),
|
frango: parseInt(inp('edit-frango') || '0'),
|
||||||
frango: parseInt(inp('edit-frango') || '0'),
|
vendas: p(inp('edit-vendas')),
|
||||||
vendas: p(inp('edit-vendas')),
|
};
|
||||||
}),
|
if (typeof existing === 'string') {
|
||||||
|
try {
|
||||||
|
const parsed = JSON.parse(existing);
|
||||||
|
return { ...parsed, ...base, ...counters };
|
||||||
|
} catch { return { ...base, ...counters }; }
|
||||||
|
}
|
||||||
|
return { ...(existing || {}), ...base, ...counters };
|
||||||
|
})(),
|
||||||
|
|
||||||
// Contadores
|
// Contadores
|
||||||
clientes: parseInt(inp('edit-clientes') || '0'),
|
clientes: parseInt(inp('edit-clientes') || '0'),
|
||||||
|
|||||||
Reference in New Issue
Block a user