Files
compras/docs/recepcao-documental.md
T
2026-11-03 11:51:44 +02:00

2.5 KiB

Recepção documental — bloco R1

Entrega de 03/11/2026. O detalhe da recepção confirmada permite acrescentar uma guia, evidência de qualidade ou outro documento em PDF, JPEG ou PNG, até 2 MB. Apenas tipo e ficheiro são introduzidos: recepção, ordem, requisição, fornecedor, artigos e quantidades são reutilizados. O detalhe também liga ao processo de compra quando o utilizador pode consultá-lo.

A escrita respeita a competência nativa de recepção, a independência do emissor da ordem e a restrição de manutenção. A consulta segue o acesso nativo à recepção e a empresa activa. O armazenamento é privado; caminhos internos não são enviados à interface. A descarga confere o SHA-256 antes de transmitir o ficheiro, força transferência e impede cache. Não existem comandos de alteração ou eliminação dos metadados, também protegidos por triggers na base.

A chave de operação permite repetir uma submissão sem duplicar documentos ou auditoria. Uma nova submissão do mesmo conteúdo e tipo na mesma recepção reutiliza o documento e regista a reutilização. Conteúdo diferente é um novo documento: não substitui o anterior. Não existe deduplicação global entre recepções.

Uma falha normal de transacção elimina o ficheiro que ficou sem registo. Uma interrupção abrupta do processo pode deixar um ficheiro privado sem referência; não foi implementada limpeza automática desses ficheiros. Este bloco não estabelece retenção geral, antivírus, assinatura digital, substituições de artigos, reabertura de qualidade nem cancelamento financeiro.

Validação e instalação

Prova: docs/proofs/receipt-block.json. Bateria integrada de ReceiptDocumentBlockTest e ReceiptStockTest: 36 testes aprovados/271 verificações. PostgreSQL descartável: 5 testes/78 verificações, base eliminada no final. Cobertura de repetição, autorização, isolamento entre empresas/recepções, ficheiros inválidos, rollback, imutabilidade, integridade e ausência de alteração de stock/aprovações. TypeScript, compilação de produção e PHPStan passaram. Sem revisão visual completa ou ensaio de carga.

A migração 2026_11_03_000002_create_receipt_documents.php não foi aplicada ao piloto. Sem a tabela, a recepção continua consultável e o painel informa indisponibilidade. A instalação exige autorização específica e preparação de salvaguarda e armazenamento; não deve activar incidentalmente a migração MFA pendente. Não foram criadas contas, permissões, ordens, recepções ou decisões no piloto.