atualizar valor todal modal receber

This commit is contained in:
2024-12-27 18:26:56 -03:00
parent 356d45c3e5
commit ac87c3a47d
6 changed files with 64 additions and 86 deletions

View File

@@ -1,5 +1,7 @@
from django.shortcuts import render, redirect
from django.views.decorators.csrf import csrf_exempt
from django.db.models import Count, F
from comandas.models import Comanda, ProductComanda
@@ -9,10 +11,24 @@ from typePay.models import TypePay
@csrf_exempt
def listProductBalcao(request, comanda_id, search_product):
print('chegouuuuuuuuuuuuuuuuuuuuuuuuuuu')
product = search_product
products = Product.objects.filter(name__icontains=product)
return render(request, "htmx_components/htmx_list_products_balcao.html", {"products": products,'comanda_id':comanda_id})
print(search_product)
if len(search_product) == 0:
produtos_mais_vendidos = list(ProductComanda.objects.values('product').annotate(
quantidade=Count('product'),
nome=F('product__name') ).order_by('-quantidade'))
products = Product.objects.all()
products_ordenados = []
for produto in produtos_mais_vendidos:
for p in products:
if p.name == produto['nome']:
products_ordenados.append(p)
return render(request, "htmx_components/htmx_list_products_balcao.html", {"products": products,'comanda_id':comanda_id})
else:
product = search_product
products = Product.objects.filter(name__icontains=product)
return render(request, "htmx_components/htmx_list_products_balcao.html", {"products": products,'comanda_id':comanda_id})
# def listProductBalcao(request, comanda_id):
@@ -32,7 +48,6 @@ def addProductBalcao(request, product_id, comanda_id, qtd):
@csrf_exempt
def addProductBalcaoTeclado(request, product_id, comanda_id, qtd):
qtd = int(request.COOKIES.get('qtd'))
for i in range(qtd):
product_comanda = ProductComanda(comanda_id=comanda_id, product_id=product_id)
product_comanda.save()

View File

@@ -58,6 +58,9 @@
<tr>
<td colspan="2" style="text-align: center;">Total R$ {{total}}</td>
</tr>
<tr hidden >
<td hidden id="total">{{total}}</td>
</tr>
</tfoot>
</table>
</div>
@@ -144,7 +147,7 @@
<dialog id="payment-comanda" style="display: none;" >
<article>
<h2>Receber</h2>
<h1>R$ {{ total }}</h1>
<h1 id="first-total" >R$ {{ total }}</h1>
<p>
</p>
<ul>

Binary file not shown.

View File

@@ -17,7 +17,10 @@
<tfoot>
<tr>
<td colspan="2" style="text-align: center;">Total R$ {{total}}</td>
<td value={{total}} colspan="2" style="text-align: center;">Total R$ {{total}}</td>
</tr>
<tr >
<td hidden id="total">{{total}}</td>
</tr>
</tfoot>
</table>

View File

@@ -1,12 +1,5 @@
// function openModal() {
// document.getElementById('Modal-add-product').style.display = 'block';
// }
// function open_remove_product_comanda() {
// document.getElementById('remove-product-comanda').style.display = 'block';
// }
function modal_payment_comanda() {
document.getElementById('payment-comanda').style.display = 'block';
}
@@ -15,14 +8,11 @@ function close_modal_payment_comanda() {
document.getElementById('payment-comanda').style.display = 'none';
}
// function closeModal() {
// document.getElementById('Modal-add-product').style.display = 'none';
// }
document.cookie = 'qtd=1';
// document.cookie = 'qtd=1';
function imprimirFichas() {
const element = document.getElementById("list-products-comanda");
const element = document.getElementById("list-products-balcao");
const style = `<style>
td, th {
@@ -37,11 +27,9 @@ function imprimirFichas() {
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+ '<BR>VÁLIDO SOMENTE POR ESSA NOITE'+'</td></tr>');
console.log(content);
var printWindow = window.open('', '_blank');
printWindow.document.write('<table>'+content+'</table>'+style);
@@ -54,39 +42,6 @@ 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();}, 10);
@@ -104,21 +59,22 @@ document.onkeydown = teclado
function teclado(event){
if (event.keyCode == 13){
addProductBalcao()
// reloadPage()
}else{
console.log(event.keyCode)
console.log('')
}
}
function updateTotal(){
const newTotal = document.getElementById('total').innerText
document.getElementById('first-total').innerHTML = 'R$ ' + newTotal
}
function addProductBalcao() {
var productId = document.getElementById('0').innerText;
var comandaId = document.getElementById('comanda0').innerText;
var qtd = document.getElementById('qtd-product').value;
console.log(productId, comandaId)
const url = `/balcao/addProductBalcaoTeclado${productId}/${comandaId}/${qtd}/`;
fetch(url, {
method: 'GET',
@@ -130,6 +86,12 @@ function addProductBalcao() {
var listProductsBalcaoElement = document.getElementById("list-products-balcao");
listProductsBalcaoElement.innerHTML = text;
})
const receber = document.getElementById('pagarComanda')
const imprimir = document.getElementById('imprimirFichas')
receber.removeAttribute('disabled');
imprimir.removeAttribute('disabled');
setTimeout(function() {
updateTotal();}, 100);
}
@@ -146,6 +108,10 @@ function removeProductBalcao(id) {
var listProductsBalcaoElement = document.getElementById("list-products-balcao");
listProductsBalcaoElement.innerHTML = text;
})
setTimeout(function() {
updateTotal();}, 100);
}
@@ -156,55 +122,46 @@ document.getElementById('productForm').addEventListener('submit', function(event
const qtd = document.getElementById('qtd-product');
qtd.addEventListener('input', () => {
const chave = 'qtd';
const valor = qtd.value;
document.cookie = chave + '=' + valor;
console.log(chave, valor);
});
function searchProduct() {
var search_product = document.getElementById('search-product').value
setTimeout(() => {
time();
}, 100);
function time(){
var search_product = document.getElementById('search-product').value.trim()
var productListElement = document.getElementById("product-list");
if(search_product.length >= 1){
if(search_product.length >= 1 ){
fetch(`/balcao/listProductBalcao/13/${search_product}`, {
method: 'GET',
}
method: 'GET',}
).then(function(response) {
return response.text();
}).then(function(text) {
productListElement.innerHTML = text;
})}
})}}
}
function addProductClick(productId, comandaId) {
console.log(productId, comandaId)
var qtd = document.getElementById('qtd-product').value
fetch(`/balcao/addProductBalcaoTeclado${productId}/${comandaId}/${qtd}`, {
method: 'GET',
headers: {
headers: {
'Content-Type': 'application/json'}
})
})
.then(function(response) {
return response.text();
}).then(function(text) {
var listProductsBalcaoElement = document.getElementById("list-products-balcao");
listProductsBalcaoElement.innerHTML = text;
})
const receber = document.getElementById('pagarComanda')
const imprimir = document.getElementById('imprimirFichas')
receber.removeAttribute('disabled');
imprimir.removeAttribute('disabled');
setTimeout(function() {
updateTotal();}, 100);
}
// hx-get="{% url 'listProductBalcao' comanda.id %}"
// hx-trigger="keyup"
// hx-target="#product-list"
// hx-get="{% url 'addProductBalcaoTeclado' product.id comanda.id 1 %}" hx-trigger="click" hx-target="#list-products-balcao"