diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json new file mode 100644 index 0000000..cd7a05d --- /dev/null +++ b/src-tauri/capabilities/default.json @@ -0,0 +1,23 @@ +{ + "identifier": "default", + "description": "Default capabilities for Fechamento de Caixa", + "windows": ["main"], + "permissions": [ + "core:default", + "shell:allow-open", + "dialog:allow-message", + "dialog:allow-confirm", + "dialog:allow-ask", + "dialog:allow-save", + "dialog:allow-open", + "fs:default", + "fs:allow-app-read", + "fs:allow-app-write", + "fs:allow-appdata-read", + "fs:allow-appdata-write", + "fs:allow-appconfig-read", + "fs:allow-appconfig-write", + "fs:allow-applocaldata-read", + "fs:allow-applocaldata-write" + ] +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 2aecc69..d8f959b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -11,7 +11,7 @@ "app": { "windows": [ { - "title": "Fechamento de Caixa — O Frangão", + "title": "Fechamento de Caixa \u2014 O Frang\u00e3o", "width": 1100, "height": 780, "minWidth": 900, @@ -22,13 +22,18 @@ } ], "security": { - "csp": null + "csp": null, + "capabilities": [ + "default" + ] }, "withGlobalTauri": true }, "bundle": { "active": true, - "targets": ["nsis"], + "targets": [ + "nsis" + ], "icon": [ "icons/32x32.png", "icons/128x128.png", @@ -37,7 +42,9 @@ "icons/icon.ico" ], "windows": { - "webviewInstallMode": { "type": "embedBootstrapper" } + "webviewInstallMode": { + "type": "embedBootstrapper" + } }, "resources": { "../src/*": "./" diff --git a/src/index.html b/src/index.html index 943cdf1..eda1ab7 100644 --- a/src/index.html +++ b/src/index.html @@ -1520,7 +1520,7 @@ async function tauriRecibo() { // Tenta ESC/POS via Tauri primeiro; se falhar, abre preview try { - return await window.__TAURI__.core.invoke('imprimir_recibo', { estado: JSON.stringify(data) }); + return await window.__TAURI__.core.invoke('imprimir_recibo', { data: JSON.stringify(data) }); } catch(e) { console.warn('ESC/POS falhou, abrindo preview:', e); openPrintPreview(data); @@ -1539,13 +1539,17 @@ async function tauriCarregarRascunho() { // ─── Confirm Modal ──────────────────────────────────────────────────────── function openConfirmModal() { + console.log('[DEBUG] openConfirmModal chamado'); const operador = val('f-operador').trim(); const turno = val('f-turno').trim(); const loja = val('f-loja').trim(); + console.log('[DEBUG] openConfirmModal campos:', {operador, turno, loja}); if (!operador || !turno || !loja) { + console.log('[DEBUG] openConfirmModal: campos faltando, alert'); alert('⚠️ Preencha Operador, Turno e Loja antes de enviar.'); return; } + console.log('[DEBUG] openConfirmModal: campos OK, montando modal'); // Build summary const cartCred = estado.cartoes.credito.reduce((s,r) => s+(r.valor||0), 0); const cartDeb = estado.cartoes.debito.reduce((s,r) => s+(r.valor||0), 0); @@ -1580,6 +1584,7 @@ function openConfirmModal() {
🎯 Saldo Esperado (contado): ${fmt(saldoEsp)}
📐 Diferença: ${fmt(diferenca)}
ID: ${estado.loja}_${estado.data}_${estado.operador}
`; + console.log('[DEBUG] openConfirmModal: tentando abrir modal'); document.getElementById('modal-confirm').classList.add('open'); } @@ -1791,10 +1796,11 @@ document.getElementById('btn-anterior').addEventListener('click', async () => { estado.cancelamentos = rascunho.cancelamentos.map(c => ({ numero: c.numero || '', valor: parseNum(c.valor) || 0, motivo: c.motivo || '' })); } if (rascunho.cartoes) { - estado.cartoes.credito = (rascunho.cartoes.credito || []).map(v => ({ valor: parseNum(v) || 0 })); - estado.cartoes.debito = (rascunho.cartoes.debito || []).map(v => ({ valor: parseNum(v) || 0 })); - estado.cartoes.alimentacao = (rascunho.cartoes.alimentacao || []).map(v => ({ valor: parseNum(v) || 0 })); - estado.cartoes.pix = (rascunho.cartoes.pix || []).map(v => ({ valor: parseNum(v) || 0 })); + const norm = (arr) => Array.isArray(arr) ? arr.map(v => ({ valor: (typeof v === 'object' && v !== null) ? (parseNum(v.valor) || 0) : (parseNum(v) || 0) })) : []; + estado.cartoes.credito = norm(rascunho.cartoes.credito); + estado.cartoes.debito = norm(rascunho.cartoes.debito); + estado.cartoes.alimentacao = norm(rascunho.cartoes.alimentacao); + estado.cartoes.pix = norm(rascunho.cartoes.pix); } } else { estado.despesas = []; estado.sangrias = []; estado.pixcnpj = [];