diff --git a/gestaoRaul/clients/__pycache__/views.cpython-312.pyc b/gestaoRaul/clients/__pycache__/views.cpython-312.pyc index c419774..efcd208 100644 Binary files a/gestaoRaul/clients/__pycache__/views.cpython-312.pyc and b/gestaoRaul/clients/__pycache__/views.cpython-312.pyc differ diff --git a/gestaoRaul/clients/templates/viewclient.html b/gestaoRaul/clients/templates/viewclient.html index 44d5b53..6c86a00 100644 --- a/gestaoRaul/clients/templates/viewclient.html +++ b/gestaoRaul/clients/templates/viewclient.html @@ -17,10 +17,10 @@ Comandas

{{client.name}}

R$ {{client.id | totalFiado}}


-

R$

+
diff --git a/gestaoRaul/clients/views.py b/gestaoRaul/clients/views.py index bc29762..43d7c1c 100644 --- a/gestaoRaul/clients/views.py +++ b/gestaoRaul/clients/views.py @@ -96,13 +96,13 @@ def payDebt(request): except Comanda.DoesNotExist: return JsonResponse({'error': f'Comanda com ID {comanda_id} não encontrada'}, status=404) - return redirect(f'/clients/viewClient/{comanda.client.id}') + # return redirect(f'/clients/viewClient/{comanda.client.id}') - # return JsonResponse({ - # 'success': True, - # 'message': f'{len(comanda_ids)} comandas processadas', - # 'ids': comanda_ids - # }, status=200) + return JsonResponse({ + 'success': True, + 'message': f'{len(comanda_ids)} comandas processadas', + 'ids': comanda_ids + }, status=200) except Exception as e: return JsonResponse({ diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index 9c8c9f3..84ae8ba 100644 Binary files a/gestaoRaul/db.sqlite3 and b/gestaoRaul/db.sqlite3 differ diff --git a/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc b/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc index 75a8458..70cbf39 100644 Binary files a/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc and b/gestaoRaul/gestaoRaul/__pycache__/settings.cpython-312.pyc differ diff --git a/gestaoRaul/templates/base.html b/gestaoRaul/templates/base.html index 3f98daa..32fbb0d 100644 --- a/gestaoRaul/templates/base.html +++ b/gestaoRaul/templates/base.html @@ -156,6 +156,8 @@ + + diff --git a/gestaoRaul/templates/static/base.js b/gestaoRaul/templates/static/base.js index ae5c2c8..f1b797a 100644 --- a/gestaoRaul/templates/static/base.js +++ b/gestaoRaul/templates/static/base.js @@ -174,4 +174,16 @@ function openFullscreen() { setTimeout(() => { toast.classList.remove('show'); }, duration); - } \ No newline at end of file + } + + + function feedback(message, status, subMessage) { + var feedbackMsg = Swal.fire({ + title: message, + text: subMessage || '', + icon: status, + background: 'rgba(8, 9, 10, 0.75)', + confirmButtonColor: 'linear-gradient(145deg, #1E2A3B, #2C3E50)', + }); +return feedbackMsg; +} \ No newline at end of file diff --git a/gestaoRaul/templates/static/clients/js/clients.js b/gestaoRaul/templates/static/clients/js/clients.js index 38ca6c5..dd7f7fa 100644 --- a/gestaoRaul/templates/static/clients/js/clients.js +++ b/gestaoRaul/templates/static/clients/js/clients.js @@ -57,6 +57,8 @@ function editclient(id) { function calcularTotalSelecionado() { + const btn = document.getElementById('btn-fechar-comandas'); + let total = 0; // Seleciona todos os checkboxes marcados (exceto o "selectAll") const checkboxes = document.querySelectorAll('input[type="checkbox"]:checked:not(#selectAll)'); @@ -79,12 +81,10 @@ function calcularTotalSelecionado() { } } }); - console.log(total) - // Exibe o total na tela (você pode ajustar onde mostrar) - const totalElement = document.getElementById('total-selecionado'); - if (totalElement) { - totalElement.textContent = total.toLocaleString('pt-BR', {style: 'currency', currency: 'BRL'}); + // Exibe o total no botão de receber + if (btn) { + btn.innerHTML = 'Receber '+total.toLocaleString('pt-BR', {style: 'currency', currency: 'BRL'}); } else { // Cria um elemento para mostrar o total se não existir const display = document.createElement('div'); @@ -141,9 +141,9 @@ document.addEventListener('DOMContentLoaded', function() { + async function enviarComandasSelecionadas() { const btn = document.getElementById('btn-fechar-comandas'); - const feedback = document.getElementById('api-feedback'); btn.disabled = true; btn.innerHTML = ' Processando...'; @@ -160,8 +160,8 @@ async function enviarComandasSelecionadas() { }); if (ids.length === 0) { - feedback.textContent = 'Nenhuma comanda válida selecionada.'; - feedback.className = 'feedback-message error'; + feedback('Nenhuma comanda selecionada.', 'error', 'Selecione uma comanda e tente novamente.'); + return; } @@ -188,8 +188,8 @@ async function enviarComandasSelecionadas() { throw new Error(data.error || `Erro HTTP: ${response.status}`); } - feedback.textContent = data.message || `${ids.length} comandas processadas com sucesso!`; - feedback.className = 'feedback-message success'; + feedback(`${ids.length} comandas pagas com sucesso!`, 'success'); + setTimeout(() => { window.location.reload(); @@ -197,15 +197,14 @@ async function enviarComandasSelecionadas() { } catch (error) { console.error('Erro:', error); - feedback.textContent = error.message || 'Erro ao processar comandas. Verifique o console para mais detalhes.'; - feedback.className = 'feedback-message error'; + feedback('Erro', 'error', error); + } finally { btn.disabled = false; - btn.innerHTML = ' Fechar Comandas Selecionadas'; + btn.innerHTML = 'Receber'; } } -// Função auxiliar para pegar o token CSRF function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { @@ -221,5 +220,3 @@ function getCookie(name) { return cookieValue; } -// Exemplo de como chamar a função (pode ser vinculada a um botão) -// document.getElementById('btn-fechar-comandas').addEventListener('click', enviarComandasSelecionadas); \ No newline at end of file