Files
SGF/docs/SGF_INVOICE_MATCHING_PROGRESS.md
2026-11-04 09:37:20 +02:00

43 lines
5.3 KiB
Markdown

# Quantidades para conferência da factura — 03/11/2026
`SGF-INVOICE-MATCHING-PROGRESS-QA-v1` acrescenta a leitura das quantidades por linha no percurso de factura de fornecedor: encomendado, aceite, devolvido, estornado, aceite líquido, facturado/validado, em documentos pendentes e restante para conferir.
## Comportamento
A indicação usa as quantidades físicas originais, as correcções já calculadas pelos serviços nativos e duas consultas agregadas por linha para recepções e facturas. A quantidade disponível é o menor valor entre encomendado e aceite líquido, deduzido apenas do validado, com mínimo zero. Divergência entre validado e origem é visível separadamente.
**Pendentes não reservam quantidade.** Uma factura pendente acima do restante recebe uma indicação de divergência, sem ser eliminada, alterada ou considerada validada. A permissão de conferência distinta permanece a original: não é promessa de que a validação nativa vá aceitar o documento. Nenhuma quantidade é escolhida ou preenchida automaticamente.
O formulário apresenta o restante junto à linha escolhida e continua a exigir os dados e fundamento do documento. Preparação, validação, consumo orçamental, versões e idempotência permanecem nos serviços anteriores. Não há nova reserva, factura, obrigação, pagamento, movimento ou lançamento automático.
O estado da ordem é observado uma vez para o detalhe e para a sua revisão, antes de acrescentar as capacidades de interface; a chamada repetida foi removida. A definição do estado e os blocos `preview`/`confirm` mantêm-se iguais. A equivalência da revisão foi conferida contra esse estado original. O histórico da factura passa também a ignorar respostas atrasadas de páginas anteriormente pedidas.
O novo detalhe fica desligado por omissão em `receipt_qa.invoice_progress_enabled`; reutiliza os direitos e isolamento da consulta de facturas, sem direitos novos.
## Provas sem repetir comandos financeiros
[Consolidação técnica](proofs/invoice-matching-progress-20261103.json): **47 verificações**, sendo14 de origem disponível,16 do caso parcial já concluído,11 de lógica da interface e seis da demonstração.
Foram criadas aplicações de leitura novas sobre dois livros QA existentes, sem repetir emissão, recepção, facturas, validações ou reconhecimento:
- `invoice-progress-read-e286efd6035f` reutiliza `ce4c9bef1a51`: ordem/aceitação1UN, nenhuma factura; restante1000milésimos.
- `invoice-progress-read-34534a38acd7` reutiliza `da77bb730751`: facturas40+60 validadas, restante zero, documento70 ainda pendente e700milésimos visíveis separadamente.
Os conjuntos de tabelas e sequências de ambos os livros ficaram integralmente iguais antes/depois. Inclui recusas para Compras/Armazém, ordem estrangeira/desconhecida, unidade diferente e contexto antigo; modo desligado e equivalência da revisão. Os limites aritméticos com devolução/estorno e tecto da ordem foram ensaiados sem executar novas correcções físicas.
A interface simulada comprova três casas decimais exactas, recusa de valores fora da representação inteira segura, diferença explícita, aviso apenas para pendentes, ausência de reserva implícita/preenchimento automático, ligação ao módulo efectivo e abertura apenas GET. Uma resposta atrasada do histórico deixa de substituir a página mais recentemente solicitada.
Verificação final: sintaxe de sete ficheiros PHP e nove JavaScript aprovada; `git diff --check` sem erros de espaços. Inventário/matriz actualizados: seis módulos,13 etapas,89 fontes, zero ciclos obrigatórios e138 critérios documentais conferidos. Estes totais não são validação operacional dos módulos completos.
## Demonstração e preservação
Nova composição `9ec0a8e493ea`, [**8081 — Finanças**](http://127.0.0.1:8081/qa/enter/issuer?open=1), sem requisições/facturas principais iniciais. Conserva o percurso, anexos, histórico detalhado e atalhos anteriores. Probes de leitura preservaram os dados de requisição/factura/auditoria e concessões seleccionados; os módulos estáticos servidos coincidem com o código por SHA.
8080 e anteriores, seis registos protegidos, cache bloqueada, provas válidas e trabalho alheio preservados. Nenhuma migração/concessão real, activação de Compras, publicação, aceitação ou checkpoint.
## Limitações
A leitura agregada nova não elimina a materialização do estado completo de dependências para a revisão da ordem. A lista de facturas e as verificações de capacidade continuam a ter os limites anteriores; retirar a observação duplicada não comprova ganho de tempo/memória ou capacidade de implantação. Não foram repetidas medições de1000/5000/10000 ou ensaiados índices nesta entrega.
Os livros usados têm uma linha de ordem e os casos de facturação existentes. As fronteiras de devoluções/estornos são verificações aritméticas; as suites físicas completas mantêm a sua evidência própria. Não se introduz rejeição/correcção de factura ou nota de crédito. O DOM simulado não é revisão visual/acessibilidade no navegador. Não foi repetida a via bloqueada de navegador nem o build React/Vite inalterado: verificaram-se os módulos ES estáticos afectados. Visual, carga sustentada, instalação e capacidade de implantação continuam pendentes.