Implementa regras de investimento por empresa com dupla aprovacao

This commit is contained in:
2026-10-28 16:57:45 +02:00
parent 153ba2c1af
commit 95dd2cc1ed
37 changed files with 1418 additions and 28 deletions
+12 -1
View File
@@ -13,7 +13,7 @@ Estado actualizado em 28 de Outubro de 2026. Projecto activo: C:\laragon\www\com
| 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, reposição e conversões |
| Equipamentos e peças | Cadastro, compatibilidade, mínimos, alertas, validação técnica e rastreabilidade | Regra de investimento; adjudicação/emissão de equipamento bloqueadas |
| Equipamentos e peças | Cadastro, compatibilidade, mínimos, validação técnica e investimento condicionado | Configuração empresarial, agregação por projecto e fraccionamento |
| Orçamento | Dotação, reforços aprovados, reservas e compromissos por empresa/centro/exercício | Revisão visual, reduções/transferências e validação operacional integral |
| Facturas e pagamentos | Facturas, consumo e registo/conferência de pagamentos externos | Estornos, notas de crédito e anexos |
| Início e navegação | Página inicial própria, menus por área/perfil e consulta pública por módulo | Revisão visual |
@@ -23,6 +23,17 @@ Preservar enums, políticas, modelos relacionais, Brick Math e isolamento por em
## Verificação actual
Regras de investimento entregues por empresa, com parâmetros explícitos e duas
aprovações administrativas independentes. Dotação classificada, reserva e Finanças
obrigatórias para equipamento; regra congelada e revalidada antes de emitir.
Migração 000014 no lote 15 após backup/restauro verificados de 46 tabelas.
Três cenários concorrentes PostgreSQL aprovados. Suite actual: **393 aprovados,
3 ignorados, 2.886 asserções**. Nenhuma regra criada na base real. Aprovação
adicional, agregação por projecto, detecção de fraccionamento, revisão/cancelamento
de processos e revisão visual continuam pendentes.
### Histórico da entrega de reforços
Reforços entregues por empresa/centro/exercício, com aprovação independente e
histórico, sem reescrever a dotação inicial. Migração 000013 no lote 14 após
backup e restauro verificados de 45 tabelas. Três cenários concorrentes PostgreSQL
+87
View File
@@ -1,5 +1,92 @@
# Desenvolvimento do SGC
## Regras de investimento por empresa
Implementadas em `/regras-investimento`, sem montantes predefinidos ou regras
criadas na base real. Administração propõe tecto, base com/sem IVA, vigência,
âmbito e fundamento. **Dois administradores distintos do proponente** aprovam
a versão. Finanças e Procurement consultam; outros perfis não configuram.
Proponente e validadores mantêm elegibilidade até à publicação. Decisões e
parâmetros são preservados; correcção exige nova versão.
Nesta etapa, a empresa escolhe explicitamente um **tecto absoluto em MZN sobre
o total do processo que contenha equipamento**. O limite é inclusivo e a base
de IVA é independente dos escalões gerais. Não se presume aprovação adicional,
agregação por projecto, câmbio ou limite ilimitado. Zero explícito é um tecto
zero, não ausência de limite. Não existe detecção automática de fraccionamento;
este incremento não certifica o controlo global desse requisito.
### Vigência e integração
Uma proposta pendente/rejeitada não substitui a regra aprovada. Nova versão
aprovada passa a ser aplicável a partir da sua data inicial. Depois de uma
versão mais recente entrar em vigor, a sua expiração bloqueia o fluxo; não
ressuscita uma regra anterior mais permissiva. As aprovações administrativas
publicadas são históricas; mudanças posteriores de perfil não reescrevem a regra.
Adjudicação, aprovação do valor final e emissão verificam regra aplicável,
tecto, validação técnica e reserva em dotação de investimento aprovada do
centro/exercício. Finanças é obrigatória para equipamento tanto na estimativa
como no novo ciclo do valor final, para qualquer valor. A versão, os parâmetros,
os dois validadores, a base técnica e a dotação ficam congelados na adjudicação.
Mudança de regra/base antes da emissão bloqueia o reaproveitamento das aprovações.
Ordens já emitidas mantêm a regra congelada e emissão repetida devolve a mesma ordem.
Orçamentos distinguem despesa corrente de investimento. Registos anteriores
receberam `operating`; não foram convertidos em investimento. A interface exige
classificação explícita para novas dotações; chamadas anteriores sem esse campo
continuam limitadas a despesa corrente. Mantém-se uma dotação por centro/ano:
para separar classes no mesmo ano, a empresa usa centros distintos. A dotação
aprovada e a sua classificação não são reescritas por reforços. Não se atribui
reserva de investimento retroactivamente a processos anteriores sem reserva.
Recepções de equipamento emitido passam a admitir entrada física aceite, com
armazém/artigo/unidade explícitos. Não criam automaticamente uma máquina no
cadastro, não capitalizam activos nem inventam compatibilidades. A área/linha
do pedido e a regra aplicada ficam no snapshot da ordem, no detalhe e na impressão.
### Verificações e aplicação
Suite completa: **393 testes aprovados, 3 ignorados, 2.886 asserções**.
Os **70 testes** de regras de investimento e adjudicação passaram, incluindo
15 de governação e oito novos cenários integrados de equipamento: duas assinaturas,
isolamento, vigência, ausência de retrocesso após expiração, tecto inclusivo,
bases de IVA, Finanças obrigatória, dotação/validação técnica, alteração de regra,
emissão, recepção física e preservação da ordem após nova publicação.
PHPStan, Pint, TypeScript, compilação e formatação/lint frontend aprovados.
Três cenários concorrentes PostgreSQL aprovados: assinaturas distintas, mesma
assinatura repetida e propostas de versões concorrentes. Dois processos e duas
ligações independentes observados simultaneamente à espera de bloqueios por
cenário. Estados e contagens conferidos; base temporária eliminada. São testes
de serviço, não de carga ou de todos os fluxos concorrentes de emissão.
[Evidência](investimento-concorrencia-postgresql.json).
Migração 000014 aplicada no **lote 15** após backup custom PostgreSQL 17 de
**250.983 bytes** e restauro verificado das **46 tabelas** anteriores numa base
temporária, depois eliminada. Dump e manifesto partilharam snapshot consistente.
A verificação antes/depois projectou as colunas anteriores, preservando dados
de negócio e restrições enquanto eram acrescentadas classificação e snapshot.
`.env`, contas e credenciais preservados. Tabelas de regras e decisões vazias,
sem políticas fictícias, sementes ou limites definidos para empresas reais.
Backup e manifesto privados, fora do Git.
[Evidência sem dados privados](investimento-migracao-000014.json).
### Limitações e continuidade
`/consulta/investimento` é demonstração fictícia, sem consultas/gravações de
negócio. **Revisão visual pública, autenticada e de impressão permanece pendente**;
o navegador está indisponível. Testes HTTP/Inertia e compilação não a substituem.
Também não há validação operacional integral ou autorização de compras reais.
Empresas devem criar as dotações e regras efectivamente decididas pelos seus
responsáveis. Sem regra vigente e reserva apropriada, equipamento permanece
bloqueado. Circuitos acima do tecto, agregação por projecto, classificação
automática de investimento e detecção de fraccionamento não foram implementados.
Próximo incremento: revisão/cancelamento controlado de processos afectados por
mudanças de base, com política explícita, histórico e novas aprovações; não
reutilizar decisões antigas nem alterar ordens emitidas directamente.
## Reforços orçamentais por empresa
Implementadas propostas de reforço em `/orcamentos`, por dotação existente de
@@ -0,0 +1,30 @@
{
"tested_at_utc": "2026-10-28T13:24:32+00:00",
"separate_database": true,
"transport": "Independent PHP service transactions and PostgreSQL connections",
"scenarios": [
{
"name": "distinct_approvals",
"passed": true,
"overlapping_lock_waits": 2,
"state": "approved",
"review_count": 2
},
{
"name": "same_approval",
"passed": true,
"overlapping_lock_waits": 2,
"state": "pending",
"review_count": 1
},
{
"name": "competing_versions",
"passed": true,
"overlapping_lock_waits": 2,
"state": "pending",
"review_count": 0
}
],
"passed": true,
"test_database_dropped": true
}
+16
View File
@@ -0,0 +1,16 @@
{
"verified_at_utc": "2026-10-28T13:27:20+00:00",
"migration": "2026_10_28_000014_create_investment_policies",
"batch": 15,
"backup_created": true,
"backup_bytes": 250983,
"restore_verified": true,
"restored_tables": 46,
"restore_database_dropped": true,
"business_records_unchanged": true,
"existing_constraints_preserved": true,
"env_unchanged": true,
"investment_policies_count": 0,
"investment_policy_reviews_count": 0,
"operational_validation": false
}
+12
View File
@@ -1,5 +1,17 @@
# Continuidade do desenvolvimento do SGC
## Próxima etapa após regras de investimento
Regras próprias por empresa, duas aprovações administrativas e integração com
equipamento já implementadas; migração 000014 aplicada, lote 15. Não repetir
as etapas históricas abaixo. Sem valores predefinidos ou regras fictícias na
base real. Cada empresa decide os seus parâmetros e dotações de investimento.
Prosseguir com revisão/cancelamento controlado de processos afectados por
mudanças de base, com política explícita, rastreabilidade e novas aprovações.
Não reescrever ordens emitidas ou reutilizar implicitamente aprovações antigas.
Agregação por projecto/fraccionamento e circuitos acima do tecto não estão
suportados. Revisão visual e validação operacional integral continuam pendentes.
## Próxima etapa após reforços
Reforços por empresa/centro/exercício já estão implementados e migrados
+5
View File
@@ -3,6 +3,11 @@
Estado: proposta para decisão empresarial, ainda sem aprovação nem implementação.
Referência funcional: entrega `75ffdb3`. O orçamento continua sem validação.
As regras de investimento passaram a suportar tecto absoluto por processo,
base de IVA e vigência explícitas, com duas aprovações administrativas. Os
valores continuam a ser decisões de cada empresa; modalidades adicionais e
agregação por projecto não estão implementadas. Consultar o relatório actual.
Actualização: o utilizador autorizou avançar com a abordagem. Dotações, reservas,
compromissos e conferência de facturas/consumo foram implementados e migrados.
A base de IVA é uma decisão explícita de cada empresa. As secções seguintes