Adiciona dotacoes e reservas orcamentais por empresa
This commit is contained in:
+21
-3
@@ -12,8 +12,8 @@ Estado actualizado em 28 de Outubro de 2026. Projecto activo: C:\laragon\www\com
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 |
|
||||
@@ -22,6 +22,24 @@ Preservar enums, políticas, modelos relacionais, Brick Math e isolamento por em
|
||||
|
||||
## Verificação actual
|
||||
|
||||
Referência consolidada: `75ffdb3`, com **262 testes aprovados, 3 ignorados e
|
||||
2.327 asserções**. Nova verificação dirigida de equipamentos, adjudicação,
|
||||
ordens e navegação: **87 testes aprovados, 1.163 asserções**. As onze migrações,
|
||||
incluindo 000008 no lote 9, foram confirmadas aplicadas por `migrate:status`.
|
||||
As páginas públicas inicial, consulta, equipamentos, recepções, stock e operações
|
||||
responderam HTTP 200. Os acessos sem sessão a equipamentos, recepções, stock e
|
||||
ordens responderam 302 para login. Estes resultados não são revisão visual.
|
||||
|
||||
O navegador voltou a reportar `The browser access host is unavailable`.
|
||||
Revisão visual pública, autenticada e de impressão permanece pendente.
|
||||
Orçamento e facturas não estão implementados; as regras empresariais ainda
|
||||
estão por definir. A [proposta de regras financeiras](proposta-regras-financeiras.md)
|
||||
é um documento para decisão, não uma aprovação. **O orçamento continua sem validação.**
|
||||
Sete cenários PostgreSQL de stock constam da evidência histórica, incluindo
|
||||
saída de peça com equipamento; não foram novamente executados nesta revisão.
|
||||
|
||||
## Histórico da entrega de stock anterior aos equipamentos
|
||||
|
||||
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](stock-migracao-000007.json).
|
||||
|
||||
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.
|
||||
@@ -30,4 +48,4 @@ Quatro cenários simultâneos de recepção passaram numa base PostgreSQL separa
|
||||
|
||||
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](stock-concorrencia-postgresql.json). 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](desenvolvimento.md). **O orçamento continua sem validação.** Equipamentos não foram iniciados.
|
||||
Após a aplicação, `/consulta/operacoes-stock` respondeu HTTP 200 e `/stock/operacoes` redireccionou para login (302) no cliente sem sessão. Os resultados desta secção são históricos. A entrega posterior de equipamentos substitui as antigas indicações de que esse módulo ainda não tinha sido iniciado. Resultados e limitações em [desenvolvimento.md](desenvolvimento.md).
|
||||
|
||||
@@ -1,5 +1,49 @@
|
||||
# Desenvolvimento do SGC
|
||||
|
||||
## Primeiro incremento de orçamento por empresa
|
||||
|
||||
Implementados cadastro de dotação anual por empresa/centro de custo, montantes
|
||||
explícitos em centavos MZN e escolha obrigatória da base com/sem IVA. Preparação
|
||||
e aprovação por pessoas distintas de Administração/Finanças. Sem valores de
|
||||
dotação predefinidos. A configuração pertence exclusivamente à empresa actual.
|
||||
|
||||
Reservas na submissão, ajuste na adjudicação, libertação na rejeição e conversão
|
||||
em compromisso na emissão reutilizam a transacção e o bloqueio por empresa.
|
||||
Movimentos imutáveis, idempotência por processo/operação e auditoria transaccional.
|
||||
Dotação pendente ou insuficiente bloqueia operações no centro/exercício configurado.
|
||||
Centros sem dotação preservam o fluxo anterior de desenvolvimento, explicitamente
|
||||
sem controlo orçamental. Não há activação global implícita para todos os clientes.
|
||||
O snapshot mantém `budget_checked=false`, acrescentando a referência ao controlo
|
||||
efectuado; não constitui validação financeira completa ou autorização de compra real.
|
||||
|
||||
Interface em `/orcamentos`, restrita a Administração e Finanças. Não existem
|
||||
reforços, edição de dotações, facturas, pagamentos ou migração financeira de
|
||||
processos anteriores. Os limites de investimento continuam por definir por empresa;
|
||||
equipamentos permanecem bloqueados para adjudicação/emissão.
|
||||
|
||||
Migração aditiva 000009 preparada e testada apenas em SQLite isolado; **não aplicada
|
||||
à base real**. Exige backup/restauro verificado antes da aplicação. Não foram
|
||||
alteradas contas, configurações, credenciais ou dados de negócio. Dez testes novos
|
||||
passaram, com 27 asserções; PHPStan e TypeScript aprovados. Revisão visual e
|
||||
concorrência PostgreSQL deste módulo continuam pendentes. **O orçamento continua
|
||||
sem validação operacional.**
|
||||
|
||||
## Validação das pendências após consolidação
|
||||
|
||||
Recolhido o resultado final da nova execução dirigida: **87 testes aprovados,
|
||||
1.163 asserções**, abrangendo equipamentos/peças, adjudicação/ordens e navegação.
|
||||
Não substitui o resultado da suite completa consolidada de 262 aprovados e 3
|
||||
ignorados. Onze migrações confirmadas aplicadas, sem pendentes. Seis entradas
|
||||
públicas responderam HTTP 200; quatro rotas protegidas responderam 302 para login.
|
||||
|
||||
O acesso ao navegador continua indisponível (`The browser access host is unavailable`).
|
||||
A revisão visual pública, autenticada e de impressão não foi concluída.
|
||||
O utilizador confirmou que as regras financeiras estão por definir. Foi preparada
|
||||
uma [proposta de regras](proposta-regras-financeiras.md) para decisão empresarial,
|
||||
sem activar orçamento, facturas ou desbloquear investimentos. **O orçamento
|
||||
continua sem validação.** Corrigido o mapa de compatibilidade que ainda descrevia
|
||||
equipamentos como não iniciados.
|
||||
|
||||
## Revisão e consolidação — 28 de Outubro de 2026
|
||||
|
||||
- Recolhido o resultado final da execução da suite: **262 testes aprovados,
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
# Proposta de regras financeiras do SGC
|
||||
|
||||
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.
|
||||
|
||||
## Abordagem recomendada
|
||||
|
||||
Implementar primeiro orçamento e reservas; depois compromisso de ordens e
|
||||
conferência de facturas. Pagamentos ficam para um incremento posterior.
|
||||
Cada etapa exige testes e auditoria antes de permitir utilização operacional.
|
||||
|
||||
## Orçamento
|
||||
|
||||
- Exercício anual, por empresa e centro de custo, em MZN. Guardar os montantes
|
||||
em centavos. Datas de início/fim são explícitas; não transportar saldos
|
||||
automaticamente para outro exercício.
|
||||
- Proposta inicial: controlar o total com IVA, por prudência de tesouraria.
|
||||
Finanças deve confirmar esta base e a política de IVA antes da implementação.
|
||||
- Dotação inicial e reforços exigem preparação e aprovação por duas pessoas
|
||||
distintas da empresa, com fundamento, data e histórico. Nenhuma alteração
|
||||
substitui os registos anteriores ou cria saldo por omissão.
|
||||
- Disponível = dotação aprovada − reservas abertas − compromissos abertos
|
||||
− consumo líquido validado. As três parcelas são mutuamente exclusivas para
|
||||
cada quantidade/valor: converter entre elas não duplica a despesa.
|
||||
- Rascunho não reserva. Submissão reserva a estimativa integral, dentro de
|
||||
transacção, com verificação do disponível. Sem dotação válida ou saldo,
|
||||
impedir submissão; não criar autorização de excesso automática.
|
||||
- Rejeição definitiva liberta a reserva com movimento inverso auditado.
|
||||
Edição de pedido submetido exige fluxo explícito de revisão, ainda por construir.
|
||||
- Adjudicação ajusta a reserva ao valor final apenas após nova verificação do
|
||||
saldo; redução liberta a diferença. As aprovações do valor final mantêm-se.
|
||||
- Emissão converte reserva em compromisso, sem reduzir novamente o disponível.
|
||||
Falha na emissão reverte toda a operação financeira e documental.
|
||||
- Não permitir transferências entre centros de custo, cancelamentos, reabertura
|
||||
ou passagem de exercício enquanto os respectivos fluxos não forem aprovados.
|
||||
|
||||
## Facturas
|
||||
|
||||
- Factura ligada a fornecedor, ordem emitida e empresa; identidade e número
|
||||
normalizado únicos por fornecedor/empresa. Impedir repetição da mesma operação.
|
||||
- Finanças regista e outra pessoa de Finanças valida, distinta do autor.
|
||||
Sem duas pessoas elegíveis, a factura permanece pendente.
|
||||
- Conferir ordem, recepções aceites e factura por linha: quantidade, unidade,
|
||||
preço, IVA e total. Aceitar facturação parcial até ao recebido/aceite ainda
|
||||
não facturado. Serviços exigem uma aceitação registada antes da validação.
|
||||
- Proposta inicial: tolerância zero para diferenças de preço, quantidade ou
|
||||
imposto. Divergências suspendem a validação até existir procedimento aprovado;
|
||||
não corrigir silenciosamente a ordem ou as recepções.
|
||||
- Validar a factura converte a parcela correspondente do compromisso em consumo.
|
||||
A parcela por facturar mantém-se comprometida; a soma não pode ultrapassar
|
||||
o autorizado. O pagamento futuro liquida a dívida, sem consumir outra vez
|
||||
o orçamento.
|
||||
- Notas de crédito, adiantamentos, despesas sem ordem, diferenças cambiais e
|
||||
facturação entre exercícios ficam bloqueados até definição dos respectivos fluxos.
|
||||
- Não criar pagamentos automáticos nem enviar documentos a terceiros.
|
||||
|
||||
## Investimento em equipamentos
|
||||
|
||||
- Manter validação técnica do responsável da área e Finanças para qualquer
|
||||
valor, com separação do solicitante e registo das decisões.
|
||||
- Criar uma dotação de investimento identificada, distinguindo-a de despesa
|
||||
corrente; a classificação exige decisão explícita, sem inferência pela descrição.
|
||||
- O limite próprio de investimento deve ser configurado por empresa, com base
|
||||
com/sem IVA, vigência, âmbito por aquisição/projecto e significado explícito:
|
||||
tecto absoluto ou valor que exige aprovação adicional. São decisões em aberto.
|
||||
- Não propor um valor monetário arbitrário. Enquanto a regra estiver ausente
|
||||
ou não aprovada por duas pessoas distintas, manter adjudicação e emissão
|
||||
de equipamento bloqueadas. Proibir fraccionamento para contornar o limite.
|
||||
|
||||
## Validação de aceitação a implementar
|
||||
|
||||
1. Duas submissões simultâneas disputando saldo: apenas as que cabem na dotação
|
||||
podem reservar; saldo nunca negativo.
|
||||
2. Repetição de submissão, adjudicação, emissão ou validação de factura não
|
||||
duplica reserva, compromisso, consumo ou auditoria.
|
||||
3. Falha de auditoria reverte a transacção inteira. Os lançamentos anteriores
|
||||
não podem ser editados ou eliminados; correcções usam inversões explícitas.
|
||||
4. Facturas parciais consomem só a parcela aceite, preservando compromisso
|
||||
remanescente; excesso, duplicação e diferenças são recusados.
|
||||
5. Rejeição liberta exactamente a reserva existente, uma única vez.
|
||||
6. Isolamento entre empresas, centros de custo, exercícios e perfis;
|
||||
ninguém aprova a própria dotação ou factura.
|
||||
7. Equipamento sem regra de investimento aprovada permanece bloqueado,
|
||||
incluindo nos limites e acima deles. Validar fronteiras após definição da regra.
|
||||
8. Executar concorrência PostgreSQL em base isolada e revisão visual pública,
|
||||
autenticada e de impressão; testes funcionais não substituem a revisão visual.
|
||||
|
||||
## Decisões necessárias para activar o desenvolvimento financeiro
|
||||
|
||||
Confirmar exercício anual, base com IVA, circuito de dupla aprovação,
|
||||
reserva na submissão e tolerância zero. Definir dotação inicial por centro de
|
||||
custo e os parâmetros/autoridade do investimento. Esta proposta não constitui
|
||||
aprovação destas regras nem certificação para compras reais.
|
||||
Reference in New Issue
Block a user