Implementa regras de investimento por empresa com dupla aprovacao
This commit is contained in:
+12
-1
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user