chore: Delete numerous application modules, templates, static assets, documentation, and build files.

This commit is contained in:
2026-02-25 17:09:27 -03:00
parent 7ddaa2d1f9
commit 2fc4fafed7
562 changed files with 17 additions and 6810 deletions

0
balcao/__init__.py Normal file
View File

3
balcao/admin.py Normal file
View File

@@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
balcao/apps.py Normal file
View File

@@ -0,0 +1,6 @@
from django.apps import AppConfig
class ComandasConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'balcao'

125
balcao/htmx_views.py Normal file
View File

@@ -0,0 +1,125 @@
from django.shortcuts import render, redirect
from django.views.decorators.csrf import csrf_exempt
from django.db.models import Count, F
from django.contrib.auth.models import User
from comandas.models import Comanda, ProductComanda, StockMovementType, StockMovement
from mesas.models import Mesa
from products.models import Product
from payments.models import Payments
from typePay.models import TypePay
from gestaoRaul.decorators import group_required
def listProductBalcao(request, comanda_id, search_product):
comanda_id = request.GET.get("id-comanda-balcao")
if search_product == '*':
products_ordenados = ProductComanda.maisVendidos()
return render(request, "htmx_components/htmx_list_products_balcao.html", {"products": products_ordenados,'comanda_id':comanda_id})
else:
product = search_product
products = Product.objects.filter(name__icontains=product, active=True)
return render(request, "htmx_components/htmx_list_products_balcao.html", {"products": products[:15],'comanda_id':comanda_id})
@group_required(groupName='Garçom')
def addProductBalcao(request, product_id, comanda_id, qtd):
for i in range(qtd):
product_comanda = ProductComanda(comanda_id=comanda_id, product_id=product_id)
product_comanda.save()
product = Product.objects.get(id=product_id)
comanda = Comanda.objects.get(id=comanda_id)
user = User.objects.get(id=request.user.id)
typeMovement = StockMovementType.objects.get(name="Venda - Balcao")
StockMovement.subTransactionStock(
product=product,
movement_type=typeMovement,
comanda=comanda,
user=user,
qtd=1,
obs= "Vendido no balcão"
)
consumo = ProductComanda.objects.filter(comanda=comanda_id)
total = 0
for produto in consumo:
total += produto.product.price
return render(request, "htmx_components/htmx_list_products_in_balcao.html",{'consumo': consumo, 'total': total})
@group_required(groupName='Garçom')
@csrf_exempt
def addProductBalcaoTeclado(request, product_id, comanda_id, qtd):
for i in range(qtd):
product_comanda = ProductComanda(comanda_id=comanda_id, product_id=product_id)
product_comanda.save()
product = Product.objects.get(id=product_id)
comanda = Comanda.objects.get(id=comanda_id)
user = User.objects.get(id=request.user.id)
typeMovement = StockMovementType.objects.get(name="Venda - Balcao")
StockMovement.subTransactionStock(
product=product,
movement_type=typeMovement,
comanda=comanda,
user=user,
qtd=1,
obs= "Vendido no balcão"
)
consumo = ProductComanda.objects.filter(comanda=comanda_id)
total = 0
for produto in consumo:
total += produto.product.price
return render(request, "htmx_components/htmx_list_products_in_balcao.html",{'consumo': consumo, 'total': total})
@group_required(groupName='Garçom')
def removeProductBalcao(request, productComanda_id):
product_comanda = ProductComanda.objects.get(id=productComanda_id)
comanda = product_comanda.comanda
product = product_comanda.product
user = User.objects.get(id=request.user.id)
typeMovement = StockMovementType.objects.get(name="Estorno")
consumo = ProductComanda.objects.filter(comanda=product_comanda.comanda)
StockMovement.sumTransactionStock(
product=product,
movement_type=typeMovement,
comanda=comanda,
user=user,
qtd=1,
obs= "Excluido do balcão"
)
product_comanda.delete()
total = 0
for produto in consumo:
total += produto.product.price
return render(request, "htmx_components/htmx_list_products_in_balcao.html",{'consumo': consumo, 'total': total})
@group_required(groupName='Garçom')
def paymentBalcao(request, comanda_id):
typePayment = TypePay.objects.get(id=1)
consumo = ProductComanda.objects.filter(comanda=comanda_id)
user = User.objects.get(id=request.user.id)
try:
vendasBalcao = Comanda.objects.get(name='VENDAS BALCAO')
except:
mesa = Mesa.objects.get(id=1)
vendasBalcao = Comanda(name='VENDAS BALCAO', mesa=mesa, user=request.user, status='CLOSED')
vendasBalcao.save()
comanda = Comanda.objects.get(name=f'{user.id} - BALCÃO - {user.first_name}')
total = 0
for produto in consumo:
total += produto.product.price
produto.comanda = vendasBalcao
produto.save()
pagamento = Payments(value=total, comanda=comanda, type_pay=typePayment,description=f'{user.id} - BALCÃO - {user.first_name}')
pagamento.save()
return redirect('viewBalcao')

27
balcao/models.py Normal file
View File

@@ -0,0 +1,27 @@
# from django.db import models
# from clients.models import Client
# from products.models import Product
# from mesas.models import Mesa
# from typePay.models import TypePay
# class Comanda(models.Model):
# id = models.AutoField(primary_key=True)
# mesa = models.ForeignKey(Mesa, on_delete=models.CASCADE)
# type_pay = models.ForeignKey(TypePay, on_delete=models.SET_NULL, null=True)
# dt_open = models.DateTimeField(auto_now_add=True)
# dt_close = models.DateTimeField(null=True, blank=True)
# client = models.ForeignKey(Client, on_delete=models.SET_NULL, null=True, blank=True)
# name = models.CharField(max_length=255)
# status = models.CharField(max_length=255, default="OPEN")
# def __str__(self) -> str:
# return self.name
# class ProductComanda(models.Model):
# id = models.AutoField(primary_key=True)
# comanda = models.ForeignKey(Comanda, on_delete=models.CASCADE)
# data_time = models.DateTimeField(auto_now_add=True)
# product = models.ForeignKey(Product, on_delete=models.PROTECT)
# applicant = models.CharField(max_length=255, null=True, blank=True)
# def __str__(self) -> str:
# return self.comanda.name + " - " + self.product.name

