Files
compras/docs/compatibilidade.md
T

6.9 KiB

Compatibilidade e estado do SGC

Estado actualizado em 28 de Outubro de 2026. Projecto activo: C:\laragon\www\compras, Laravel + React + PostgreSQL, http://127.0.0.1:8015. Preservar conta, dados, configuração, cookie e porta. SGF Tempo e Investmoz são independentes. A implementação Python separada fica apenas como referência; não importar contas, sessões ou bases experimentais.

Área Implementado no Laravel Pendente
Acesso e organização Fortify, conta, empresa, equipa, departamentos e centros de custo MFA obrigatório e ciclo completo de acessos
Requisições e aprovações Rascunhos, cálculos exactos, etapas, segregação e snapshots Validação empresarial das regras provisórias
Fornecedores Cadastro, edição, renovação, validação independente e anexos privados Dados bancários com dupla validação
Cotações Propostas, avaliações e matriz comparativa Multimoeda e revisão das propostas
RF-AF-01 Declarações pessoais, histórico e ConflictGuard no servidor Política de periodicidade, validade e levantamento
Adjudicação Escolha fundamentada, revalidação e aprovação do valor final Excepções, revisão e cancelamento sem política ficam bloqueados
Ordens Emissão única/idempotente, snapshots, consulta e impressão Orçamento não validado; documentos de desenvolvimento
Recepção Parcial/total, qualidade, divergências, pendentes, segregação do emitente e auditoria Substituições e anexos; rejeições não autorizam receber acima do total
Stock Artigos, armazéns, entradas, saídas fundamentadas, transferências atómicas, contagens e ajustes auditados por empresa Revisão visual; mínimos, reposição, equipamento/peças e conversões
Equipamentos e peças Tipos não suportados ficam bloqueados Aprovação técnica e regras específicas
Orçamento, facturas e pagamentos Ainda não implementados Definir regras antes do próximo incremento
Início e navegação Página inicial própria, menus por área/perfil e consulta pública por módulo Revisão visual
Auditoria Histórico das operações implementadas Exportações, retenção e protecção contra SQL administrativo

Preservar enums, políticas, modelos relacionais, Brick Math e isolamento por empresa. As regras guardadas nos snapshots não são substituídas pela configuração actual. Ausência de conflito não anula conflito registado. Exemplos públicos fictícios não dão acesso aos dados de negócio.

Verificação actual

Na implementação, 233 testes passaram, 3 ignorados, 2.163 asserções em SQLite em memória; PHPStan, Pint, frontend, TypeScript e compilação aprovados. Migrações até 000007 efectivamente aplicadas na base actual; 000007 no lote 8, sem migrações pendentes. Antes da aplicação foi criado backup custom PostgreSQL e restaurado com sucesso numa base temporária exclusiva, depois eliminada. Contagens e hashes das 31 tabelas anteriores coincidiram antes/depois; restrições existentes preservadas. Mantêm-se 1 utilizador, 1 empresa, 1 departamento e 1 centro de custo. Sem seeds, recriação de contas ou movimentos fictícios; stock_movements e stock_operations vazias. .env inalterado. Evidência da migração e recuperação.

Backup privado: storage/app/private/backups/stock-000007-20261028-111943-4deef2/, com database.dump, manifesto, cópia do ambiente e instruções de recuperação para uma base nova. Nenhuma restauração foi feita sobre a base actual. A migração acrescenta a tabela e ligação de operações, relaxa a obrigatoriedade da recepção e preserva os valores existentes; o PostgreSQL já utilizava bigint assinado. down() permanece bloqueado para proteger o histórico.

Quatro cenários simultâneos de recepção passaram numa base PostgreSQL separada, eliminada no final: excesso, repetição, quantidades complementares e guia duplicada. Evidência. Não constitui teste de carga ou de concorrência dos outros módulos.

Seis cenários simultâneos de stock aprovados em PostgreSQL separado, eliminado no final: excesso de saídas, repetição de saída/transferência/ajuste, transferências opostas e ajuste desactualizado. Evidência. Apenas Armazém executa; Administração, Procurement e Finanças consultam. Contagens não movimentam stock; ajustes fundamentados exigem contagem compatível e sem movimentos posteriores. Periodicidade, tolerâncias e investigação/resolução das divergências exigem decisão da empresa; não foi inventado um circuito de aprovação.

Após a aplicação, /consulta/operacoes-stock respondeu HTTP 200 e /stock/operacoes redireccionou para login (302) no cliente sem sessão. Revisão visual pública e autenticada pendentes: a nova tentativa devolveu The browser access host is unavailable, impedindo também verificar a sessão existente. A revisão de impressão continua pendente. Os resultados de testes acima são os da implementação, não uma nova execução nesta aplicação. Resultados históricos, âmbito e limitações em desenvolvimento.md. O orçamento continua sem validação. Equipamentos não foram iniciados.