CD_REGIAOCOMERCIAL — Região Comercial do Parâmetro de Vendedor
Tela de configuração: MFA007 — Parâmetros de Vendedor Tabela:
PARMVENDEDOR.CD_REGIAOCOMERCIAL(INTEGER) Controle:edtCD_REGIAOCOMERCIAL(edit com lookup) Valor padrão: preenchido via lookup (Resultado[1])
Telas impactadas
| Tela | Rotina | Impacto |
|---|---|---|
| MFA007 | edtCD_REGIAOCOMERCIALKeyDown, ConsultaRegistro | Entrada e validação do campo; busca duplicidade |
| MFA006 | edtCD_REGIAOCOMERCIALKeyDown, ConsultaRegistro | Campo equivalente na tela de Parâmetros de Tabela de Preço |
| MNF002 | edtCD_CONDPAGTOExit, tabNOTACD_ENDERECOValidate | Herda região do endereço da pessoa na nota fiscal |
| CPD012 | btnFiltraAtendimentosClick, gridREGIAOKeyDown | Filtro por região comercial em consultas |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
CD_REGIAOCOMERCIAL | PARMVENDEDOR | INTEGER | Região comercial associada ao parâmetro do vendedor |
CD_VENDEDOR | PARMVENDEDOR | INTEGER (NOT NULL) | Vendedor obrigatório do parâmetro |
CD_PESSOA | PARMVENDEDOR | INTEGER | Pessoa (cliente) do parâmetro |
CD_GRUPO | PARMVENDEDOR | INTEGER | Grupo de produto do parâmetro |
CD_ITEM | PARMVENDEDOR | INTEGER | Produto do parâmetro |
CD_MARCA | PARMVENDEDOR | INTEGER | Marca do parâmetro |
CD_REGIAOCOMERCIAL | REGIAOCOMERCIAL | INTEGER (PK) | Tabela mestre de regiões comerciais |
Opções disponíveis
O campo aceita qualquer código válido da tabela REGIAOCOMERCIAL. Não há opções fixas — o valor é selecionado via lookup.
Preenchimento com Região Comercial
| O que faz | Detalhe |
|---|---|
| Editável | Sim, campo de digitação livre com lookup <F9> |
| Obrigatório individualmente | Não, mas ao menos um entre Região, Grupo, Pessoa ou Produto deve ser informado |
| Validação | Verifica existência na tabela REGIAOCOMERCIAL |
| Duplicidade | ConsultaRegistro verifica combinação idêntica antes de gravar |
Simulação passo a passo
- Acesse a tela MFA007 — Parâmetros de Vendedor.
- Clique em Novo — o foco vai para o campo Região Comercial.
- Pressione
<F9>para abrir a janela de pesquisa de regiões comerciais. - Selecione a região desejada (ex.: "Região Sul", código
3). - Informe o Vendedor obrigatório (ex.: vendedor "Carlos", código
10). - Opcionalmente preencha Pessoa, Grupo, Produto ou Marca para refinar o parâmetro.
- Clique em Salvar.
Resultado esperado: O registro em PARMVENDEDOR é gravado com CD_REGIAOCOMERCIAL = 3, CD_VENDEDOR = 10 e os demais campos informados. Esse parâmetro será utilizado na resolução de tabela de preço e cálculo de comissão.
Exceção / Importante: Se nenhum dos campos Região Comercial, Grupo, Pessoa ou Produto for preenchido, o sistema exibe a mensagem "É Obrigatório informar a Região Comercial, Grupo, Pessoa ou Produto!" ao tentar salvar.
Campo vazio (NULL) — Parâmetro geral (sem região)
| O que faz | Detalhe |
|---|---|
| Permitido | Sim, desde que outro campo (Grupo, Pessoa, Produto) esteja preenchido |
| Comportamento na consulta de preço | COALESCE(CD_REGIAOCOMERCIAL, -1) = -1 equivale a "qualquer região" (coringa) |
| Peso na prioridade | Quando NULL, adiciona 0 ao score de prioridade (menor especificidade) |
Simulação passo a passo
- Acesse a tela MFA007 — Parâmetros de Vendedor.
- Clique em Novo.
- Deixe o campo Região Comercial vazio.
- Informe o Vendedor obrigatório (ex.: código
10). - Preencha ao menos um dos campos: Grupo, Pessoa ou Produto (ex.: Produto código
500). - Clique em Salvar.
Resultado esperado: O registro é salvo com CD_REGIAOCOMERCIAL = NULL, significando que o parâmetro se aplica a qualquer região comercial. Na resolução de tabela de preço, esse registro terá menor prioridade que um registro com região específica.
Regra Geral de Prioridade
Na procedure RETORNA_TABPRECO, a região comercial tem peso 1 no score de prioridade (somado com outros critérios como Item = 20, Pessoa = 10, Vendedor = 1, Grupo = 1, etc.). Registros com CD_REGIAOCOMERCIAL preenchido têm prioridade maior sobre registros sem região (NULL).
Regra de Duplicidade
Antes de gravar, a rotina ConsultaRegistro verifica se já existe um registro em PARMVENDEDOR com a mesma combinação de CD_REGIAOCOMERCIAL, CD_GRUPO, CD_MARCA, CD_PESSOA e CD_ITEM. Se encontrar, o sistema posiciona no registro existente em vez de criar um novo.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
TfrmMFA007.edtCD_REGIAOCOMERCIALKeyDown | UMFA007.pas | Lookup <F9> na tabela REGIAOCOMERCIAL |
ConsultaRegistro | UMFA007.pas | Verifica duplicidade usando CD_REGIAOCOMERCIAL |
TfrmMFA007.btnNovoClick | UMFA007.pas | Posiciona foco no campo ao criar novo registro |
TdmMFA007.tabPARMVENDEDORCD_REGIAOCOMERCIALValidate | UdmMFA007.pas | Valida existência na tabela REGIAOCOMERCIAL |
TdmMFA007.tabPARMVENDEDORBeforePost | UdmMFA007.pas | Exige ao menos um campo (Região, Grupo, Pessoa, Produto) |
Referências SQL diretas ao campo
| Procedure/View | Arquivo | Uso |
|---|---|---|
RETORNA_TABPRECO | RETORNA_TABPRECO.sql | Recebe I_CD_REGIAOCOMERCIAL como parâmetro de entrada; usa no COALESCE para matching e peso 1 na ordenação de prioridade |
GERA_COMISSAOTABPRECO | GERA_COMISSAOTABPRECO.sql | Filtra CD_REGIAOCOMERCIAL IS NULL na busca de tabela de comissão por vendedor |
INSERE_ITEMPEDIDO_SERVCANALETA | INSERE_ITEMPEDIDO_SERVCANALETA.sql | Usa COALESCE(P.CD_REGIAOCOMERCIAL, -1) na composição de prioridade |
Candidatas por uso da tabela (sem referência direta ao campo)
| Procedure | Arquivo | Observação |
|---|---|---|
ATUALIZA_PESSOA | ATUALIZA_PESSOA.sql | Faz UPDATE PARMVENDEDOR mas não referencia CD_REGIAOCOMERCIAL diretamente |