View File

@@ -0,0 +1,142 @@
{% extends "base.html" %}
{% load static %}
{% block 'title' %}
{{comanda.name}}
{% endblock %}
{% block 'head' %}
<link rel="stylesheet" href="{% static 'comandas/css/viewbalcao.css' %}">
{% endblock %}
{% block 'body' %}
<body>
<div class="grid-container">
<div style="text-align: center;">
<h1>Venda Balcão</h1>
<input hidden type="text" name="id-comanda-balcao" id="id-comanda-balcao" value="{{comanda.id}}">
<div>
<button id="pagarComanda" class="btn-secondary" onclick="modal_payment_comanda()"
{% if total == 0 %}
disabled
{% endif %}>Receber</button>
<button class="btn-primary" id="imprimirFichas" onclick="imprimirFichas()"
{% if total == 0 %}
disabled
{% endif %}
>Imprimir Fichas</button>
</div>
<table id="list-products-balcao">
<tr>
<th style="text-align: left;"><b>Produto</b></th>
<th style="text-align: left;"><b>Preço</b></th>
</tr>
{% for item in consumo%}
<tr>
<td>{{item.product.name}}</td>
<td>R$ {{item.product.price}} </td>
<td><button class="btn-cancel" 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>
<td hidden id="total">{{total}}</td>
</tr>
</tfoot>
</table>
</div>
<div id="add-produto">
<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>
</div>
<div id="product-list" class="grid-list-products">
{% for product in products %}
{% if forloop.counter0 == 0 %}
<article
style="background-image: url('{{product.image}}');"
name="productBox"
id="productId-{{ product.id }}"
class="card-product"
onclick="addProductClick({{product.id}} )"
>
<p hidden id="{{forloop.counter0}}" >{{product.id}}</p>
<p hidden id="comanda{{forloop.counter0}}" >{{comanda.id}}</p>
<p class="card-product-p"> {{product.name}}</p>
<p id="{{product.id}}"></p>
<p class="card-product-p"> R$ {{product.price}}</p>
</article >
{% else %}
<article
style="background-image: url('{{product.image}}');"
name="productBox"
id="productId-{{ product.id }}"
class="card-product"
onclick="addProductClick({{product.id}})"
>
<p class="card-product-p"> {{product.name}}</p>
<p class="card-product-p"> R$ {{product.price}}</p>
</article >
{% endif %}
{% endfor %}
</div>
</form>
</div>
</div>
<dialog id="payment-comanda" style="display: none;">
<article>
<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="btn-secondary" hx-get="{% url 'paymentBalcao' comanda.id %} " hx-trigger="click" hx-swap="none"
onclick="reloadPage()">
Receber
</button>
<button class="btn-cancel" onclick="close_modal_payment_comanda()">Cancelar</button>
</footer>
</article>
</dialog>
<script src="{% static 'comandas/js/viewbalcao.js' %}"></script>
</body>
{% endblock %}

3
balcao/tests.py Normal file
View File

@@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

21
balcao/urls.py Normal file
View File

@@ -0,0 +1,21 @@
from django.urls import path
from balcao import htmx_views
from . import views
urlpatterns = [
path('', views.viewBalcao, name='viewBalcao'),
]
htmx_urlpatterns = [
path('listProductBalcao/<int:comanda_id>/<str:search_product>/', htmx_views.listProductBalcao, name='listProductBalcao'),
path('addProductBalcao<int:product_id>/<int:comanda_id>/<int:qtd>/', htmx_views.addProductBalcao, name='addProductBalcao'),
path('addProductBalcaoTeclado<int:product_id>/<int:comanda_id>/<int:qtd>/', htmx_views.addProductBalcaoTeclado, name='addProductBalcaoTeclado'),
path('removeProductBalcao<int:productComanda_id>/', htmx_views.removeProductBalcao, name='removeProductBalcao'),
path('paymentBalcao<int:comanda_id>/', htmx_views.paymentBalcao, name='paymentBalcao'),
]
urlpatterns += htmx_urlpatterns

30
balcao/views.py Normal file
View File

@@ -0,0 +1,30 @@
from django.shortcuts import render
from comandas.models import Comanda, ProductComanda
from products.models import Product
from mesas.models import Mesa
from django.db.models import Count, F
from django.contrib.auth.models import User
from gestaoRaul.decorators import group_required
@group_required(groupName='Garçom')
def viewBalcao(request):
user = User.objects.get(id=request.user.id)
try:
comanda = Comanda.objects.get(name=f'{user.id} - BALCÃO - {user.first_name}')
except:
mesa = Mesa.objects.get(id=1)
comanda = Comanda(name=f'{user.id} - BALCÃO - {user.first_name}', mesa=mesa, user=user,status='CLOSED')
comanda.save()
consumo = ProductComanda.objects.filter(comanda=comanda.id)
products_ordenados = ProductComanda.maisVendidos()
total = 0
for produto in consumo:
total += produto.product.price
return render(request, 'viewBalcao.html', {'comanda': comanda, 'consumo': consumo, 'total': total, 'products': products_ordenados})