4.8 KiB
G3 — Divisão administrativa em armazéns e equipamentos
Implementação autorizada pela continuação de desenvolvimento. Instalação no piloto pendente de autorização específica; o âmbito anterior instalado abrangia apenas sede da empresa e fornecedores. A cartografia e os seus diagnósticos não foram alterados.
Registar uma vez e reutilizar
Armazéns e equipamentos guardam apenas geography_reference: país MZ, hash da edição e ID do registo. Nomes, códigos e percurso são lidos de AdministrativeGeography, com o mesmo selector opcional e as mesmas recusas de códigos ambíguos, níveis superiores ausentes ou edição divergente. Não se copiam tabelas de localidades por empresa ou módulo.
A migração isolada 2026_11_03_000005_add_operational_geography_references acrescenta duas colunas JSON anuláveis, em warehouses e equipment, sem preencher qualquer referência. Cada cadastro verifica a existência da sua coluna e a opção específica SGC_OPERATIONAL_GEOGRAPHY_ENABLED (desligada por defeito) antes de disponibilizar o campo. Suspender esta opção conserva a geografia da sede/fornecedores. A ausência desta estrutura não desliga a localização já instalada na sede/fornecedores nem impede os cadastros antigos sem classificação.
Armazém
Administração e Armazém podem indicar uma referência na criação e alterar somente a localização de um armazém existente. A alteração compara a referência anterior, sob o bloqueio da empresa, para recusar sobrescrita concorrente. Repetir a mesma referência não cria alteração ou nova auditoria; retirar a referência não altera código, nome, reposição, centro de custo ou responsável.
O comando revalida o utilizador actual e a sua competência no servidor, recusa manutenção e restringe o armazém à mesma empresa. Auditoria e alteração são transaccionais. Compras e Finanças mantêm consulta, sem ganhar competência para classificar armazéns.
A consulta de existências pode filtrar pela localização do armazém, incluindo descendentes confirmados. Os mesmos armazéns filtram movimentos e saldos derivados; não se grava saldo territorial paralelo. A pesquisa de artigo e o filtro por armazém continuam combináveis. A localização apresentada é a referência actual, não uma afirmação sobre onde ocorreu um movimento histórico.
Equipamento
Administração, Armazém e Compras mantêm a competência nativa de cadastro. A localização é opcional na criação/edição, no mesmo comando, versão e auditoria da ficha. O comando revalida a competência actual após bloquear a empresa e recusa manutenção. Omitir o campo conserva a classificação; retirar explicitamente elimina só a referência. A área textual, departamento, série, criticidade e restantes regras de cadastro não são substituídos por uma localidade.
O filtro territorial limita os equipamentos, ligações a peças, artigos associados e histórico aos equipamentos confirmados nesse território, conservando a separação entre empresas e o âmbito departamental do leitor. Criticidade mantém o catálogo próprio. A ficha individual mostra a localização actual, enquanto pedidos de compra e movimentos continuam a consultar os respectivos dados de origem.
Este bloco não representa transferência física de equipamento, mudança de responsável, redistribuição de stock ou alteração de destino de uma requisição. Documentos, decisões, validações técnicas e movimentos anteriores não são reescritos. Não se infere a localização de um equipamento a partir da sede, do armazém ou da semelhança do nome da área.
Verificação e piloto
Provas em docs/proofs/operational-geography.json e operational-geography-pg.json. Cobertura de criação, edição, remoção, concorrência lógica, versão nativa, âmbito empresarial/departamental, recusas de dados inconsistentes, permissões revogadas, manutenção e rollback de auditoria. A regressão integrada de Equipamentos/Stock é distinta do fecho dirigido; baterias sobrepostas não se somam.
A preparação scripts/prepare-operational-geography-schema.php --prepare-operational-geography exporta uma cópia consistente do piloto em transacção só de leitura, restaura uma base descartável e aplica a migração apenas nessa cópia. Confere todas as tabelas, as colunas antigas dos dois cadastros e que as novas referências estão vazias; remove a cópia. Não executa comandos de negócio ou migrações no piloto.
No piloto8005, a estrutura000005 continua ausente e os novos controlos permanecem ocultos. A cartografia existente continua activa para sede e fornecedores. MFA desligado; sem alterações a contas, perfis, aprovações, políticas, ordens ou SGF. A proposta concreta de instalação está em docs/proposta-instalacao-geografia-operacional.md. Sem revisão visual completa ou aceitação empresarial nesta entrega.