From b403e5fc7229448c01b577ee02df51af4a623014 Mon Sep 17 00:00:00 2001 From: Welton Moura Date: Thu, 16 Jan 2025 16:31:13 -0300 Subject: [PATCH] feat: add valor comanda a conta do cliente --- .../comandas/__pycache__/urls.cpython-313.pyc | Bin 1477 -> 1571 bytes .../__pycache__/views.cpython-313.pyc | Bin 4030 -> 5296 bytes gestaoRaul/comandas/templates/comandas.html | 3 +- .../comandas/templates/viewcomanda.html | 44 +++++++++--------- gestaoRaul/comandas/urls.py | 1 + gestaoRaul/comandas/views.py | 20 +++++++- gestaoRaul/db.sqlite3 | Bin 299008 -> 299008 bytes .../static/comandas/js/viewcomanda.js | 12 +++++ 8 files changed, 55 insertions(+), 25 deletions(-) diff --git a/gestaoRaul/comandas/__pycache__/urls.cpython-313.pyc b/gestaoRaul/comandas/__pycache__/urls.cpython-313.pyc index f14f58b7985d6bad72f202160d15ed4fe27b7dae..0486c93d301f0be46f35cd206c1d1f438dc29d3c 100644 GIT binary patch delta 256 zcmX@gy_kphGcPX}0}#v#?@a$bkyn!O(nR%*YB7vT48eRctU*E`IaCnLAIxsatj}7+ zHSymW6R=8|80H`)R8=5euq;?5dy!BKSB#J@F9SmnSGt_0{Ny`~la&M#Q&ODs^GXt( zb23x&N>cT2@uP`s&SNTOWE7tKh}l-C2&kFi7I$e;PC;TxNorAE@nl05Ii@0!$v!NZ z+%iB(Mj$R0Vw`+{B~tb#3&#ac=^3HdWsNS%8eOpTy2#@Fft!<`se${W%w#3j`7BaE F)c`}pJJH$ScXXVWRp*HGP&M&KO1|hG4!J<{%M}JSqt04`#Py zp7`&KkUo2nU<_xBpe`>1LlI}XjHc}5e~gniZ(%B8WE7gL&SEQci@UTary#MUB(*57 xxCp3>VR9LZ+~k=oY24C44kHj3|6`cU#Tv=^fs=!use${W)Z_-%`7Dw^833^cC7J*L diff --git a/gestaoRaul/comandas/__pycache__/views.cpython-313.pyc b/gestaoRaul/comandas/__pycache__/views.cpython-313.pyc index ece44a52b5a62b317eb296a2e23e2dcddd11a820..0bdbc2bb3a14d40c1e22b7ef62f4b91f16be4627 100644 GIT binary patch delta 2518 zcmZ8jU2Gdg5Z?Q@efA~sPZLstoxiqjnoyuAq=c$!+NQOWw(`YNDp!SzeI!PgyRdgD zqAxa5r7B3MiB44z5)cU<${SK%`T`P9NC;4@NF+L?s(6CFwF)nNV`ndy7)J8$?9A-$ z?94ag`!W4}R@sfkB8bp$rKQ;ykrk!m?Z3(D0aB657x>bz#GJUuIkV@6dso%KHE zG;=yc^qyqRe4v*d+Y{ff8jg-}6r`MH7?_9soF`%Z!$sY8aDuFH(p_e+MJNkH)P2g{ zlx4zkhP&JsTq3FRsxZQsVkt%Rlu8k*T;&rJsyNK}!oo{?+NP;= zI9MFmmAdw2Qm|JIjj)BZ+mI8fa3Bk2Qz~WXbzQ>CmM-R3ITu~03$e_u05Rws@ zFZr`7o6#aqt|w14Bh$YWjs?38<^nnS|1=mQ_R+~Ml%>a&1_Og4Qlr!5>51tFYHUax zhGY=xLs`Wg6}#jqf&)=2JJs8|dqX@^>my1`o`mkS-mdB&m92TrtY|}X&b*NoJ*iAl zV&gQiAS=tX7w0Wca4bhNywC!+DvJa%I7!smc8?psIOTD(y5n(G)4>2M4B5tE7!JVz zpu+7iK;e0=Aa&>>EG1ZmEL_p?yE7kS0FuX>+Psc4z>3%yx}nWILuj16!9GXm5PTl4run^YRykqvwN^=s-BhGgRb7-+0${AeUc={8%t ztz!UVR`6d=Pm|y@cs4;XqHnjshQ7~#SgefObj{I&x1A&ELHCGkGo9;S$Upeb;WMzE zx)Z?!smS-{Adv@t(Tm`2d=>`k5r5#3AAc~ip?iQMdjZxfRVQ#_jHph7&8NuyBlg*; zPQrWAxQ=qvQ!}yg+gnfI+#lk zP)f!9YoT6?f&r1GG(BbP-=<1M-hcw2M9zH4eMRULGpNY>Y%PPDT4E^hm=t;Vsu!+S z_QHE7X6puN>4Sb1-;r-?hJ^=76+4>8obZ?-42bl^v59Ny#S4Dk6(4*1$@hf!4NG&N z`7an6sXF3vZLh3p3G)?w#=(#qPxLSHMBCAvMY{WNTRv;GV!1QM_)X_g8YD+GUuTHE?Y$f{|$-cGHX7aVo z*4OJ-c3R@gZ?2B6jBX`*8;RbvYnzEvn=Qlj%RAAw<)f=7R!(fidm8bcwRbk-uWiLg z8u5`wy^qS9@$;L}vHHawC3W9gvbL1&hSI%uV?*iQP+qOq#&=?g`?r>EZN<`!SbFWP zjaYgkcA|c1JKnK6urlzi^icRlX~c)>m+t1bQ-|+f-A;AY$H~M;?&Uwp-<{m%<$DvK zOx(S?BPW(~n{s-CPh&v;)oh0+Rs8>HKd7yh4>WVu8nWjs?35Qtx86yjiH13p90V)@i`cvpfP0UJA{YfJ$})LMu~TehJF^`Br>R7`zta$gD-@~=3hybnGCg} H91Y*Uwm=iw delta 1470 zcmYjR&2Jl35PxsKz5YlO$8Fjst&=7#+foxXgc27}B`B>Ng|^w4L`tPN#jz-tO9Ws;RuwWfhq(?OTAx@y!+Fl!cAQr1?V zc^CH|73P?0y4DJJGw0Yc#l{0;Be*?+pBlllBl!3To*Tg@cJfZ)KMLt6u>pS2@*%ds zZ?(a1Mvfw?{I!D)U*g;p-z%juH5aR1rvobasIdwDXMI16U>s$b5PvH7ZOIa`MMZs- zB_Far`d1MJ`;Lg!m%J$c(5~>3c&-*zZJCRKcCNC07LDX_5lXo2^T!Z#^%QfB6=i*f zTuWw(rFUR#Ul6m}jQCEUzH7e00;_Hm*}V@K3o>;Rxm(EDb$h*>#vR`EjBDvAR<{^y zDU7X6F@~0Nl<8sS1igx=wZ1U)OS!t8R#9ea?=qHUcz>AOt{r6S8s^7-g3Q)W>zBnq zEsBOwym38`P&myoPX3eRG zI-oy`&1NqM``uowN4?1F#MUnKTK#4e!UU?F)3JK@&PJ^6_))C3g9uDSp-99cGD(D< z3rgZ!bGk{>00T*E^#C{HapMcfkf;S-*N+Xa8MXK5-rdE`feWP4ccI<%ll92KX^JpS zxZUh^y`beiZntEuFh{Bhan_pV^WrUQ{>CK)!W@$F$bmEDoZV~tpTD030Qv}MyTY1y zYBhwB`EBmz@7|L`#vUkjWx&|t$I207xlIKjeNzE^MK4{1~deWkdW>Pfj?`?9V2MK9{ zvYVujd=tifFY?n?a7)-#@mDtFQwOWLUy|bBCb?6Gjty1fWi`XM8rCHfQEtG!W=Tcb zu%cwpWE4`dRLJo>@dJ<2B5tE*I*eHzzCPBA{!`qT?{dX?~#9z@MPE)ngZ zOmd=YH7ea+%kP9R+?BE8mkv{vteh4s9!vKzRmpA2(cDg~xhh^$uq5cl`I@9;)b{5$+>7R5|Cb*!5Rz;UBgnW+xZNOMFu~Qkk-Fs1Q3? P6phJi_CPUtS;qSx*N7yq diff --git a/gestaoRaul/comandas/templates/comandas.html b/gestaoRaul/comandas/templates/comandas.html index 90a07ae..d9b678a 100644 --- a/gestaoRaul/comandas/templates/comandas.html +++ b/gestaoRaul/comandas/templates/comandas.html @@ -52,7 +52,8 @@ Comandas {% csrf_token %}

