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_BLOQLANCTOCLIENTEVENDEDORTipo: 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
| Campo | Tabela | Descrição |
|---|---|---|
ST_BLOQLANCTOCLIENTEVENDEDOR | PARMFATUR | Parâmetro principal (este documento) |
CD_CONSUMIDOR | PARMFATUR | Código do cliente "Consumidor Final" — sempre liberado |
CD_PESSOA | USUARIO | Vínculo do usuário a um vendedor |
CD_VENDEDOR | PESSOAVENDEDOR | Vendedor vinculado ao cliente |
CD_VENDEDOR | ENDERECOPESSOA | Vendedor vinculado ao endereço do cliente |
Opções disponíveis
N — Não (padrão)
| O que faz | Detalhe |
|---|---|
| Sem restrição de clientes por vendedor | Qualquer usuário visualiza todos os clientes, independentemente de vínculo |
Simulação passo a passo
- Acesse MFA001 → Parâmetros de Faturamento → Aba Geral.
- No campo Clientes, selecione Não.
- Salve os parâmetros (
<F9>ou botão Salvar). - Em qualquer tela de faturamento/vendas, abra a busca de clientes.
- 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 faz | Detalhe |
|---|---|
| Restringe visualização de clientes ao vendedor do usuário logado | Vendedores só enxergam clientes vinculados a si; consumidores finais e usuários não-vendedores não sofrem restrição |
Simulação passo a passo
- Acesse MFA001 → Parâmetros de Faturamento → Aba Geral.
- No campo Clientes, selecione Sim.
- Salve os parâmetros (
<F9>ou botão Salvar). - Logue com um usuário que esteja vinculado a um vendedor (ex.: usuário "001" vinculado ao vendedor "10").
- Em qualquer tela de faturamento/vendas, abra a busca de clientes.
- Digite o nome de um cliente que tenha vínculo com o vendedor "10" (em
PESSOAVENDEDORouENDERECOPESSOA).
Resultado esperado: O cliente aparece normalmente na lista.
- 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_CONSUMIDORdePARMFATUR) é sempre visível, mesmo com a restrição ativa.- Se o usuário logado não for vendedor (ou seja, não tem
CD_PESSOAemUSUARIOque corresponda a um registro emVENDEDOR), a restrição não se aplica e todos os clientes ficam visíveis.- Se o cliente não possui nenhum vendedor associado em
PESSOAVENDEDORnem emENDERECOPESSOA, 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:
- Se
ST_BLOQLANCTOCLIENTEVENDEDOR = 'N'→ libera tudo (sem restrição). - Se a pessoa é o Consumidor Final (
CD_CONSUMIDOR) → libera. - Se o usuário logado não é vendedor → libera tudo.
- Se o cliente não tem nenhum vendedor vinculado (em
PESSOAVENDEDOReENDERECOPESSOA) → libera. - 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 campoCD_VENDEDOR). - Só retorna o cliente se houver vínculo.
- Primeiro busca vínculo em
Procedures impactadas
Rotinas Delphi
| Rotina | Arquivo | Evidência |
|---|---|---|
TdmMFA001.tabPARMFATURAfterInsert | source/MFA001/UdmMFA001.pas | Atribui valor padrão 'N' ao campo ao criar novo registro de parâmetros |
Referência SQL direta ao campo
| Procedure/View | Arquivo | Evidência |
|---|---|---|
VIEW_PESSOARESTRITA | Scripts/VIEW_PESSOARESTRITA.sql | Lê 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âmetro | Descrição | Configurado em |
|---|---|---|
ST_VINCULACLIENTEVENDEDOR | Vínculo automático de cliente ao vendedor no cadastro de pessoa | MFA001 — Parâmetros de Faturamento, Aba Geral |