Pular para o conteúdo principal

ST_BLOQUEIAPEDIDOSAIDA - Bloquear Pedidos de Faturamento na Etapa Exame Final

Tela de configuração: REC001 - Parâmetros da Recapadora Localização: Parâmetros → Opção 2 Tabela: PARAMRECAP.ST_BLOQUEIAPEDIDOSAIDA Valor padrão: N (Não bloquear) Tipo: CHAR(1), NOT NULL

Telas impactadas​

Tela / MóduloImpacto
REC001 (Parâmetros da Recapadora)Tela de configuração do parâmetro
FECHA_ORDEMPRODUCAORECAPAo fechar a ordem de produção na etapa "Exame Final", invoca VERIFICA_BLOQUEIOPEDIDORECAP que avalia este parâmetro
PEDIDO (tabela)O campo ST_PEDIDO do pedido de faturamento (Saída) recebe 'B' (Bloqueado) e DS_BLOQUEIO é preenchido quando o bloqueio é aplicado

Campos envolvidos​

CampoTabelaTipoDescrição
ST_BLOQUEIAPEDIDOSAIDAPARAMRECAPCHAR(1)Indica se o sistema deve bloquear pedidos de faturamento (tipo Saída) ao fechar a ordem de produção na etapa "Exame Final"

Opções disponíveis​

S - Bloquear Pedidos de Faturamento​

O que fazDetalhe
EditávelCheckbox na aba Opção 2 da tela REC001
ExigeNenhum campo adicional
RestriçãoAfeta apenas pedidos de tipo Saída (TP_PEDIDO = 'S') gerados ao fechar a ordem de produção na etapa Exame Final

Simulação passo a passo​

  1. Acesse REC001 → Parâmetros da Recapadora.
  2. Navegue até a aba Opção 2.
  3. Marque o checkbox Bloquear Pedidos de Faturamento na Etapa Exame Final.
  4. Salve o registro.
  5. Realize um processo de recapagem até a etapa Exame Final.
  6. Feche a ordem de produção (procedure FECHA_ORDEMPRODUCAORECAP).
  7. O sistema invoca VERIFICA_BLOQUEIOPEDIDORECAP, que consulta PARAMRECAP.ST_BLOQUEIAPEDIDOSAIDA:
    • Como o valor é 'S', chama a procedure VERIFICA_BLOQUEIO passando tipo 'S' (Saída) e modo 'P' (Pedido).
  8. Se VERIFICA_BLOQUEIO retornar motivos de bloqueio (ex.: orçamento pendente/reprovado), o pedido de faturamento é atualizado com ST_PEDIDO = 'B' e DS_BLOQUEIO preenchido com a descrição do motivo.

Resultado esperado: O pedido de faturamento (Saída) vinculado à ordem de produção fica com status Bloqueado (ST_PEDIDO = 'B') e a descrição do bloqueio é gravada no campo DS_BLOQUEIO. O usuário visualiza o pedido bloqueado e os motivos correspondentes.

Excecao / Importante: O bloqueio só ocorre se houver motivos válidos retornados pela procedure VERIFICA_BLOQUEIO. Se não houver nenhuma restrição (orçamento aprovado, tabela de preço válida, etc.), o pedido segue normalmente mesmo com o parâmetro ativo. O bloqueio também depende de o pedido de faturamento já ter passado por uma tentativa de desbloqueio prévia ou não ter sido desbloqueado manualmente (campo CD_USUARIODESBL).


N - Não Bloquear (Padrão)​

O que fazDetalhe
EditávelCheckbox na aba Opção 2 da tela REC001
ExigeNenhum campo adicional
RestriçãoNenhuma

Simulação passo a passo​

  1. Acesse REC001 → Parâmetros da Recapadora.
  2. Navegue até a aba Opção 2.
  3. Desmarque o checkbox Bloquear Pedidos de Faturamento na Etapa Exame Final (ou mantenha o valor padrão).
  4. Salve o registro.
  5. Realize um processo de recapagem até a etapa Exame Final.
  6. Feche a ordem de produção.
  7. O sistema invoca VERIFICA_BLOQUEIOPEDIDORECAP, que consulta PARAMRECAP.ST_BLOQUEIAPEDIDOSAIDA:
    • Como o valor é 'N', o bloco de verificação de bloqueio de pedido de saída é ignorado.

