Files
compras/docs/warehouse-unused-return.md
2026-11-02 20:27:11 +02:00

3.9 KiB

Devolução de excedente ao armazém

02/11/2026 — NATIVE-WAREHOUSE-UNUSED-RETURN-SIM-v1, implementação local sintética, desactivada por defeito (config/stock_returns.php). Não instala candidatas, não altera dados/acessos de demonstrações e não requer SGF remoto.

A requisição interna já autorizada/entregue/recebida fornece a origem. O destinatário original selecciona a linha e declara quantidade não utilizada, evidência e fundamento; não redigita artigo/unidade/armazém. A prévia mostra entrega ainda não devolvida e efeito físico. Outra identidade, com competência de confirmação e armazém, declara a recepção física. Versão, competências, contexto, origem, unidade e livro são conferidos novamente sob bloqueio da empresa. Alterações exigem nova conferência. A retirada pelo preparador e recusa independente pelo armazém encerram a proposta sem efeito físico; não apagam a proposta.

Escrita única pelo artefacto local packages/inventory-return/releases/0.1.0, manifesto 2850a4f5cb678acfe3a9dbc7a7d62eb233bc72722ad0de374681c2679c90557c, verificado em execução. Operação/movimento/decisão/auditoria são atómicos; repetição devolve o efeito original. Reutiliza a sinalização de AutomaticPurchases uma vez dentro da transacção, sem novas regras/aprovações/encomendas. Reversão integral da saída com devolução ligada é recusada para evitar segundo crédito.

Competências configuráveis existentes em OrganizationAccess: warehouse_return_read, warehouse_return_prepare, warehouse_return_confirm (confirmação/recusa requer também warehouse). Sem concessão automática por função/nome. Somente perfis sintéticos na base própria receberam estas competências; nenhumas concessões no piloto ou reais. Interface /stock/devolucoes-internas, ligações condicionais em requisição/histórico, filtros e páginas de 25. Não acrescenta a operação ao formulário genérico de movimentos.

Provas: 19 casos nativos distintos / 440 asserções, mais reversões afectadas 16/81 e observação SGF somente de leitura 1/23; 36/544 no total, sem somar repetições. Recepção real do workflow 10, entrega 5, devolução 3, saldo 8, três movimentos. Concorrência com processos reais verifica espera e repetição única, recusa 409 por quantidade esgotada, retirada/confirmação em ambas as ordens. Limite HTTP local produz 423 sem efeitos; repetição explícita depois da libertação confirma. Falha transaccional e indisponibilidade do artefacto recuperam sem duplicação. O histórico de 51 propostas tem páginas disjuntas e três SELECTs centrais por página de 25, com leitura conjunta dos preparadores.

Relatório e hashes: C:/laragon/www/sgf-tempo/docs/proofs/native-warehouse-return-20261102.json; descrição detalhada: C:/laragon/www/sgf-tempo/docs/NATIVE_WAREHOUSE_RETURN_DELIVERY.md. Bases QA guardadas em PostgreSQL 55439, sem reset. O observador SGF usa fixture arquivada e preservada; não significa instalação operacional nem obrigação de ligação do SGC autónomo ao SGF.

PHPStan dirigido passou; tipos/bundle das páginas e renderização no servidor do histórico HTTP passaram. Build integral privado passou com configuração QA sem fontes remotas/React Compiler opcional; build optimizado predefinido não validado. Revisão visual, interacção no navegador, carga de escrita e implantação pendentes.

Limites: apenas entrega interna, sem lotes, reservas, equipamento/peças ou qualidade/quarentena. Quantidade não utilizada é declaração do destinatário, não consumo técnico verificado pelo SGF. Não corrige material consumido ou devoluções já confirmadas. O histórico de planeamento mantém saídas brutas issue: 5 entregues/3 devolvidas mantém média de 5, saldo físico 8 e novo hash da origem. Previsão por consumo líquido e a sua atribuição temporal não foram implementadas; não reescrever análises aprovadas por arrasto.