# Fecho dos percursos pendentes de Stock na mesma8085 Estado: **autorizado expressamente em10/11/2026 — «Autorizar este fecho QA de Stock»; implementação em curso**. É uma extensão do âmbito já executado, não outra autorização para a entrada2/saída1/devolução0,5, já concluída e valorizada100/50/25. A aprovação não é uma declaração de testes, instalação ou aceitação concluídos. ## Porque é necessária uma decisão A matriz de conclusão ainda identifica transferência em trânsito/recepção distinta e contagem por lotes. A transferência actualmente utilizável é imediata e atómica; a contagem integrada é sem lotes. Não apresentar estas variantes como equivalentes. A autorização anterior discriminou `stock.operations.prepare` e `stock.operations.confirm`. O controlador nativo de lotes exige funções próprias: `InventoryLots::allows`/`canActivate` exigem preparação e revisão distintas; o perfil Armazém actual não tem sequer `inventory_lot_read`/`inventory_lot_prepare`, e o revisor proposto não tem `inventory_lot_review`. Conferência feita sem conceder acessos: `scripts/sgf-stock-remaining-rights-check.php` e resultado privado indexado no relatório desta entrega. Regra do proprietário: «Se forem necessários novos direitos, apresenta-os antes de conceder acessos.» Não usar `stock.view`, a verificação técnica de Oficina ou uma flag para contornar a falta dessas autoridades. ## Direitos mínimos propostos Somente nos dois livros QA já existentes, instalação8085 e regressão, tenant1/empresa2/unidade2. Nenhuma conta de aplicação, role PostgreSQL ou acesso real novo. | Camada | Função existente | Direito/acesso proposto | Limite obrigatório | |---|---|---|---| | SGF | QA conferência técnica (`workshop_verify`, actual utilizador12) | **novo** `stock.transfers.receive` | Receber parcelas de transferências destinadas apenas ao armazém QA1; sem emitir saídas genéricas ou receber noutra unidade. | | SGF | A mesma função QA | **novo** `stock.lots.review` | Activação/libertação e revisão de contagem apenas do novo artigo de lotes no armazém QA integrado3. Não concede `stock.operations.confirm`. | | Núcleo físico QA | Armazém actual, actor nativo6 | `inventory_lot_read`, `inventory_lot_prepare`, `inventory_lot_hold` | Funções existentes do núcleo, novas concessões sintéticas. Preparar/identificar/reter; não aprovar a própria configuração ou libertação. | | Núcleo físico QA | Revisor distinto, actor nativo3 | `inventory_lot_read`, `inventory_lot_review`, `inventory_lot_release`, `inventory_adjust_review` | Funções existentes; outra pessoa para activação/libertação e aplicação da diferença do lote seleccionado. Sem função nativa genérica `warehouse`. | A ligação privada da função12 ao actor nativo3 será explícita, fixada por hash e auditada, preservando os restantes bindings. A recepção do novo protocolo de transferência tem a nova autoridade SGF específica, identidade nativa activa e destino revalidados; não imita uma autorização genérica de armazém que o actor não possui. As permissões nativas de lotes acima são as que o código original efectivamente exige. Não alargar os SELECTs da conta de leitura física actual: conserva as três tabelas. A consulta específica de lotes/trânsito será servida pelo adaptador autorizado, com filtros por pessoa/empresa/unidade/armazém e campos mínimos, sem expor documentos financeiros ou dados de outras origens. ## Percurso em trânsito a entregar Transferir1UN do artigo QA já valorizado, do armazém integrado3 para o armazém QA1, mantendo propriedade na mesma empresa/unidade. Antes:1,5UN/75MZN. Após expedição:0,5UN disponíveis na origem e1UN em trânsito. Após recepção:0,5UN na origem e1UN no destino, trânsito0; valor próprio total75MZN conservado. Nenhuma alteração ao artigo original do exemplo de Compras. Preparação/prévia, expedição e recepção são decisões explícitas. Autoridades de origem/destino e versões voltam a ser conferidas; parcelas não podem ultrapassar o enviado. Uma recusa não inventa uma devolução física: o retorno à origem necessita da sua recepção declarada. Pendências em trânsito ficam visíveis e quantificadas. Header/eventos e movimentos usam a mesma transacção e livro físico, com chave única, autor/data/fundamento/estado anterior e posterior; sem outro saldo persistido. A transferência interna não cria receita, consumo ou outra dívida. A reconciliação contabilística deve distinguir localização disponível e propriedade em trânsito, mantendo o valor total e a referência à taxa revista. Não omitir movimentos do fecho por serem desconhecidos: a excepção interna precisa de prova de origem, propriedade, parcelas e valor reconciliados. Sem correcção de custos directos/industriais por arrasto. ## Percurso de lotes a entregar Um terceiro artigo exclusivamente fictício `QA-LOTE-INTEGRADO`, no armazém3, com4UN em dois lotes identificados de2UN. Configuração preparada por Armazém e activada distintamente; identificação, retenção e libertação rastreáveis pelos serviços originais. Sem presumir validade de lotes reais. Contagem explícita: lote1=1,5UN, lote2=2UN, total3,5UN; diferença−0,5UN. A contagem é observação, não ajuste automático. Outra função revê/aplica a diferença após voltar a conferir versões de lotes e livro. Taxa QA20MZN/UN preparada/revista; entrada80MZN e diferença10MZN pelo mesmo diário, com conta artificial adicional `QA-DIFERENCA-INVENTARIO`. Saldo final deste artigo3,5UN/70MZN; artigo anterior permanece1,5UN/75MZN de propriedade total. Não somar quantidades de artigos diferentes; total monetário desses dois artigos145MZN. Sem novos tipos de imposto, salários, dinheiro, fiscalidade real ou valorização histórica. Contas/regras novas são apenas QA e têm conferência distinta. As alterações da origem, lote, contagem, taxa ou autoridade recusam a conferência antiga. O período2026 da apresentação conserva-se aberto; o fecho completo será ensaiado com rollback, sem reabertura. ## Provas e condições de entrega - Ecrãs no mesmo SGF8085, selecção explícita de origem/destino/lotes, impacto antes de confirmar e recuperação do mesmo pedido. Não criar outra demonstração. - Isolamento de empresa/unidade/armazém, recusa de auto-revisão, revogação, lote expirado/retido, versões antigas e soma incompatível de contagem. - Duas recepções concorrentes não excedem a parcela restante; mesma chave não duplica eventos, movimentos ou lançamentos; erro após writer reverte também o recibo e permite recuperação. - Saldo disponível/em trânsito/próprio e quantidades por lote reconciliam com o livro único; transferências não são contabilizadas como consumo. Ajuste e valorização conservam ligação à contagem/lotes e à taxa revista. - Reutilizar provas válidas; testar apenas as fronteiras alteradas e o percurso novo. Sem índices no destino ou alegação de carga/implantação por inferência. - Preservar16 lançamentos actuais, percurso C01–C10, seis registos protegidos, cache bloqueada e trabalho alheio. Sem publicação, candidata de Compras, SGC, credenciais públicas, novos servidores/bases/contas ou concessões reais. A aprovação deste recorte abrange a implementação, as sete concessões de funções nativas acima e os dois direitos SGF apenas nos perfis QA indicados, os novos dados fictícios, regras/conta artificiais e sua disponibilização limitada depois das provas. Não será pedida nova decisão por campo/teste deste mesmo recorte. A revisão visual continua separada: a ferramenta interrompeu o controlo por não conseguir determinar o URL do navegador e não será contornada.