Resultado esperado: O pedido de faturamento (Saída) vinculado à ordem de produção não é avaliado para bloqueio nesta etapa. O pedido segue o fluxo normal sem alteração de status.

Regra Geral de Execução​

O parâmetro é avaliado automaticamente pela procedure VERIFICA_BLOQUEIOPEDIDORECAP, que é chamada pela procedure FECHA_ORDEMPRODUCAORECAP durante o fechamento da ordem de produção na etapa Exame Final. A lógica segue este fluxo:

  1. FECHA_ORDEMPRODUCAORECAP gera o pedido de faturamento (Saída) e chama VERIFICA_BLOQUEIOPEDIDORECAP.
  2. VERIFICA_BLOQUEIOPEDIDORECAP consulta PARAMRECAP.ST_BLOQUEIAPEDIDOSAIDA para a empresa.
  3. Se 'S' → chama VERIFICA_BLOQUEIO para identificar motivos de bloqueio.
  4. Se há motivos → atualiza PEDIDO.ST_PEDIDO = 'B' e PEDIDO.DS_BLOQUEIO.
  5. Se 'N' → ignora a verificação de bloqueio de pedido de saída.

Nota: A procedure VERIFICA_BLOQUEIOPEDIDORECAP também consulta o parâmetro STPERMITECOLETATABVENCIDA (também em PARAMRECAP) para verificar tabelas de preço vencidas, independentemente deste parâmetro.

Procedures impactadas​

Rotinas Delphi com referência direta ao parâmetro​

RotinaArquivoLinhaEvidência
TdmREC001.qryCadastroAfterInsertsource/REC001/UdmREC001.pas795Define valor padrão 'N' ao inserir novo registro: qryCadastroST_BLOQUEIAPEDIDOSAIDA.AsString := 'N'
TframeREC001.chkST_BLOQUEIAPEDIDOSAIDAMouseMovesource/REC001/UframeREC001.pas1682Evento de interface (tooltip/status bar)

Referências SQL diretas ao campo ST_BLOQUEIAPEDIDOSAIDA​

Procedure/ViewArquivoLinhaEvidência
VERIFICA_BLOQUEIOPEDIDORECAPScripts/VERIFICA_BLOQUEIOPEDIDORECAP.sql27SELECT PR.ST_BLOQUEIAPEDIDOSAIDA, PR.STPERMITECOLETATABVENCIDA FROM PARAMRECAP PR
VERIFICA_BLOQUEIOPEDIDORECAPScripts/VERIFICA_BLOQUEIOPEDIDORECAP.sql32IF (V_ST_BLOQUEIAPEDIDOSAIDA = 'S') THEN

Chamadora da procedure de bloqueio​

Procedure/ViewArquivoLinhaEvidência
FECHA_ORDEMPRODUCAORECAPScripts/FECHA_ORDEMPRODUCAORECAP.sql886FROM VERIFICA_BLOQUEIOPEDIDORECAP(:V_IDEMPRESA, :O_NRPEDIDO, 'S', :I_ID) A
FECHA_ORDEMPRODUCAORECAPScripts/FECHA_ORDEMPRODUCAORECAP.sql893FROM VERIFICA_BLOQUEIOPEDIDORECAP(:V_IDEMPRESA, :O_NRPEDIDO, 'S', :I_ID) A

Candidatas por uso da tabela PARAMRECAP​

Não foram encontradas referências diretas ao campo ST_BLOQUEIAPEDIDOSAIDA em Scripts/ além das listadas acima. As demais procedures que consultam PARAMRECAP (ex.: GERA_PEDIDOSAIDACARCACA, GERA_NOTAPEDIDO, FECHA_ORDEMPRODUCAORECAPNOTA, entre outras) acessam a tabela para outros campos e não possuem impacto funcional direto neste parâmetro.