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:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user