feat: modal aberta apos adicionar item + filtrar produtos inativos
- Modal de adicionar item nao fecha mais apos cadastro, permite adicionar varios itens seguidos - Campos resetam (qtd, obs, selecao) e grid de sugestoes recarrega - Produtos inativos excluidos da aggregation getTopProducts (groupBy filtra ativo=true)
This commit is contained in:
@@ -2,9 +2,9 @@ import { prisma } from '../lib/prisma';
|
||||
import { ProductInput } from '../schemas/product.schema';
|
||||
|
||||
export async function getTopProducts(limit = 10) {
|
||||
// Agrega a soma de quantidades vendidas para cada produto
|
||||
const topItems = await prisma.itemPedido.groupBy({
|
||||
by: ['produtoId'],
|
||||
where: { produto: { ativo: true } },
|
||||
_sum: { quantidade: true },
|
||||
orderBy: { _sum: { quantidade: 'desc' } },
|
||||
take: limit,
|
||||
|
||||
@@ -392,7 +392,19 @@ function bindOrderEvents() {
|
||||
try {
|
||||
await api.post(`/comandas/${comandaId}/itens`, { produtoId, quantidade, observacao: observacao || undefined });
|
||||
toast('Pedido enviado para preparo!', 'success');
|
||||
(document.getElementById('modal-add-item') as HTMLElement).style.display = 'none';
|
||||
|
||||
(document.getElementById('qtd') as HTMLInputElement).value = '1';
|
||||
(document.getElementById('obs') as HTMLInputElement).value = '';
|
||||
(document.getElementById('selected-produto-id') as HTMLInputElement).value = '';
|
||||
const preview = document.getElementById('selected-produto-preview')!;
|
||||
preview.textContent = 'Nenhum produto selecionado';
|
||||
preview.style.color = 'var(--text-primary)';
|
||||
|
||||
try {
|
||||
const topProducts = await api.get('/produtos/mais-vendidos');
|
||||
renderProductCards(topProducts);
|
||||
} catch {}
|
||||
|
||||
await loadComandas({ status: 'ABERTA,FECHADA' });
|
||||
} catch (err: any) {
|
||||
toast(err.message, 'error');
|
||||
|
||||
Reference in New Issue
Block a user