mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-05 21:45:41 +00:00
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
from django.db.models import Count, F
|
|
|
|
|
|
|
|
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)
|
|
user = models.ForeignKey(User, on_delete=models.CASCADE, null=False, blank=True)
|
|
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
|
|
|
|
|
|
def maisVendidos():
|
|
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'] and p.active == True:
|
|
products_ordenados.append(p)
|
|
return products_ordenados[:15] |