Files
SGF/docs/SGF_STOCK_FINAL_SCOPE.md
2026-11-11 09:00:17 +02:00

7.7 KiB
Raw Permalink Blame History

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.