Entrada de Material
Homologação dos fluxos alcançáveis a partir de /entrada-material, /entrada-material/novo e /conferencia-entrada/:id. Inclui integrações reais e protótipos/mock onde ainda não há API.
/entrada-material (lista de entradas)
- Cabeçalho e CTA — Título, descrição e botão “Nova Movimentação de Entrada” →
/entrada-material/novo. - Permissão —
StockView(rota emApp.tsx). - Resumo — Cartões Pendentes, Em Conf., Em aberto (nº de cartões da lista atual), Conferidos — alimentados por
useEntryMovementsSummarye lista; validar coerência com API. - Filtro de busca — Campo envia
searchTermà query de movimentações (tipo Entrada). - Filtro de status — “Todos” usa
entriesOpenOnly(Pendente + Em progresso na API); status específico (Pendente, Em Conferência, Conferido, Cancelado) desativaentriesOpenOnlye filtra porstatusId. - Listagem — Cartões com
#id, badge de status, endereço, datas criado/atualizado, observações; botão Conferir ou Ver Detalhes seCompleted. - Navegação para conferência —
Conferir/Ver Detalhes→/conferencia-entrada/{movement.id}. - Estados — Loading (skeletons), erro (“Não foi possível carregar…”), vazio (“Nenhuma movimentação de entrada em aberto”).
- Ordenação —
createdAtdescendente na API.
/entrada-material/novo (novo pedido de compra)
- Voltar — Retorno à lista
/entrada-material. - Dados do pedido — Fornecedor (select), data prevista, valor total, observações.
- Itens — Modal adicionar produto + quantidade; lista com remover; validação “pelo menos um item”.
- Nota fiscal — Upload imagem, preview, remover; validação tipo imagem.
- Salvar — Validações (fornecedor, data, valor, itens); toast sucesso;
navigate("/entrada-material").
Hoje: dados mock (produtos/fornecedores); comentário no código indica lógica de persistência futura. (pendência —POSTmovimentação/pedido real) - Após integração API — Criar movimentação tipo Entrada pendente; aparecer na lista; permitir conferência com dados reais.
/conferencia-entrada/:id (conferência)
- Voltar — Para
/entrada-material. - Cabeçalho — Código pedido, fornecedor (hoje mock fixo), barra de progresso global (itens completos / total).
- Tabs — “Item Atual” e “Todos (N)”.
- Item atual — Esperado vs conferido; status Pendente/Parcial/Conferido; adicionar lote (código + qtd, Enter); lista de lotes com remover; navegação Anterior/Próximo.
- Tab Todos — Visão/resumo por item e atalhos se existirem.
- Finalizar — Diálogo com observações; só permitir se regra de negócio satisfeita (ex.: todos completos —
todosConferidosno código).
Hoje:handleFinalizarsó toast + navigate; semPATCHde status nem gravação de lotes na API. (pendência crítica) - Parâmetro
:id— Carregar pedido/movimentação real pelo id; hoje UI usa mock estático independente do id. (pendência)
Fluxos transversais
- Papel do utilizador — Operador de doca vs aprovador; auditoria de quem conferiu.
- Reimpressão / histórico — Acesso a entradas conferidas pela lista com filtro Conferido.
Atualize este documento quando NovoPedidoCompra e ConferenciaEntrada deixarem de usar mock e persistirem na API de stock movements.