mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-04 21:20:35 +00:00
feat: pagamento
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1,7 +1,9 @@
|
||||
from django.shortcuts import render, redirect
|
||||
from django.shortcuts import render, redirect, HttpResponse
|
||||
|
||||
from comandas.models import Comanda, ProductComanda
|
||||
from products.models import Product
|
||||
from payments.models import Payments
|
||||
from typePay.models import TypePay
|
||||
|
||||
|
||||
def listProduct(request, comanda_id):
|
||||
@@ -29,9 +31,30 @@ def removeProductComanda(request, productComanda_id):
|
||||
return render(request, "htmx_components/htmx_list_products_in_comanda.html",{'consumo': consumo, 'total': total})
|
||||
|
||||
def closeComanda(request, comanda_id):
|
||||
# id = request.POST.get('id-comanda')
|
||||
# comanda_id = int(id)
|
||||
comanda = Comanda.objects.get(id=comanda_id)
|
||||
comanda.status = "PAYING"
|
||||
comanda.save()
|
||||
return redirect('comandas')
|
||||
# return redirect('back')
|
||||
|
||||
|
||||
def reopenComanda(request, comanda_id):
|
||||
comanda = Comanda.objects.get(id=comanda_id)
|
||||
if comanda.status == 'CLOSED':
|
||||
pass
|
||||
else:
|
||||
comanda.status = "OPEN"
|
||||
comanda.save()
|
||||
# return redirect('back')
|
||||
|
||||
def paymentComanda(request, comanda_id):
|
||||
typePayment = TypePay.objects.get(id=1)
|
||||
consumo = ProductComanda.objects.filter(comanda=comanda_id)
|
||||
comanda = Comanda.objects.get(id=comanda_id)
|
||||
total = 0
|
||||
for produto in consumo:
|
||||
total += produto.product.price
|
||||
pagamento = Payments(value=total, comanda=comanda, type_pay=typePayment,description='tipo de pagamento mokado')
|
||||
pagamento.save()
|
||||
comanda.status = 'CLOSED'
|
||||
comanda.save()
|
||||
return redirect('comandas')
|
||||
|
||||
@@ -27,23 +27,34 @@ Detalhes {{comanda.name}}
|
||||
{% endif %}
|
||||
>Adicionar Produto</button>
|
||||
|
||||
<button id="pagarComanda" hx-get="{% url 'closeComanda' comanda.id %} " hx-trigger="click"
|
||||
<button id="pagarComanda" hx-get="{% url 'closeComanda' comanda.id %} " hx-trigger="click" hx-swap="none" onclick="imprimirConta()"
|
||||
{% if comanda.status != 'OPEN' %}
|
||||
style="display: none;"
|
||||
{% endif %}
|
||||
>Fechar Comanda</button>
|
||||
|
||||
<button id="pagarComanda"
|
||||
<button id="pagarComanda" onclick="modal_payment_comanda()"
|
||||
{% if comanda.status != 'PAYING' %}
|
||||
style="display: none;"
|
||||
{% endif %}
|
||||
>Receber</button>
|
||||
|
||||
<button class="button" id="imprimirFichas" onclick="imprimirFichas()">Imprimir Fichas</button>
|
||||
<button class="button" id="imprimirFichas"
|
||||
{% if comanda.status != 'OPEN'%}
|
||||
style="display: none;"
|
||||
{% endif %}
|
||||
onclick="imprimirFichas()">Imprimir Fichas</button>
|
||||
|
||||
<button class="button" id="imprimirFichas" hx-get="{% url 'reopenComanda' comanda.id %} " hx-trigger="click" hx-swap="none" onclick="reloadPage()"
|
||||
{% if comanda.status == 'OPEN'%}
|
||||
style="display: none;"
|
||||
{% elif comanda.status == 'CLOSED' %}
|
||||
style="display: none;"
|
||||
{% endif %}
|
||||
>Reabrir</button>
|
||||
|
||||
|
||||
</div>
|
||||
<!-- <p>{{comanda.id}}</p> -->
|
||||
<div>
|
||||
<span>Nome: {{comanda.name}} | </span>
|
||||
<span>Mesa: {{comanda.mesa}}</span>
|
||||
@@ -63,7 +74,11 @@ Detalhes {{comanda.name}}
|
||||
<tr>
|
||||
<td>{{item.product.name}}</td>
|
||||
<td>R$ {{item.product.price}}</td>
|
||||
<td><button hx-get="{% url 'removeProductComanda' item.id %} " hx-trigger="click" hx-target="#list-products-comanda" onclick="open_remove_product_comanda()">🗑️ Excluir</button></td>
|
||||
<td><button
|
||||
{% if comanda.status != 'OPEN'%}
|
||||
disabled
|
||||
{% endif %}
|
||||
hx-get="{% url 'removeProductComanda' item.id %} " hx-trigger="click" hx-target="#list-products-comanda" onclick="open_remove_product_comanda()">🗑️ Excluir</button></td>
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -124,6 +139,24 @@ Detalhes {{comanda.name}}
|
||||
</article>
|
||||
</dialog>
|
||||
|
||||
<dialog id="payment-comanda" style="display: none;" >
|
||||
<article>
|
||||
<h2>Receber</h2>
|
||||
<h1>R$ {{ total }}</h1>
|
||||
<p>
|
||||
</p>
|
||||
<ul>
|
||||
</ul>
|
||||
<footer>
|
||||
<button class="secondary" hx-get="{% url 'paymentComanda' comanda.id %} " hx-trigger="click" hx-swap="none" onclick="backPage()">
|
||||
Comfimar
|
||||
</button>
|
||||
|
||||
<button onclick="close_modal_payment_comanda()" >Cancelar</button>
|
||||
</footer>
|
||||
</article>
|
||||
</dialog>
|
||||
|
||||
|
||||
|
||||
<script src="{% static 'comandas/js/viewcomanda.js' %}"></script>
|
||||
|
||||
@@ -20,6 +20,8 @@ htmx_urlpatterns = [
|
||||
path('addProduct<int:product_id>/<int:comanda_id>/', htmx_views.addProduct, name='addProduct'),
|
||||
path('removeProductComanda<int:productComanda_id>/', htmx_views.removeProductComanda, name='removeProductComanda'),
|
||||
path('closeComanda<int:comanda_id>/', htmx_views.closeComanda, name='closeComanda'),
|
||||
path('reopenComanda<int:comanda_id>/', htmx_views.reopenComanda, name='reopenComanda'),
|
||||
path('paymentComanda<int:comanda_id>/', htmx_views.paymentComanda, name='paymentComanda'),
|
||||
]
|
||||
|
||||
urlpatterns += htmx_urlpatterns
|
||||
Binary file not shown.
Binary file not shown.
@@ -52,6 +52,7 @@ INSTALLED_APPS = [
|
||||
'comandas',
|
||||
'categories',
|
||||
'home',
|
||||
'payments',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
||||
BIN
gestaoRaul/payments/__pycache__/__init__.cpython-313.pyc
Normal file
BIN
gestaoRaul/payments/__pycache__/__init__.cpython-313.pyc
Normal file
Binary file not shown.
BIN
gestaoRaul/payments/__pycache__/admin.cpython-313.pyc
Normal file
BIN
gestaoRaul/payments/__pycache__/admin.cpython-313.pyc
Normal file
Binary file not shown.
BIN
gestaoRaul/payments/__pycache__/apps.cpython-313.pyc
Normal file
BIN
gestaoRaul/payments/__pycache__/apps.cpython-313.pyc
Normal file
Binary file not shown.
BIN
gestaoRaul/payments/__pycache__/models.cpython-313.pyc
Normal file
BIN
gestaoRaul/payments/__pycache__/models.cpython-313.pyc
Normal file
Binary file not shown.
30
gestaoRaul/payments/migrations/0001_initial.py
Normal file
30
gestaoRaul/payments/migrations/0001_initial.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# Generated by Django 5.1.4 on 2024-12-20 17:33
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('clients', '0001_initial'),
|
||||
('comandas', '0003_comanda_status_alter_productcomanda_product'),
|
||||
('typePay', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Payments',
|
||||
fields=[
|
||||
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||
('value', models.DecimalField(decimal_places=2, max_digits=10)),
|
||||
('description', models.CharField(max_length=255)),
|
||||
('datetime', models.DateTimeField(auto_now_add=True)),
|
||||
('client', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, to='clients.client')),
|
||||
('comanda', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='comandas.comanda')),
|
||||
('type_pay', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='typePay.typepay')),
|
||||
],
|
||||
),
|
||||
]
|
||||
Binary file not shown.
Binary file not shown.
@@ -7,6 +7,14 @@ function open_remove_product_comanda() {
|
||||
document.getElementById('remove-product-comanda').style.display = 'block';
|
||||
}
|
||||
|
||||
function modal_payment_comanda() {
|
||||
document.getElementById('payment-comanda').style.display = 'block';
|
||||
}
|
||||
|
||||
function close_modal_payment_comanda() {
|
||||
document.getElementById('payment-comanda').style.display = 'none';
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
document.getElementById('Modal-add-product').style.display = 'none';
|
||||
}
|
||||
@@ -49,6 +57,53 @@ function imprimirFichas() {
|
||||
}
|
||||
|
||||
|
||||
function imprimirConta() {
|
||||
reloadPage();
|
||||
const element = document.getElementById("list-products-comanda");
|
||||
const style = `<style>
|
||||
td, th {
|
||||
|
||||
border-collapse: collapse;
|
||||
padding-top: 15px;
|
||||
margin: 15px;
|
||||
text-align: center;
|
||||
font-size: 18px;}
|
||||
</style>`;
|
||||
const agora = new Date();
|
||||
var dateString = agora.getDay() + '/' + agora.getMonth() + '/' + agora.getFullYear() + ' - ' + agora.getHours() + ':' + agora.getMinutes()+' - Raul Rock Bar & Café';
|
||||
|
||||
if (element) {
|
||||
var content = element.innerHTML;
|
||||
// console.log(content);
|
||||
content = content.replace(/<button[^>]*>(?:(?!<\/button>)[\s\S])*<\/button>/gi,'');
|
||||
content = content.replace(/<th[^>]*>(?:(?!<\/th>)[\s\S])*<\/th>/gi,'');
|
||||
// content = content.replace(/<\/tr>/g,'</tr><tr><td colspan="2" style="font-size: 12px">'+dateString+'</td></tr>');
|
||||
console.log(content);
|
||||
|
||||
var printWindow = window.open('', '_blank');
|
||||
printWindow.document.write('<table>'+content+'</table>'+style);
|
||||
printWindow.document.close();
|
||||
printWindow.print();
|
||||
printWindow.close();
|
||||
} else {
|
||||
console.error(`Element with ID not found`);
|
||||
}
|
||||
}
|
||||
|
||||
function reloadPage(){
|
||||
setTimeout(function() {
|
||||
location.reload();}, 100);
|
||||
}
|
||||
|
||||
function backPage() {
|
||||
setTimeout(function() {
|
||||
history.back();}, 100);
|
||||
setTimeout(function() {
|
||||
location.reload();}, 100);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
document.getElementById('openModal').addEventListener('click', openModal);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user