filtro em produtos, bug tela de preparo, nome do user nas comandas e itens
This commit is contained in:
@@ -42,16 +42,18 @@ export async function listPaymentsController(request: FastifyRequest, reply: Fas
|
||||
|
||||
export async function createOrderController(request: FastifyRequest, reply: FastifyReply) {
|
||||
const data = createOrderSchema.parse(request.body);
|
||||
const order = await orderService.createOrder(data);
|
||||
const user = request.user as { id: string };
|
||||
const order = await orderService.createOrder(data, user.id);
|
||||
return reply.status(201).send(order);
|
||||
}
|
||||
|
||||
export async function addItemToOrderController(request: FastifyRequest, reply: FastifyReply) {
|
||||
const { id } = z.object({ id: z.string().uuid() }).parse(request.params);
|
||||
const data = addItemOrderSchema.parse(request.body);
|
||||
const user = request.user as { id: string };
|
||||
|
||||
try {
|
||||
const item = await orderService.addItemToOrder(id, data);
|
||||
const item = await orderService.addItemToOrder(id, data, user.id);
|
||||
return reply.status(201).send(item);
|
||||
} catch (error: any) {
|
||||
return reply.status(400).send({ error: error.message });
|
||||
|
||||
@@ -64,26 +64,35 @@ export async function listOrders(filter?: ListOrdersFilter) {
|
||||
where,
|
||||
orderBy: { criadoEm: 'desc' },
|
||||
include: {
|
||||
usuario: {
|
||||
select: { id: true, nome: true, email: true },
|
||||
},
|
||||
itens: {
|
||||
include: { produto: true }
|
||||
include: {
|
||||
produto: true,
|
||||
usuario: {
|
||||
select: { id: true, nome: true },
|
||||
},
|
||||
}
|
||||
},
|
||||
pagamentos: true,
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export async function createOrder(data: CreateOrderInput) {
|
||||
export async function createOrder(data: CreateOrderInput, usuarioId?: string) {
|
||||
return prisma.comanda.create({
|
||||
data: {
|
||||
identificador: data.identificador,
|
||||
nomeCliente: data.nomeCliente,
|
||||
status: 'ABERTA',
|
||||
total: 0,
|
||||
usuarioId: usuarioId ?? null,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function addItemToOrder(comandaId: string, data: AddItemOrderInput) {
|
||||
export async function addItemToOrder(comandaId: string, data: AddItemOrderInput, usuarioId?: string) {
|
||||
const produto = await prisma.produto.findUnique({
|
||||
where: { id: data.produtoId },
|
||||
});
|
||||
@@ -110,6 +119,7 @@ export async function addItemToOrder(comandaId: string, data: AddItemOrderInput)
|
||||
precoUnitario: produto.preco,
|
||||
produtoId: data.produtoId,
|
||||
comandaId: comandaId,
|
||||
usuarioId: usuarioId ?? null,
|
||||
status: 'PENDENTE',
|
||||
},
|
||||
}),
|
||||
@@ -140,6 +150,9 @@ export async function listKitchenBarItems(itemCozinha?: boolean, status?: string
|
||||
include: {
|
||||
produto: true,
|
||||
comanda: true,
|
||||
usuario: {
|
||||
select: { id: true, nome: true },
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -320,8 +333,16 @@ export async function updateOrder(comandaId: string, data: UpdateOrderInput) {
|
||||
where: { id: comandaId },
|
||||
data: updateData,
|
||||
include: {
|
||||
usuario: {
|
||||
select: { id: true, nome: true, email: true },
|
||||
},
|
||||
itens: {
|
||||
include: { produto: true }
|
||||
include: {
|
||||
produto: true,
|
||||
usuario: {
|
||||
select: { id: true, nome: true },
|
||||
},
|
||||
}
|
||||
},
|
||||
pagamentos: true,
|
||||
}
|
||||
@@ -360,6 +381,18 @@ export async function deleteItemFromOrder(itemId: string) {
|
||||
|
||||
return prisma.comanda.findUnique({
|
||||
where: { id: item.comandaId },
|
||||
include: { itens: { include: { produto: true } } },
|
||||
include: {
|
||||
itens: {
|
||||
include: {
|
||||
produto: true,
|
||||
usuario: {
|
||||
select: { id: true, nome: true },
|
||||
},
|
||||
}
|
||||
},
|
||||
usuario: {
|
||||
select: { id: true, nome: true, email: true },
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user