ordem add produtos na comanda

This commit is contained in:
2025-01-07 20:00:06 -03:00
parent b2641691fe
commit 6633110140
8 changed files with 37 additions and 23 deletions

View File

@@ -8,7 +8,11 @@ from typePay.models import TypePay
def listProduct(request, comanda_id): def listProduct(request, comanda_id):
product = request.GET.get("search-product") product = request.GET.get("search-product")
products = Product.objects.filter(name__icontains=product) allProducts = Product.objects.filter(name__icontains=product)
products = []
for p in allProducts:
if p.active == True:
products.append(p)
return render(request, "htmx_components/htmx_list_products.html", {"products": products,'comanda_id':comanda_id}) return render(request, "htmx_components/htmx_list_products.html", {"products": products,'comanda_id':comanda_id})
def addProduct(request, product_id, comanda_id): def addProduct(request, product_id, comanda_id):

View File

@@ -21,7 +21,7 @@ Detalhes {{comanda.name}}
<body> <body>
<div class="grid-container" > <div class="grid-container" >
<div> <div>
<button class="primary" id="openModal" <button class="primary" id="openModal" onclick="openModal()"
{% if comanda.status != 'OPEN'%} {% if comanda.status != 'OPEN'%}
disabled disabled
{% endif %} {% endif %}

View File

@@ -1,4 +1,5 @@
from django.shortcuts import render, redirect from django.shortcuts import render, redirect
from django.db.models import Count, F
from comandas.models import Comanda, ProductComanda from comandas.models import Comanda, ProductComanda
from products.models import Product from products.models import Product
@@ -17,12 +18,23 @@ def viewComanda(request):
comanda_id = int(id) comanda_id = int(id)
comanda = Comanda.objects.get(id=comanda_id) comanda = Comanda.objects.get(id=comanda_id)
consumo = ProductComanda.objects.filter(comanda=comanda_id) consumo = ProductComanda.objects.filter(comanda=comanda_id)
produtos_mais_vendidos = list(ProductComanda.objects.values('product').annotate(
quantidade=Count('product'),
nome=F('product__name') ).order_by('-quantidade'))
products = Product.objects.all() products = Product.objects.all()
products_ordenados = []
for produto in produtos_mais_vendidos:
for p in products:
if p.name == produto['nome'] and p.active == True:
products_ordenados.append(p)
total = 0 total = 0
for produto in consumo: for produto in consumo:
total += produto.product.price total += produto.product.price
return render(request, 'viewcomanda.html', {'comanda': comanda, 'consumo': consumo, 'total': total, 'products': products}) return render(request, 'viewcomanda.html', {'comanda': comanda, 'consumo': consumo, 'total': total, 'products': products_ordenados})

Binary file not shown.

View File

@@ -1,9 +1,8 @@
{% for product in products %} {% for product in products %}
{{co}}
<article style="background-color: #293552;" hx-get="{% url 'addProduct' product.id comanda_id %} " hx-trigger="click" hx-target="#list-products-comanda"> <article onclick="addProductComanda({{product.id}})" style="background-color: #293552;" hx-get="{% url 'addProduct' product.id comanda_id %} " hx-trigger="click" hx-target="#list-products-comanda">
{{product.name}} <br> {{product.name}} <br>
R$ {{product.price}} R$ {{product.price}}
</article> </article>

View File

@@ -2,6 +2,7 @@
function openModal() { function openModal() {
document.getElementById('Modal-add-product').style.display = 'block'; document.getElementById('Modal-add-product').style.display = 'block';
// document.getElementById('Modal-add-product').setAttribute();
} }
@@ -44,7 +45,7 @@ function imprimirFichas() {
if (element) { if (element) {
var content = element.innerHTML; var content = element.innerHTML;
// console.log(content); // console.log(content);
content = content.replace(/<button[^>]*>(?:(?!<\/button>)[\s\S])*<\/button>/gi,''); content = content.replace(/<img[^>]*>(?:(?!<\/img>)[\s\S])*<\/img>/gi,'');
content = content.replace(/<th[^>]*>(?:(?!<\/th>)[\s\S])*<\/th>/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>'); content = content.replace(/<\/tr>/g,'</tr><tr><td colspan="2" style="font-size: 12px">'+dateString+'</td></tr>');
console.log(content); console.log(content);
@@ -78,7 +79,7 @@ function imprimirConta() {
if (element) { if (element) {
var content = element.innerHTML; var content = element.innerHTML;
// console.log(content); // console.log(content);
content = content.replace(/<button[^>]*>(?:(?!<\/button>)[\s\S])*<\/button>/gi,''); content = content.replace(/<img[^>]*>(?:(?!<\/img>)[\s\S])*<\/img>/gi,'');
content = content.replace(/<th[^>]*>(?:(?!<\/th>)[\s\S])*<\/th>/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>'); // content = content.replace(/<\/tr>/g,'</tr><tr><td colspan="2" style="font-size: 12px">'+dateString+'</td></tr>');
console.log(content); console.log(content);
@@ -106,19 +107,17 @@ function backPage() {
} }
document.onkeydown = teclado // document.onkeydown = teclado
function teclado(event){ // function teclado(event){
if (event.keyCode == 65){ // if (event.keyCode == 65){
openModal() // openModal()
} // }
else if (event.keyCode == 73){ // else if (event.keyCode == 73){
imprimirFichas() // imprimirFichas()
} // }
// else if (event.keyCode == 70){
// imprimirConta() // }
// }
}
function addProductComanda(productId) { function addProductComanda(productId) {
@@ -134,11 +133,11 @@ function addProductComanda(productId) {
document.getElementById('openModal').addEventListener('click', openModal); // document.getElementById('openModal').addEventListener('click', openModal);
document.getElementById('productForm').addEventListener('submit', function(event) { // document.getElementById('productForm').addEventListener('submit', function(event) {
event.preventDefault(); // event.preventDefault();
}); // });