Merge pull request #61 from killer-cf/feat-pedidos

feat: add optional 'aceitoPor' field to pedidos query for enhanced it…
This commit is contained in:
Kilder Costa
2025-12-11 11:51:07 -03:00
committed by GitHub

View File

@@ -445,6 +445,7 @@ export const listByItemCreator = query({
_creationTime: v.number(),
numeroSei: v.optional(v.string()),
status: v.string(),
aceitoPor: v.optional(v.id('funcionarios')),
criadoPor: v.id('usuarios'),
criadoPorNome: v.string(),
criadoEm: v.number(),
@@ -521,6 +522,16 @@ export const acceptOrder = mutation({
const pedido = await ctx.db.get(args.pedidoId);
if (!pedido) throw new Error('Pedido não encontrado.');
// Só é permitido adicionar itens em pedidos em rascunho, aguardando aceite ou em análise.
// Nos demais status (ex.: precisa_ajustes, concluído, cancelado etc.) a inclusão é bloqueada.
if (
pedido.status !== 'em_rascunho' &&
pedido.status !== 'aguardando_aceite' &&
pedido.status !== 'em_analise'
) {
throw new Error('Não é possível adicionar itens neste status de pedido.');
}
if (pedido.status !== 'aguardando_aceite') {
throw new Error('Este pedido não está aguardando aceite.');
}
@@ -657,8 +668,10 @@ export const addItem = mutation({
// modalidade e a mesma ata (quando houver).
await ensurePedidoModalidadeAtaConsistency(ctx, args.pedidoId, args.modalidade, args.ataId);
// --- CHECK ANALYSIS / ACCEPTANCE MODE ---
if (pedido.status === 'em_analise' || pedido.status === 'aguardando_aceite') {
// --- CHECK ANALYSIS MODE ---
// Em pedidos em análise, a inclusão de itens deve passar por fluxo de aprovação.
// Em rascunho ou aguardando aceite, a inclusão é direta, sem necessidade de aprovação.
if (pedido.status === 'em_analise') {
await ctx.db.insert('solicitacoesItens', {
pedidoId: args.pedidoId,
tipo: 'adicao',