mirror of
https://github.com/welton89/RRBEC.git
synced 2026-04-05 05:25:40 +00:00
grafico cozinha dinamico
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -26,6 +26,7 @@ RRB&C - DashBoard
|
||||
{% block 'body' %}
|
||||
|
||||
<body>
|
||||
|
||||
<h1>DashBoard</h1>
|
||||
<div class="grid-container">
|
||||
|
||||
@@ -45,11 +46,15 @@ RRB&C - DashBoard
|
||||
<h4> Gráficos de vendas </h4>
|
||||
<div></div>
|
||||
<canvas id="vendas" style="width:100%;height: 85%;max-width:100%; background-color: rgb(191, 225, 255);border-radius: 5px;">
|
||||
|
||||
|
||||
</canvas>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<h4> Gráficos cozinha </h4>
|
||||
<div></div>
|
||||
<canvas id="cuisine" style="width:100%;height: 85%;max-width:100%; background-color: rgb(191, 225, 255);border-radius: 5px;">
|
||||
</canvas>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
|
||||
@@ -3,5 +3,6 @@ from . import views
|
||||
|
||||
urlpatterns = [
|
||||
path('', views.home, name='home'),
|
||||
path('chartCuisine', views.chartCuisine, name='chartCuisine'),
|
||||
|
||||
]
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
from django.shortcuts import render
|
||||
from django.db.models import Sum
|
||||
from django.db.models import Count, F
|
||||
from django.http import JsonResponse
|
||||
|
||||
|
||||
from comandas.models import ProductComanda
|
||||
from products.models import Product
|
||||
from orders.models import Order
|
||||
from payments.models import Payments
|
||||
|
||||
def home(request):
|
||||
@@ -15,5 +17,34 @@ def home(request):
|
||||
produtos_mais_vendidos = ProductComanda.objects.values('product').annotate(
|
||||
quantidade=Count('product'),
|
||||
nome=F('product__name') ).order_by('-quantidade')[:5]
|
||||
|
||||
return render(request, 'home.html', {'total_pagamentos': total_pagamentos, 'pagamentos': pagamentos, 'qdt_pagamentos': qdt_pagamentos, 'produtos_mais_vendidos': produtos_mais_vendidos, 'ticekMedio': ticekMedio})
|
||||
|
||||
|
||||
def chartCuisine(request):
|
||||
print('entrooooooouuuuu')
|
||||
tFila = []
|
||||
tPreparando = []
|
||||
tFinalizado = []
|
||||
|
||||
orders = Order.objects.filter(delivered__isnull=False)
|
||||
|
||||
for order in orders:
|
||||
tFila.append((order.preparing - order.queue).total_seconds())
|
||||
tPreparando.append((order.finished - order.preparing).total_seconds())
|
||||
tFinalizado.append((order.delivered - order.finished).total_seconds())
|
||||
|
||||
mediaFila = int((sum(tFila) / len(tFila))/60)
|
||||
mediaPreparando = int((sum(tPreparando) / len(tPreparando))/60)
|
||||
mediaFinalizado = int((sum(tFinalizado) / len(tFinalizado))/60)
|
||||
|
||||
# orders = Order.objects.filter(
|
||||
# created_at__gte='a',
|
||||
# created_at__lte='b',
|
||||
# delivered__isnull=False
|
||||
# )
|
||||
|
||||
return JsonResponse({
|
||||
'mediaFila': mediaFila,
|
||||
'mediaPreparando': mediaPreparando,
|
||||
'mediaFinalizado': mediaFinalizado,
|
||||
})
|
||||
@@ -1,7 +1,6 @@
|
||||
|
||||
|
||||
console.log(document.getElementById('n-0'))
|
||||
|
||||
function productsPlus(){
|
||||
|
||||
var xValues = [document.getElementById('n-0').innerText,
|
||||
document.getElementById('n-1').innerText,
|
||||
@@ -34,4 +33,49 @@ new Chart("vendas", {
|
||||
},
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function mediaCuisine(){
|
||||
|
||||
var yValues = [];
|
||||
var xValues = ['Fila', 'Preparando', 'Entregar'];
|
||||
var barColors = ["red", "green","blue","orange","brown"];
|
||||
|
||||
var resposta = fetch('/chartCuisine', {method: 'GET',
|
||||
headers: {'Content-Type': 'application/json',
|
||||
},})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
yValues.push(data['mediaFila'])
|
||||
yValues.push(data['mediaPreparando'])
|
||||
yValues.push(data['mediaFinalizado'])
|
||||
|
||||
new Chart("cuisine", {
|
||||
type: "doughnut",
|
||||
data: {
|
||||
labels: xValues,
|
||||
datasets: [{
|
||||
backgroundColor: barColors,
|
||||
data: yValues
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
legend: {display: true},
|
||||
title: {
|
||||
display: true,
|
||||
text: "Tempo médio (em minutos) do pedido em cada etapa."
|
||||
},
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
alert('Erro ao trazer dados da cozinha:', error)
|
||||
console.error('Erro ao trazer dados da cozinha:', error);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
productsPlus()
|
||||
mediaCuisine()
|
||||
Reference in New Issue
Block a user