Files
SGF/docs/SGF_SUPPLIER_DOCUMENTS_DELIVERY.md
2026-11-04 09:37:20 +02:00

8.2 KiB
Raw Permalink Blame History

Anexos privados do fornecedor e ligação à revisão/propostas

03/11/2026. SGF-SUPPLIER-DOCUMENTS-QA-v1. Upload, conferência, consulta e descarga dos anexos pelo controlador nativo existente. Anexar conserva o documento e volta a colocar o fornecedor em revisão pendente; uma revisão distinta da versão actual permite a participação nas propostas. Não acrescenta outra autoridade documental ou financeira.

Experimentar em8076

Compras abre um fornecedor e encontra Anexos documentais privados. Escolhe tipo e ficheiro de teste, fundamenta, confere o impacto e confirma com o mesmo ficheiro. O impacto mostra nome sanitizado, MIME detectado, tamanho, SHA-256 e a nova versão pendente.

Finanças consulta os anexos, descarrega uma cópia conferida e revê a versão actual na decisão independente já existente. Só depois o fornecedor volta a aparecer como admissível no selector de propostas. A equipa pode iniciar uma requisição pelo solicitante e continuar no mesmo percurso integrado.

A demonstração é nova, com os fornecedores/orçamento QA preparados e sem anexos ou operações principais. As16peças documentais usadas no ensaio existem apenas na regressão separada.8075 e anteriores, os seus catálogos ampliados e os seis registos protegidos não foram alterados. O dossiê, a pesquisa de fornecedores e a recepção paginada continuam disponíveis nesta composição; ela não copia decisões ou volumes de teste das demos anteriores.

Implementação

  • Reutiliza SupplierDocumentController.store/download, SupplierPolicy, a participação/revisão e a tabela nativas. Sem novo escritor de anexos, migração de destino ou nomes de direitos. Upload exige purchasing_suppliers.prepare e preparação nativa; consulta/descarga exigem purchasing_suppliers.view e a política nativa de acesso a documentos, além da origem exacta de empresa/unidade.
  • PDF/PNG/JPEG, tipos documentais e limites1KB–2MB seguem a validação do controlador original. O ficheiro é validado pelo conteúdo/MIME e extensão admitidos, sem confiar no MIME declarado pelo navegador. Não se certifica autenticidade, conteúdo fiscal ou suficiência legal do documento.
  • Prévia executa o upload nativo num savepoint com armazenamento temporário novo e privado, reverte os registos/auditoria e elimina apenas o ficheiro dessa prévia. Sequências podem avançar; pastas temporárias vazias podem permanecer. Não é uma limpeza da cache ou de ficheiros anteriores.
  • O corte cifrado prende ficheiro/SHA/tamanho/MIME/nome, tipo, fundamento, actor, origem, contexto de sessão, versão da ficha e validade10minutos. Confirmação revalida tudo e usa o controlador original para invalidar a revisão anterior. Um ficheiro ou contexto diferente exige nova conferência.
  • Comando, fornecedor, documento e auditorias ficam na mesma transacção nativa. A proveniência SGF inclui fundamento e estado anterior/posterior. Mesma chave/conteúdo recupera o resultado, sem novo ficheiro ou alteração de uma revisão posterior; outra chave representa nova intenção de anexação, conforme o comportamento nativo, não deduplicação global por conteúdo.
  • O armazenamento permanente fica fora de public, confinado à composição QA verificada, com caminhos gerados pelo mecanismo nativo. A projecção paginada15 não devolve o caminho nem o tenant nativo. Não há substituição/apagamento de anexos pela interface.
  • A descarga revalida origem e política, confirma tamanho/SHA contra o registo e usa a descarga auditada original, como attachment, nosniff, sem cache partilhada e com CSP de sandbox. Não serve bytes alterados como se fossem a evidência original.
  • O histórico existente do fornecedor inclui upload, comandos e descarga. A candidatura do fornecedor nas propostas usa o estado/revisão originais; não se cria proposta, pagamento ou reconhecimento financeiro por anexar.

