Pular para o conteúdo principal

ST_BLOQCLIENTETRANSFPEDIDO - Bloquear Cliente na Transferência entre Empresas

Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 2 Tabela: PARMFATUR.ST_BLOQCLIENTETRANSFPEDIDO Tipo: Checkbox (S / N) Valor padrão: N (Desmarcado)

Telas impactadas​

TelaDescriçãoImpacto
MPD002Pedido de VendaBloqueia o campo Cliente (CD_PESSOA) quando o pedido é identificado como transferência entre empresas

Campos envolvidos​

CampoTabelaEfeito
CD_PESSOAPEDIDOTornado somente leitura — não pode ser alterado após a detecção de transferência

Opções disponíveis​

S — Marcado (Bloqueia Cliente)​

O que fazDetalhe
Bloqueia o campo ClienteQuando o pedido é identificado como transferência entre empresas, o campo CD_PESSOA é travado para edição
Independente de ST_TRANSFERENCIAFunciona mesmo se ST_TRANSFERENCIA = 'N'
ComportamentoTorna edtCD_PESSOA ReadOnly, altera cor/fonte e remove TabStop

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros → Opção 2 e marque "Bloquear Cliente na Transferência entre Empresas [MPD002]".
  2. Salve os parâmetros (<F9> ou botão Salvar).
  3. Abra um Pedido de Venda na tela MPD002.
  4. Digite o número de um pedido e pressione <Tab> para sair do campo.
  5. Confirme "Sim" na pergunta "Este Pedido é uma Transferência entre Empresas?" — ou o sistema detecte automaticamente (matriz/filial pelo CNPJ).
  6. Observe que o campo Cliente fica travado (cor alterada, não recebe foco por <Tab>).

Resultado esperado: O campo Cliente não pode ser alterado enquanto o pedido permanecer aberto. Isso evita que o operador troque o cliente em um pedido de transferência entre empresas.

Exceção / Importante: Ao salvar e reabrir o pedido, se ST_TRANSFERENCIAEMPRESAS = 'S' no registro, o campo será bloqueado novamente automaticamente na abertura. Se o operador precisar alterar o cliente, é necessário desmarcar a transferência ou cancelar o pedido e criar um novo.

N — Desmarcado (Não Bloqueia Cliente por este Parâmetro)​

O que fazDetalhe
Não bloqueia o campo Cliente por esta flagO bloqueio passa a depender exclusivamente de ST_TRANSFERENCIA
DependênciaSe ST_TRANSFERENCIA for N, o campo Cliente ficará livre mesmo em transferências

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros → Opção 2 e mantenha desmarcado o checkbox.
  2. Salve os parâmetros.
  3. Abra um Pedido de Venda na tela MPD002.
  4. Digite o número de um pedido e confirme a transferência entre empresas.
  5. Com ST_TRANSFERENCIA (configurado em MFA001 → Parâmetros → Opção 2) igual a N, o campo Cliente permanecerá editável.

Resultado esperado: O campo Cliente permanece livre para alteração, a menos que ST_TRANSFERENCIA esteja em S ou C (que possuem bloqueio próprio).

Regra de Bloqueio Combinada​

O bloqueio do campo CD_PESSOA em MPD002 obedece à condição OR:

ST_TRANSFERENCIA = 'S' OU ST_TRANSFERENCIA = 'C' OU ST_BLOQCLIENTETRANSFPEDIDO = 'S'
ST_TRANSFERENCIAST_BLOQCLIENTETRANSFPEDIDOCampo Cliente bloqueado?
NNNão
NSSim
SNSim (por ST_TRANSFERENCIA)
SSSim (ambos)
CNSim (por ST_TRANSFERENCIA)
CSSim (ambos)

ST_TRANSFERENCIA (configurado em MFA001 → Parâmetros → Opção 2) controla o comportamento geral de transferência entre empresas. ST_BLOQCLIENTETRANSFPEDIDO atua de forma independente para forçar o bloqueio do cliente.

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoLinhaDescrição
TdmMFA001.tabPARMFATURAfterInsertUdmMFA001.pas587Atribui valor padrão 'N' ao campo
TfrmMPD002.edtNR_PEDIDOExitUMPD002.pas4296Verifica o parâmetro ao sair do campo de pedido
TfrmMPD002.edtNR_PEDIDOExitUMPD002.pas4313Re-verifica ao abrir pedido já marcado como transferência
TdmMPD002.tabPEDIDOCD_PESSOAValidateUdmMPD002.pas1814Verifica o parâmetro na validação do campo Cliente
TdmMPD002.BuscaParametros_MPD002UdmMPD002.pas5756Carrega o parâmetro na lista ParmFatur

Referências SQL diretas ao campo​

Nenhuma procedure/view SQL em Scripts/ referencia diretamente a coluna ST_BLOQCLIENTETRANSFPEDIDO. O parâmetro é consumido exclusivamente nas rotinas Delphi listadas acima.