Pular para o conteúdo principal

ST_BLOQLANCTOCLIENTEVENDEDOR — Restrição de Clientes por Vendedor

Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Aba Geral → grupo Clientes Tabela: PARMFATUR.ST_BLOQLANCTOCLIENTEVENDEDOR Tipo: CHAR(1) — Combobox (Sim / Não) Valor padrão: N (Não)

Resumo​

Controla se o sistema restringe a visualização de clientes/pessoas ao vendedor vinculado ao usuário logado. Quando ativo, um vendedor só enxerga os clientes que possuam vínculo com ele nas tabelas PESSOAVENDEDOR ou ENDERECOPESSOA.

Telas impactadas​

Toda tela que utilize a procedure VIEW_PESSOARESTRITA para filtrar pessoas respeitará esta configuração (ex.: consultas de clientes em telas de faturamento e vendas).

Campos envolvidos​

CampoTabelaDescrição
ST_BLOQLANCTOCLIENTEVENDEDORPARMFATURParâmetro principal (este documento)
CD_CONSUMIDORPARMFATURCódigo do cliente "Consumidor Final" — sempre liberado
CD_PESSOAUSUARIOVínculo do usuário a um vendedor
CD_VENDEDORPESSOAVENDEDORVendedor vinculado ao cliente
CD_VENDEDORENDERECOPESSOAVendedor vinculado ao endereço do cliente

Opções disponíveis​

N — Não (padrão)​

O que fazDetalhe
Sem restrição de clientes por vendedorQualquer usuário visualiza todos os clientes, independentemente de vínculo

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros de Faturamento → Aba Geral.
  2. No campo Clientes, selecione Não.
  3. Salve os parâmetros (<F9> ou botão Salvar).
  4. Em qualquer tela de faturamento/vendas, abra a busca de clientes.
  5. Digite o nome ou código de qualquer cliente.

Resultado esperado: Todos os clientes da base são exibidos, sem filtragem por vendedor.


S — Sim​

O que fazDetalhe
Restringe visualização de clientes ao vendedor do usuário logadoVendedores só enxergam clientes vinculados a si; consumidores finais e usuários não-vendedores não sofrem restrição

Simulação passo a passo​

  1. Acesse MFA001 → Parâmetros de Faturamento → Aba Geral.
  2. No campo Clientes, selecione Sim.
  3. Salve os parâmetros (<F9> ou botão Salvar).
  4. Logue com um usuário que esteja vinculado a um vendedor (ex.: usuário "001" vinculado ao vendedor "10").
  5. Em qualquer tela de faturamento/vendas, abra a busca de clientes.
  6. Digite o nome de um cliente que tenha vínculo com o vendedor "10" (em PESSOAVENDEDOR ou ENDERECOPESSOA).

Resultado esperado: O cliente aparece normalmente na lista.

  1. Agora busque um cliente que não tenha vínculo com o vendedor "10".

Resultado esperado: O cliente não aparece na listagem — ele está filtrado pela restrição.

Exceção / Importante:

  • O cliente definido como Consumidor Final (campo CD_CONSUMIDOR de PARMFATUR) é sempre visível, mesmo com a restrição ativa.
  • Se o usuário logado não for vendedor (ou seja, não tem CD_PESSOA em USUARIO que corresponda a um registro em VENDEDOR), a restrição não se aplica e todos os clientes ficam visíveis.
  • Se o cliente não possui nenhum vendedor associado em PESSOAVENDEDOR nem em ENDERECOPESSOA, a restrição também não se aplica — ele fica visível para todos.

Regra Geral​

A lógica completa da restrição está na procedure SQL VIEW_PESSOARESTRITA, que segue esta ordem de verificação:

  1. Se ST_BLOQLANCTOCLIENTEVENDEDOR = 'N' → libera tudo (sem restrição).
  2. Se a pessoa é o Consumidor Final (CD_CONSUMIDOR) → libera.
  3. Se o usuário logado não é vendedor → libera tudo.
  4. Se o cliente não tem nenhum vendedor vinculado (em PESSOAVENDEDOR e ENDERECOPESSOA) → libera.
  5. Se o usuário é vendedor → verifica se o cliente está vinculado a ele:
    • Primeiro busca vínculo em PESSOAVENDEDOR.
    • Se não encontrar, busca em ENDERECOPESSOA (pelo campo CD_VENDEDOR).
    • Só retorna o cliente se houver vínculo.

Procedures impactadas​

Rotinas Delphi​

RotinaArquivoEvidência
TdmMFA001.tabPARMFATURAfterInsertsource/MFA001/UdmMFA001.pasAtribui valor padrão 'N' ao campo ao criar novo registro de parâmetros

Referência SQL direta ao campo​

Procedure/ViewArquivoEvidência
VIEW_PESSOARESTRITAScripts/VIEW_PESSOARESTRITA.sqlLê ST_BLOQLANCTOCLIENTEVENDEDOR de PARMFATUR e aplica toda a lógica de restrição de clientes por vendedor

Candidatas por uso da tabela​

As procedures abaixo utilizam PARMFATUR, mas não referenciam diretamente o campo ST_BLOQLANCTOCLIENTEVENDEDOR:

ATUALIZA_PESSOA, ATUALIZA_PRECOVENDA, BUSCAPRECORECAP, CALCULA_CENTRORESULT, CALCULA_CENTRORESULTITEM, CALCULA_COMISSAO, CALCULA_COMISSAO_V2, CALCULA_JUROVENDA, CALCULA_MAQUINA, CALCULA_MAQUINAFICHA, CANCELA_MESTRA, CANCELA_NOTAFISCAL, CONFIRMA_ORDEMSERVICO, CONFIRMA_ORDEMSERVICOMETAL, CONSOME_LOTEMATERIAPRIMA, CREDITOPERIODICO_AI0, CREDITOPERIODICOGRUPO_AI0, EXPORTACAO_ALLABOR, EXPORTACAO_DOMINIOCADASTROS, EXPORTACAO_DOMINIOCUPOM.

Parâmetros relacionados​

ParâmetroDescriçãoConfigurado em
ST_VINCULACLIENTEVENDEDORVínculo automático de cliente ao vendedor no cadastro de pessoaMFA001 — Parâmetros de Faturamento, Aba Geral