7.7 KiB
Localização e segmentação nos cadastros SGF
03/11/2026. Implementados catálogo territorial paginado, selector comum acessível a partir dos cadastros de empresa/unidade/cliente/fornecedor, confirmação individual, histórico e filtros de segmentação. O catálogo usa a cartografia fornecida, preservando20.407 linhas e a versão exacta já preparada. Os16 testes de preparação foram reutilizados.
Experimentar na composição nova8069
- Empresa.
- Unidade.
- Cliente sintético associado ao Comercial.
- Fornecedores: abrir uma ficha e seguir «Localização para segmentação».
- Consulta de empresa sem edição.
A demonstração começa sem localizações atribuídas, decisões ou histórico geográfico. Tem um cliente QA criado pelo workflow original e associado explicitamente ao Comercial, outro cliente QA sem associação para recusa de acesso e os fornecedores preparados na fixture. A cartografia é referência comum; não é uma associação empresarial. As entradas de perfil são exclusivas do launcher privado em loopback. As demonstrações anteriores, incluindo8068, não foram reconfiguradas.
Escolher província e, quando conhecido, aprofundar distrito/posto/localidade/bairro/aldeia ou quarteirão. Também existe pesquisa por designação. A selecção termina no nível efectivamente conhecido; não se exige chegar à última subdivisão. Registos ambíguos, sem designação ou com ascendência incompleta permanecem visíveis, com motivo de impedimento. Não há escolha inicial nem deduplicação automática.
Depois da escolha, indicar fundamento, conferir o estado anterior/posterior e confirmar. A decisão explícita «deixar localização por indicar» retira a indicação actual, preservando o histórico. O selector não transforma uma caixa vazia numa decisão de remoção.
O que fica guardado
Localização para segmentação, separada do endereço canónico, fiscal ou de entrega. Uma selecção contém paísMZ, versão da fonte, ID original, chave versionada, precisão, designação e componentes textuais intactos. Não atribui validade fiscal, não altera a revisão financeira dos fornecedores nem propaga localizações para ordens, facturas ou registos dependentes.
Empresa e cliente têm a abrangência já existente no cadastro da empresa; o cliente exige a associação explícita ao Comercial. Unidade exige a unidade seleccionada. Fornecedor exige a origem nativa, empresa/unidade e ligação actualmente configuradas. Não se infere partilha entre unidades ou fornecedores de bases diferentes. Localização nunca concede direitos sobre a entidade.
São reutilizados company.view/edit, unit.view/edit, clients.view/edit e purchasing_suppliers.view/prepare, juntamente com as funções e guardas originais de Compras. Não há novo direito público. As concessões necessárias aos perfis de ensaio existem só nas novas fixtures; as contas reais não foram alteradas.
A prévia não escreve localização, histórico ou recibo. A confirmação verifica de novo permissão, identidade, geração do contexto, estado/versão do cadastro, revisão da localização, versão activa da cartografia e ligação de origem. Alterações exigem nova conferência. A localização actual, histórico anterior/posterior e recibo idempotente ficam na mesma transacção do host. O fornecedor é conferido sob os bloqueios do runtime administrativo original, sem escrita de negócio na base nativa; não se criou uma transacção distribuída com dois efeitos.
Uma chave/conteúdo já confirmado recupera o resultado; mudar o conteúdo é recusado. O histórico inclui autor, data e fundamento e é append-only. A falha no histórico reverte também a localização e o recibo. Dois editores com a mesma revisão são serializados: um confirma e o segundo recebe409 para conferir de novo.
Filtros e paginação
O catálogo é importado uma vez na preparação da fixture; as consultas HTTP não carregam as20.407 linhas em memória. Pesquisa e cascata usam páginas de25 no servidor. O histórico usa páginas de15.
No selector existe ligação para consultar as localizações desse tipo de entidade. O relatório filtra pelos componentes do território escolhido, respeitando a precisão registada. Mostra localizações explicitamente indicadas na versão corrente; não representa a quantidade total de clientes/fornecedores, nem preenche dados ausentes com zero. Paginação por cursor de25, com próxima página quando existir. Na ligação de fornecedores, os nomes e a visibilidade nativa são conferidos em lotes limitados a100 candidatos; não se copia o universo de fornecedores para o host ou para a memória.
Provas e preservação
Consolidação técnica: 83 verificações —41 de integração, cinco de paginação/visibilidade,12 de guardas/isolamento modular, oito de links React,14 da demonstração e três de build/assets. Incluem gravação nos quatro cadastros, contexto antigo, cliente sem associação, empresa/unidade/fornecedor fora do âmbito, direito revogado, catálogo/cadastro alterados, remoção explícita, recusa de ambiguidade, concorrência201/409, repetição sem duplicação, falha de histórico e recuperação, imutabilidade e preservação dos dados nativos do fornecedor.
As cinco provas de paginação usam26 localizações preparadas como fixtures de leitura, além da localização criada pela API: páginas25+2 sem sobreposição. Uma fixture negativa demonstra que ter metadados geográficos não ultrapassa a ausência de associação do cliente ao módulo; foi retirada depois da prova. Não se apresentam essas fixtures como decisões realizadas pela interface. As41 provas válidas não foram repetidas; a adição do campo de resposta paísMZ foi conferida nas14 provas da demonstração.
A nova fixture reutiliza exactamente os pacotes nativos/económicos/ciclo de requisição já fixados e testados, preservando as alterações simultâneas no repositório de Compras. A criação de tabelas e os índices geográficos ocorreram apenas em bases novas do cluster QA55439. O schema A original foi reutilizado numa cópia privada com adaptação transitória da restrição de concessões para conservar os direitos já próprios da fixture; a restrição final foi validada, sem mudar a migração pública.
Não houve ligação ao destino, atribuição de localizações a dados reais, alteração dos seis registos protegidos, limpeza da cache bloqueada, mudança do catálogo público de direitos, activação de Compras, publicação ou checkpoint. Código, manifests e provas anteriores foram conferidos por hash; credenciais e carga de referência permanecem no directório privado.
Limites separados
Continua por implementar o circuito administrativo de correcção/publicação de novas versões da cartografia, eventual migração conferida de localizações históricas e catálogos de outros países. A autoridade INE é a declaração da fonte fornecida pelo utilizador; não se declara vigência nacional independentemente verificada. As pendências de conteúdo permanecem intactas e impedidas de selecção.
Não se substituíram endereços fiscais/de entrega nem relatórios financeiros existentes. A segmentação entregue é uma consulta própria das localizações. Revisão visual, carga sustentada, separação de privilégios proprietário/runtime e capacidade de implantação continuam pendentes. As provas HTTP/build não resolvem essas pendências.