diff --git a/src/index.html b/src/index.html index ac19155..089d048 100644 --- a/src/index.html +++ b/src/index.html @@ -3044,25 +3044,60 @@ window.salvarEdicaoModal = async function() { total_areceber: recv_tot, total_cancelamentos: canc_tot, + // Fechamento (campos calculados que o formato antigo usava no dados) + fechamento_dinheiro: p(inp('edit-troco')) + vales_tot + sang_tot - desp_tot - canc_tot, + fechamento_cartoes: cartCred_tot + cartDeb_tot + cartAli_tot + cartPix_tot, + fechamento_areceber: recv_tot, + // Lançamentos detalhados (JSONB — gravados no campo `dados`) - // IMPORTANTE: não usar JSON.stringify — dados deve ser objeto, não string, - // para o Rust serializar corretamente como JSONB no Supabase. - // Se full.dados existe (string de stringify anterior), parsear de volta. + // Merge completo com dados existentes para preservar campos antigos (fc, fd, fr, + // uuid, id_local, sync_status, fechamento, etc.) e sobrepor com valores atuais. dados: (() => { const existing = full.dados; - const base = { cartoes, vales, despesas, sangrias, cancelamentos, pixcnpj, receber }; - const counters = { + const base = { + cartoes, + vales, + despesas, + sangrias, + cancelamentos, + pixcnpj, + receber, clientes: parseInt(inp('edit-clientes') || '0'), frango: parseInt(inp('edit-frango') || '0'), vendas: p(inp('edit-vendas')), + // Campos que o formato antigo gravava no dados + credito: cartCred_tot, + debito: cartDeb_tot, + alimentacao: cartAli_tot, + fc: cartCred_tot + cartDeb_tot + cartAli_tot + cartPix_tot, + fd: sang_tot, + fr: vales_tot, + fechamento: p(inp('edit-troco')) + vales_tot + sang_tot - desp_tot - canc_tot, + saldo_troco: p(inp('edit-troco')), + total_vales: vales_tot, + total_despesas: desp_tot, + total_sangrias: sang_tot, + total_pixcnpj: pixcnpj_tot, + total_areceber: recv_tot, + total_cancelamentos: canc_tot, + total_cartao_credito: cartCred_tot, + total_cartao_debito: cartDeb_tot, + total_cartao_alimentacao: cartAli_tot, + total_cartao_pix: cartPix_tot, + saldo_esperado: p(inp('edit-esperado')), + observacoes: inp('edit-obs') || '', + data: inp('edit-data') || full.data || '', + loja: inp('edit-loja') || full.loja || '', + turno: inp('edit-turno') || full.turno || '', + operador: inp('edit-operador') || full.operador || '', }; if (typeof existing === 'string') { try { const parsed = JSON.parse(existing); - return { ...parsed, ...base, ...counters }; - } catch { return { ...base, ...counters }; } + return { ...parsed, ...base }; + } catch { return base; } } - return { ...(existing || {}), ...base, ...counters }; + return { ...(existing || {}), ...base }; })(), // Contadores