From b73e134d9ec7406ba75aa26fbb8886205e66abe8 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Wed, 25 Jun 2025 11:18:39 -0300 Subject: [PATCH] feedback pagamento de multiplas comandas --- .../clients/__pycache__/views.cpython-312.pyc | Bin 5290 -> 5319 bytes gestaoRaul/clients/templates/viewclient.html | 6 ++-- gestaoRaul/clients/views.py | 12 ++++---- gestaoRaul/db.sqlite3 | Bin 339968 -> 339968 bytes .../__pycache__/settings.cpython-312.pyc | Bin 4402 -> 4402 bytes gestaoRaul/templates/base.html | 2 ++ gestaoRaul/templates/static/base.js | 14 ++++++++- .../templates/static/clients/js/clients.js | 29 ++++++++---------- 8 files changed, 37 insertions(+), 26 deletions(-) diff --git a/gestaoRaul/clients/__pycache__/views.cpython-312.pyc b/gestaoRaul/clients/__pycache__/views.cpython-312.pyc index c41977465ca98b0fba5a3fa992eea6d87b39b12d..efcd2082a357de8e36edd87ebb8837a97caaf54f 100644 GIT binary patch delta 439 zcmZ3bd0dnCG%qg~0}wQQi_Untk++hIV;VC9!*m8thRGLLwKwnNQeiS=1t|c56yXwe z2#bNChG{h;ggu)fMPx2h4O5Ef9Oe|UHEgSyCQI;cXVjQ{fmc#myhIzWgA1l3MPd$9 zisWP#K6OT^$vS+$y+W!)6_WFF6Z29Mixmor@{?1GixYutP3Bwd#ihw0?k)CQkYIXh zkvY)7mnVRPnkrn;gnt$9ju7CpB;KUH%TPV4#c(5EtLuoG&2H zXr#g*Aag@p`i_+BjO@!&S{Ed>FK9bl5O=&GEccO}MV9LW2ZONK7fu!d@ed3voZ>&e zXiwfCI3rPpVS}M78^b|GRyP@jgX+!H${en>dp+V#!N@lm4Te2+)Azn z%tv(@L2P|S5Zizm#5PuQlVd$531T0UWdyP1z-&cMcV6aWS`zLY%*UA+f$ZZPtnR#% rj|nYjbexD~g>gC$bU%;V@&b 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 9c8c9f3bcb6e5f00f4abc6e030fd819ef218028d..84ae8ba15b8706ac85a73a45e2d8685c5aa9fd5e 100644 GIT binary patch delta 912 zcmZ9INoW*76o$KA)l6rZ=@&6N(aeM~jv1GvQ(ZkhOKX-fdT~V*B;Yb=G#-?wIfw_D zNDg9zxCB!uDlQRG1koVvMR2_dMi4|qi3%==~^* zF&k$1PKKANc{|r-lJ0>KGfJ)wd^2Yd(W^He(Hn`>8{rp=W0cAg4vQN0U^{NW?Di1!9r?nolddX^2sc)E35^ z;ytWsn%CI^o1?^$Pq#u#IF3~mC-4V;!H@V3U*jW;;ZZz*`>;yZATt*X_lg!6>EuVP@@74(Ir6oJdS7c;b(Y52S*hn(3fO1anq!p#c9z}wE7h6H@+(D|md%C; z(PotjE}RCQY!H*R*={0bCR7!v^nVxCY0~7DWvA_q?wy?-0Bx(*u3x@vW%z$H(O_kw zoV$+WI>NMhGM&l%YgTQ$PTEZ*OeZ0d7GKfz_(~VhNjERCgT3`b;J%!`o84f+g&H4N zS5fbc?Pj4~vPAmE*+B?~yqef3fT05B><{f&c&j delta 816 zcmZ`#OGs2v7(VAeXXg02^IJ_>ro*kK(H=8%@140hPSp6wOS(Ionzk4G4J_e z@cz6|QseMIQ!+$5x-%i2_H};?&822qginYtl_Ctkc>n`M<`}RdxDVTK2X4pjXyJXl zgZ;P?16Yfjum#s(1)iRcK~o>jQI}`(=j-!{kcajO+hIQ%i0t?aXM?H=!AN09H&9;ZHE^g8R&wA z`QhwZGfRfti1eZw?}EjJECC0k=!Mkamcr{aPkSZGstL`lGUcb+P%=NFn|9oe#v`#% z%rsV6hDL~XMU<%n*WgkqJ6qsa;xWuC5QGrncWKK162=%in?E8&2Ga6O2Ck^`A-I(% zfN zYVdf*=aF|G(z+8LeN27y@rBha;EGDo#4DiSk*sRs-U8PIzxN+btgSq?c4Z!^CN{|> z3vw;PvV%q>XqmcY#0?{EnxUv=MeT^G2lblj`r2pd2B&IlZathlSX + + 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