52 lines
7.7 KiB
Markdown
52 lines
7.7 KiB
Markdown
# 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](http://127.0.0.1:8069/qa/enter/actor?open=1&geography=company).
|
|
- [Unidade](http://127.0.0.1:8069/qa/enter/actor?open=1&geography=unit).
|
|
- [Cliente sintético associado ao Comercial](http://127.0.0.1:8069/qa/enter/actor?module=commercial&open=1&geography=client).
|
|
- [Fornecedores](http://127.0.0.1:8069/qa/enter/actor?open=1): abrir uma ficha e seguir «Localização para segmentação».
|
|
- [Consulta de empresa sem edição](http://127.0.0.1:8069/qa/enter/validator?open=1&geography=company).
|
|
|
|
**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](proofs/geography-composition-20261103.json): **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.
|