feat: calcular troco com base no valor recebido

This commit is contained in:
2025-01-08 16:50:50 -03:00
parent a41960dcd5
commit 57f6f3a7fa
6 changed files with 110 additions and 122 deletions

View File

@@ -1,13 +1,12 @@
{% extends "base.html" %}
{% load static %}
{% block 'title' %}
{{comanda.name}}
{% endblock %}
{% block 'head' %}
<link rel="stylesheet" href="{% static 'comandas/css/viewbalcao.css' %}">
{% endblock %}
@@ -16,7 +15,7 @@
{% block 'body' %}
<body>
<div class="grid-container" >
<div class="grid-container">
<div style="text-align: center;">
<h1>Venda Balcão</h1>
<div>
@@ -24,8 +23,7 @@
<button id="pagarComanda" onclick="modal_payment_comanda()"
{% if total == 0 %}
disabled
{% endif %}
>Receber</button>
{% endif %}>Receber</button>
<button class="button" id="imprimirFichas" onclick="imprimirFichas()"
{% if total == 0 %}
@@ -40,25 +38,20 @@
<th style="text-align: left;">Produto</th>
<th style="text-align: left;">Preço</th>
</tr>
{% for item in consumo%}
<tr>
<td>{{item.product.name}}</td>
<td>R$ {{item.product.price}}</td>
<td><button onclick="removeProductBalcao({{item.id}})"
>🗑️ Excluir</button></td>
<td><button onclick="removeProductBalcao({{item.id}})">🗑️ Excluir</button></td>
</tr>
{% endfor %}
<tfoot>
<tr>
<td colspan="2" style="text-align: center;">Total R$ {{total}}</td>
</tr>
<tr hidden >
<tr hidden>
<td hidden id="total">{{total}}</td>
</tr>
</tfoot>
@@ -66,60 +59,34 @@
</div>
<div id="add-produto">
<form id="productForm" >
<form id="productForm">
<h2 style="text-align: center;">Buscar Produto </h2>
<div class="grid-container">
<input
id="search-product"
name="search-product"
type="text"
oninput="searchProduct()"
autofocus
placeholder="Buscar Produto"
>
<input
type="number"
id="qtd-product"
name="qtd-product"
value="1"
required min="1"
><br>
<input id="search-product" name="search-product" type="text" oninput="searchProduct()" autofocus
placeholder="Buscar Produto">
<input type="number" id="qtd-product" name="qtd-product" value="1" required min="1"><br>
</div>
<div id="product-list" class="grid-list-products">
{% for product in products %}
{% if forloop.counter0 == 0 %}
<article
name="productBox"
id="productId-{{ product.id }}"
onclick="addProductClick({{product.id}} , {{comanda.id}})"
style="background-color: #293552;"
>
<p hidden id="{{forloop.counter0}}" >{{product.id}}</p>
<p hidden id="comanda{{forloop.counter0}}" >{{comanda.id}}</p>
{{product.name}} <br> <p id="{{product.id}}"></p>
<article name="productBox" id="productId-{{ product.id }}"
onclick="addProductClick({{product.id}} , {{comanda.id}})" style="background-color: #293552;">
<p hidden id="{{forloop.counter0}}">{{product.id}}</p>
<p hidden id="comanda{{forloop.counter0}}">{{comanda.id}}</p>
{{product.name}} <br>
<p id="{{product.id}}"></p>
R$ {{product.price}}
</article >
</article>
{% else %}
<article
name="productBox"
id="productId-{{ product.id }}"
onclick="addProductClick({{product.id}} , {{comanda.id}})"
style="background-color: #293552;"
>
<article name="productBox" id="productId-{{ product.id }}"
onclick="addProductClick({{product.id}} , {{comanda.id}})" style="background-color: #293552;">
{{product.name}} <br>
R$ {{product.price}}
</article >
</article>
{% endif %}
@@ -134,26 +101,28 @@
</div>
<dialog id="payment-comanda" style="display: none;" >
<dialog id="payment-comanda" style="display: none;">
<article>
<h2>Receber</h2>
<h1 id="first-total" >R$ {{ total }}</h1>
<p>
</p>
<ul>
</ul>
<h2>Pagamento</h2>
<h1 id="first-total">R$ {{ total }}</h1>
<div>
<p>Recebido:</p> <input id="recebido" type="number">
<h4 id="troco">Troco: </h4>
</div>
<footer>
<button class="secondary" hx-get="{% url 'paymentBalcao' comanda.id %} " hx-trigger="click" hx-swap="none" onclick="reloadPage()">
Comfimar
<button class="secondary" hx-get="{% url 'paymentBalcao' comanda.id %} " hx-trigger="click" hx-swap="none"
onclick="reloadPage()">
Receber
</button>
<button onclick="close_modal_payment_comanda()" >Cancelar</button>
<button onclick="close_modal_payment_comanda()">Cancelar</button>
</footer>
</article>
</dialog>
</dialog>
<script src="{% static 'comandas/js/viewbalcao.js' %}"></script>
<script src="{% static 'comandas/js/viewbalcao.js' %}"></script>
</body>

View File

@@ -61,4 +61,4 @@ def paymentComanda(request, comanda_id):
pagamento.save()
comanda.status = 'CLOSED'
comanda.save()
return redirect('comandas')
return redirect('/comandas')

Binary file not shown.

View File

@@ -43,13 +43,13 @@
<ul>
<li class="nav-item"><a href="{% url 'home' %}" class="nav-link">Início</a></li>
<li class="nav-item"><a href="{% url 'comandas' %}" class="nav-link">Comandas</a></li>
<li class="nav-item"><a href="{% url 'viewBalcao' %}" class="nav-link">Balcão</a></li>
<!-- <li class="nav-item"><a href="{% url 'viewBalcao' %}" class="nav-link">Balcão</a></li> -->
<li class="nav-item"><a href="{% url 'mapMesas' %}" class="nav-link">Mapa</a></li>
<li class="nav-item"><a href="{% url 'products' %}" class="nav-link">Produtos</a></li>
</ul>
<div class="login-button">
<button><a href="#">Entrar</a></button>
<button onclick="entrar()"><a href="#">Entrar</a></button>
</div>
</div>
</header>

View File

@@ -2,14 +2,26 @@
function modal_payment_comanda() {
document.getElementById('payment-comanda').style.display = 'block';
recebido = document.getElementById('recebido')
recebido.focus()
}
function troco(){
recebido = document.getElementById('recebido').value
total = document.getElementById('first-total').innerHTML
resultado = document.getElementById('troco')
total = total.replace('R$ ','')
total = total.replace(',','.')
result = recebido - total
resultado.innerHTML = 'Troco: R$ '+result
}
function close_modal_payment_comanda() {
document.getElementById('payment-comanda').style.display = 'none';
document.getElementById('search-product').focus()
}
function imprimirFichas() {
const element = document.getElementById("list-products-balcao");
const style = `<style>
@@ -57,11 +69,19 @@ function backPage() {
document.onkeydown = teclado
function teclado(event){
if (document.getElementById('payment-comanda').style.display == 'none'){
if (event.keyCode == 13){
addProductBalcao()
}else{
console.log(event.keyCode)
}
}else{
if (event.keyCode == 13){
troco()
}else{
console.log('')
}
}
}
@@ -123,7 +143,6 @@ document.getElementById('productForm').addEventListener('submit', function(event
function searchProduct() {
setTimeout(() => {
time();