Abrir Comanda


- + {% for mesa in mesas %} diff --git a/gestaoRaul/comandas/templates/viewcomanda.html b/gestaoRaul/comandas/templates/viewcomanda.html index 41307cf..55ab4d6 100644 --- a/gestaoRaul/comandas/templates/viewcomanda.html +++ b/gestaoRaul/comandas/templates/viewcomanda.html @@ -38,11 +38,9 @@ Detalhes {{comanda.name}} {% else %} - {% endif %} - {% if comanda.status != 'OPEN'%} - - @@ -185,10 +175,9 @@ Detalhes {{comanda.name}} {% csrf_token %}

Editar Comanda

-
- - + {% for mesa in mesas %} @@ -205,20 +194,29 @@ Detalhes {{comanda.name}} diff --git a/gestaoRaul/comandas/urls.py b/gestaoRaul/comandas/urls.py index 5ba273a..6a05852 100644 --- a/gestaoRaul/comandas/urls.py +++ b/gestaoRaul/comandas/urls.py @@ -9,6 +9,7 @@ urlpatterns = [ path('viewcomanda/', views.viewComanda, name='viewcomanda'), path('createComanda/', views.createComanda, name='createComanda'), path('editComanda/', views.editComanda, name='editComanda'), + path('addContaCliente/', views.addContaCliente, name='addContaCliente'), diff --git a/gestaoRaul/comandas/views.py b/gestaoRaul/comandas/views.py index 8c193ef..74a2304 100644 --- a/gestaoRaul/comandas/views.py +++ b/gestaoRaul/comandas/views.py @@ -1,7 +1,9 @@ +from decimal import Decimal from django.shortcuts import render, redirect from django.db.models import Count, F from comandas.models import Comanda, ProductComanda +from clients.models import Client from products.models import Product from mesas.models import Mesa from gestaoRaul.decorators import group_required @@ -21,6 +23,7 @@ def viewComanda(request): comanda = Comanda.objects.get(id=comanda_id) consumo = ProductComanda.objects.filter(comanda=comanda_id) mesas = Mesa.objects.all() + clients = Client.objects.filter(active=True) produtos_mais_vendidos = list(ProductComanda.objects.values('product').annotate( quantidade=Count('product'), @@ -36,7 +39,7 @@ def viewComanda(request): for produto in consumo: total += produto.product.price - return render(request, 'viewcomanda.html', {'comanda': comanda, 'consumo': consumo, 'total': total, 'products': products_ordenados,'mesas':mesas}) + return render(request, 'viewcomanda.html', {'clients':clients,'comanda': comanda, 'consumo': consumo, 'total': total, 'products': products_ordenados,'mesas':mesas}) @group_required(groupName='Garçom') @@ -58,3 +61,18 @@ def editComanda(request): comanda.save() return redirect('comandas') +@group_required(groupName='Gerente') +def addContaCliente(request): + + comandaId = int(request.POST.get('idComanda')) + clientId = int(request.POST.get('select-client')) + valor = float(request.POST.get('valor-conta').replace(',','.')) + comanda = Comanda.objects.get(id=comandaId) + client = Client.objects.get(id=clientId) + client.debt = client.debt + Decimal(valor) + comanda.client = client + comanda.status = 'CLOSED' + client.save() + comanda.save() + return redirect('comandas') + diff --git a/gestaoRaul/db.sqlite3 b/gestaoRaul/db.sqlite3 index 57a8645fce90e1cc59e576f6eb6ebbcf814d33de..f930d35b1e82919c310666b32d437d68ca6cf5ff 100644 GIT binary patch delta 1525 zcmaJ=YiLwQ6rMYClij=b@#RqivDxk>x-n~;&2F-f+@vL&Xi#fSghFYd(pD3TkTpf2 zNI@dnG_h!7TI~F(tx!v$R1yv5Qe!Y%`mlnowu@L&YlyK3HKmFWS}b&CSLp-Wd*GaV z@0@SG@60)~>u|}g!zBkER#L+iE0ol+7kfj>^>;3W;-x5B!~#n1wyy4N+h53q;GXh2 zr@T&?pK)(+V+w=T2FEI*otE|lbCH1NZFTXteKh1w*8j9wKK#8$=o`uwzQjknwK#Q= zC0en_+32IotYq61kxxQ#k(k^0%14`v>hL82MhNa=0k<)a8@Pra@jbFQEBGdm!3m6* zNAKC#Sj4aCj@?XORRaY~QK+8t9+eTrlFk$a1%`afIXKxC8uEue7c58eEcY3XU=*L= z6vlB2=kOiA7JPX-Bv{5w=UR%Um7v_8LHYtqdR3F&<(9sXVV)G^B#oW@B}^Q`bE#g{O#LofIT zL$r)f)X`dJc8L1??PewM>YE6rMFGR;!75Z)0qYOzvUS|rZ*8%NIc<)c!)A|h*SKUH zGxiyqjaH*VU(mnRkLrW^CTTo5N?&q59;K%|eN_Y9g`|}zN`1IKRvV7gM&ka6-BfQk z#Tr8m@mRbu4pueL^&d&m#!w`Yh{qdc(xwL{g`2|hP@`?z;d+l(B+D1JxSK`z$C4bZvkiRBps)Pc#U{b&0SNpy1W@tyo(_WV!Jr_9(1D? z)zWx!ik@<4nl7~}3YkK|uIIy?3?6nZA7*)5hBoSAcr24;MR4){4BfeMyP)tAF_~9z zNleFQIDn<_g5!Pc#cmuIR2gg#ho6LvdOV8X@H6J{5uOqA)P)XdJb8g;oy8X^%S&K+ z35?|=*m(&yo8|UZ+GOBU0wvC}BD#3rRoY*s8S4lJpjmsZB9oh5<3nSIv5xy^Xax_? z&_d_&8Cq;S8w~2iY!%W)3+V%Un25z=5eWKV&Hts!PTJu}RJ5DT?O4Wr^K`Lu`X+5} zDASN8qQu*|BIS`}a0Y4a_cI~I&x8~|>xWgys3KT$VXlT}>R3!b&l3EOUvNjjZixB* z0T*zV`@<3%me4SJ3x>Q_$Xz%F zChk_^Bg-Li5V%F!zZw#2irArWL#!d5c$sysZ|{g2GS`>mNT<|NKHa016t8c6ZcWFk tgf7>XQZ`7LDc#Sv_GW=w7js6go|I?s+RHQ5vn;mx2k(8{{-})c*Xz# delta 1322 zcmYjQeMlTf6rX*&-ko>5^Ukvd{9d(JYl!FGr+23zo<*!Js9=dnX{)wgh;V8#5K_}% znrN+%)<|pTpQIH+DTJ091(#?sNuAI{$0iDj+9WFprgy|_weiGjhr4?F^v<~6l;}Dd@9OIahXecAxdM1w zin5YIh}-=^*-G5$`7s+iQ~(}JWr}TnT?kc93n7H!+_+WBSGCU{+w`J2@JlZHk)7uo zPHX0!Zdj7aNI@okMbczRN~6Ln>B3uW!dqnF9V%{;G&{T63zhPYz5>U2d~DMhug8&% z4?s~G+u{D9x#GA`gO-sZ2cWnp}WUSuDS!Y&1uiJdJ} zK$&@a6bkjd^f{92*e1BnD;dKC)?+bs(|_o7Iz`{5U6g3`T9LM{&1hpLE3z<~g=m^CYygwn=cApH9LRyCk!YS;%o1L0@HTKm}2dVTp}#NlQgfNr{AFP248;E;7vS0vNSkuktKLS zX0=HOJH)ppuZo2YCE-N%XMFz%!7bk8HGasK@hmd@2#@0kp28{qmn6Q-8&`u7{0slU z-|-XNkKb?=o!H2lSKxcrzQX^Xa}8vgr&whGGD$YMfS+M6_K>t=VhYk;B!oq7K~xn9 zQs_Sc1GiwvWmPW_9L97yLY*4Z^3@AW-+(-3Y=GUY-hd4CfHxQoggoAe5eY|phA&ud zc+0(B-S9^P{PB5$qLm?(LNp}x7sg^SLL`8ec(>l&l{nm+qP$Y-Aljo)3OQEF3O6Cg zT(}2yewP)Kgjcwgs!{YJ$#h-jGIW{C(B&bdwa#aqys#?dE<{3_&yG_fQqtF2OO7vbBA(hm%$X=>ew+$~vwxy+)8~1gSwU4Qtm9#b`z=&5`GtKd<SlYomHmp3?jV`0x<|>zrslfFfWuB=q=ZN$i!F64natj!WIF94 vRB0EXvQ(%gp_Dlt0_8(f86)l#I+{?Pwxm+6>{^eqi&cFA>E?+Z<#f@%R`*_G diff --git a/gestaoRaul/templates/static/comandas/js/viewcomanda.js b/gestaoRaul/templates/static/comandas/js/viewcomanda.js index 51959dd..efb632f 100644 --- a/gestaoRaul/templates/static/comandas/js/viewcomanda.js +++ b/gestaoRaul/templates/static/comandas/js/viewcomanda.js @@ -34,6 +34,18 @@ function modal_payment_comanda() { recebido.focus() } + +function modal_conta_client() { + document.getElementById('conta-cliente').style.display = 'block'; + // recebido = document.getElementById('recebido') + // recebido.focus() +} + +function close_modal_conta_client() { + document.getElementById('conta-cliente').style.display = 'none'; +} + + function close_modal_payment_comanda() { document.getElementById('payment-comanda').style.display = 'none'; }