Falhas e recuperação

Ficheiro e base são recursos diferentes. Se a transacção falhar depois da escrita, o adaptador apaga apenas o ficheiro recém-criado depois de verificar que a respectiva linha não foi confirmada. Se essa verificação não for possível ou o resultado do commit for incerto, conserva o ficheiro para recuperação; não apaga evidência potencialmente confirmada. A repetição pode recuperar um comando efectivamente confirmado.

O ensaio forçou falha na auditoria: fornecedor/documento/auditorias voltaram ao estado anterior e o ficheiro não confirmado foi compensado. A repetição concorrente seguinte recuperou201/200, com um documento e um ficheiro. Crashes abruptos ou falhas que impeçam verificar o resultado podem deixar ficheiros privados sem linha correspondente; não se declara limpeza/reconciliação automática desses casos nem se executa manutenção sobre demos anteriores.

Provas

Consolidação:52verificações — anexos28, ligação/contexto9, guardas4, demonstração8 e build/assets3. Os primeiros17critérios passaram; corrigiu-se o adaptador de download que construía um campo de ficheiro nulo num pedido sem upload, retomando os11critérios restantes sem repetir os uploads confirmados.

Os testes incluem formato disfarçado/extensão executável, substituição do ficheiro, revogação do direito, erro de auditoria, concorrência, repetição depois de revisão, versão de revisão desactualizada, nome hostil sanitizado, bytes alterados no armazenamento, documento de outro fornecedor/tenant, unidade/módulo indevidos e geração de contexto/ligação alteradas. A descarga devolveu exactamente os bytes originais e registou a auditoria.

O volume de16anexos inclui duas confirmações pela API e14ficheiros de ensaio adicionados directamente pelo mesmo controlador nativo para testar páginas15/1. Não se apresentam como16provas independentes de interface. Ficheiros temporários de prévia ficaram a zero; documentos/ficheiros permanentes corresponderam ao volume previsto.

A prova de ligação preparou uma requisição sintética de1MZN pelos workflows existentes, apenas como pré-condição do selector: a reserva pertence a esse circuito, não ao anexo. Fornecedor pendente foi excluído e a tentativa de o forjar na proposta recusou; revisão distinta tornou-o disponível e permitiu a prévia original de proposta. Nenhuma proposta foi confirmada por arrasto e não foram criadas ordens, facturas, obrigações, pagamentos, lançamentos ou localizações.

As suites anteriores de fornecedores, propostas, recepção, obrigação e contabilidade foram preservadas e reutilizadas. A nova demo começa vazia; as verificações de consulta não mudaram versões, anexos ou auditoria.

A matriz actualizada conserva seis módulos,13estágios e116critérios documentados. A inspecção estática encontra79fontes e nenhum ciclo obrigatório, sem ligações a bases. Passaram14verificações de sintaxe PHP,7de JavaScript e git diff --check; não são provas adicionais de utilização real ou de implantação.

Limitações e preservação

O ensaio positivo de ficheiro usa PNG sintético; os formatos permitidos continuam os do controlador nativo, sem declarar uma nova regressão completa de todos os leitores de PDF/JPEG. Requisitos de documentos por fornecedor, autenticidade, validade fiscal e qualificação documental automática não são acrescentados por inferência. A integridade é conferida ao anexar/descarregar; a revisão mantém as decisões humanas e regras existentes.

Revisão visual continua separada, sem repetir o navegador bloqueado. Volume16 e limite2MB não validam carga sustentada, retenção, capacidade de armazenamento, instalação geral ou separação de proprietário/runtime. O schema sintético é preparado pelo projecto nativo actual e o runtime mantém o pacote fixado anteriormente.

Configuração desligada por omissão. Sem acessos/dados reais, migrações/concessões no destino, alterações dos seis registos, limpeza da cache bloqueada, activação de Compras, publicação, aceitação ou checkpoint.