CD_REGIAOCOMERCIAL — Região Comercial
Tela de configuração: MFA006 — Parâmetros de Tabela de Preço Tabela:
PARMTABPRECO.CD_REGIAOCOMERCIALTipo:INTEGER(opcional) Valor padrão: sem valor (campo fica em branco) Cadastro master: TFA014 — Região Comercial (REGIAOCOMERCIAL)
Visão geral
O campo CD_REGIAOCOMERCIAL define, dentro de um registro de parâmetro de tabela de preço, a região comercial à qual o preço se aplica. Quando preenchido, o sistema filtra/associa preços apenas para endereços de clientes pertencentes àquela região comercial. Quando deixado em branco, o parâmetro não é restringido por região.
A região comercial é um agrupamento geográfico de municípios (tabela MUNICIPIOREGIAOCOMERCIAL) vinculado a um vendedor e área comercial, usado para segmentar precificação e logística.
Telas impactadas
| Tela | Descrição |
|---|---|
| MFA006 | Parâmetros de Tabela de Preço — tela principal deste parâmetro |
| MFA007 | Parâmetros de Vendedor — campo CD_REGIAOCOMERCIAL em PARMVENDEDOR |
| CPD012 | Consulta de atendimentos — filtro por região comercial |
| MCB015 | Importação de dados — filtro e vinculação por região comercial |
| MEQ042 | Parâmetros de equipamentos — validação de região comercial |
| MNF002 | Nota Fiscal — busca região comercial do endereço do cliente |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
CD_REGIAOCOMERCIAL | PARMTABPRECO | INTEGER | Código da região comercial (FK para REGIAOCOMERCIAL) |
DS_REGIAOCOMERCIAL | PARMTABPRECO | — | Campo virtual exibido na tela (descrição da região) |
CD_REGIAOCOMERCIAL | REGIAOCOMERCIAL | INTEGER | Chave primária da tabela de regiões comerciais |
DS_REGIAOCOMERCIAL | REGIAOCOMERCIAL | VARCHAR(60) | Nome/descrição da região comercial |
Opções disponíveis
O campo CD_REGIAOCOMERCIAL não possui lista fixa de opções (não é combo/radio). Trata-se de um campo editável do tipo lookup, onde o usuário digita um código ou pesquisa via <F9>.
Comportamento: Preenchido com código válido
| O que faz | Detalhe |
|---|---|
| Restringe o parâmetro de preço | O registro de PARMTABPRECO passa a se aplicar apenas a clientes/endereços associados à região comercial informada |
| Editável | Sim, campo de edição livre |
| Exige | Código válido existente na tabela REGIAOCOMERCIAL |
| Restrição | Se o código não existir, o sistema exibe erro: "A Região Comercial não está Cadastrada [TFA014]!" |
Simulação passo a passo
- Acesse MFA006 — Parâmetros de Tabela de Preço.
- Crie ou edite um registro de parâmetro.
- No campo Região Comercial, digite um código válido (ex:
10). - Saia do campo (pressione
<Tab>ou clique em outro campo). - O sistema consulta a tabela
REGIAOCOMERCIALe exibe a descrição ao lado (ex: "SUL"). - Preencha os demais campos obrigatórios (tabela de preço, etc.) e salve.
Resultado esperado: O registro é salvo. Ao gerar pedidos/notas para clientes cujo endereço pertence à região comercial 10, o sistema utiliza este parâmetro de preço.
Comportamento: Deixado em branco (nulo)
| O que faz | Detalhe |
|---|---|
| Não restringe por região | O parâmetro se aplica independentemente da região comercial do cliente |
| Editável | Sim |
| Exige | Nenhum (campo opcional) |
| Restrição | Pelo menos um campo do grupo de filtros deve estar preenchido (ver seção Validação) |
Simulação passo a passo
- Acesse MFA006 — Parâmetros de Tabela de Preço.
- Crie ou edite um registro de parâmetro.
- Deixe o campo Região Comercial em branco.
- Preencha pelo menos outro campo do grupo (ex: Empresa, Estado, Vendedor, Pessoa, Produto, Grupo, etc.).
- Preencha a Tabela de Preço e salve.
Resultado esperado: O registro é salvo sem restrição de região comercial. Ele se aplica a qualquer cliente/endereço, respeitando os demais filtros preenchidos.
Comportamento: Pesquisa via <F9>
| O que faz | Detalhe |
|---|---|
| Abre janela de pesquisa | Lista todas as regiões comerciais cadastradas |
| Colunas exibidas | Descrição (DS_REGIAOCOMERCIAL) e Código (CD_REGIAOCOMERCIAL) |
| Editável | O usuário seleciona um registro da lista |
Simulação passo a passo
- Acesse MFA006 — Parâmetros de Tabela de Preço.
- Posicione o cursor no campo Região Comercial.
- Pressione
<F9>. - Na janela de pesquisa, localize a região desejada (ex: digite "NORTE" no filtro).
- Selecione o registro desejado e confirme.
- O código é preenchido automaticamente no campo.
Resultado esperado: O campo é preenchido com o código da região selecionada e a descrição é exibida ao lado.
Regras de validação
Validade do código (Field Validate)
Ao sair do campo com valor preenchido, o sistema executa:
SELECT DS_REGIAOCOMERCIAL
FROM REGIAOCOMERCIAL
WHERE CD_REGIAOCOMERCIAL = :codigo_informado
- Se encontrado: preenche o campo virtual
DS_REGIAOCOMERCIALcom a descrição. - Se não encontrado: dispara exceção "A Região Comercial não está Cadastrada [TFA014]!".
Validação BeforePost — Pelo menos um filtro obrigatório
Ao salvar o registro (BeforePost), o sistema verifica se todos os campos de filtro estão vazios simultaneamente. Se estiverem, exibe:
"É Obrigatório informar a Condição de Pagamento, Empresa, Estado, Vendedor, Região Comercial, Tipo de Pessoa, Pessoa, Produto, Grupo, Sub Grupo ou Quantidade de Produtos!"
O campo CD_REGIAOCOMERCIAL faz parte deste grupo. Portanto, se for o único campo preenchido (além da tabela de preço), o registro é válido.
Consulta de duplicidade (ConsultaRegistro)
Ao sair do campo, se o dataset estiver em modo de inserção/edição, o sistema monta uma consulta em PARMTABPRECO comparando todos os campos de filtro preenchidos (incluindo CD_REGIAOCOMERCIAL) para verificar se já existe um registro idêntico. Se existir, carrega o registro existente para edição.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Linha | Comportamento |
|---|---|---|---|
TfrmMFA006.edtCD_REGIAOCOMERCIALKeyDown | UMFA006.pas | 439 | Trata <F9> para abrir pesquisa de regiões comerciais |
TfrmMFA006.edtCD_REGIAOCOMERCIALExit | UMFA006.pas | 709 | Dispara ConsultaRegistro ao sair do campo (se preenchido) |
TdmMFA006.tabPARMTABPRECOCD_REGIAOCOMERCIALValidate | UdmMFA006.pas | 200 | Valida o código contra REGIAOCOMERCIAL e preenche descrição |
TdmMFA006.tabPARMTABPRECOBeforePost | UdmMFA006.pas | 106 | Verifica se pelo menos um filtro está preenchido |
ConsultaRegistro | UMFA006.pas | 236 | Monta WHERE incluindo CD_REGIAOCOMERCIAL para checar duplicidade |
Referências SQL diretas ao campo em Scripts/
| Procedure/View | Arquivo | Linha | Observação |
|---|---|---|---|
RETORNA_TABPRECO | RETORNA_TABPRECO.sql | 8 | Parâmetro I_CD_REGIAOCOMERCIAL — função que retorna preço considerando região |
GERA_COMISSAOTABPRECO | GERA_COMISSAOTABPRECO.sql | 90 | Filtra registros com CD_REGIAOCOMERCIAL IS NULL |
INSERE_ITEMPEDIDO_SERVCANALETA | INSERE_ITEMPEDIDO_SERVCANALETA.sql | 80 | Usa COALESCE(P.CD_REGIAOCOMERCIAL, -1) como critério de prioridade |
VERIFICA_BLOQUEIO | VERIFICA_BLOQUEIO.sql | 1121 | Verifica CD_REGIAOCOMERCIAL IS NULL |
EXPORTACAO_ALLABOR | EXPORTACAO_ALLABOR.sql | 54 | Declara variável V_CD_REGIAOCOMERCIAL |
EXPORTACAO_SOVIS | EXPORTACAO_SOVIS.sql | 55 | Declara variável V_CD_REGIAOCOMERCIAL |
PROCESSA_PESSOASOVIS | PROCESSA_PESSOASOVIS.sql | 303 | Seleciona CD_REGIAOCOMERCIAL |
JV_FATANULAPORREGIAOCOMERCIAL | JV_FATANULAPORREGIAOCOMERCIAL.sql | 41 | JOIN em REGIAOCOMERCIAL por região comercial |
JV_FATURAMENTOMENSALPORREGIAO | JV_FATURAMENTOMENSALPORREGIAO.sql | 35 | JOIN em REGIAOCOMERCIAL para relatório |
JV_REGCOMERCIAL_SUBGRUPO | JV_REGCOMERCIAL_SUBGRUPO.sql | 77 | Usa CD_REGIAOCOMERCIAL como código de agrupamento |
JV_REGCOMERCIAL_VENDEDORES | JV_REGCOMERCIAL_VENDEDORES.sql | 45 | Usa CD_REGIAOCOMERCIAL como código de agrupamento |
VIEW_RNF020 | VIEW_RNF020.sql | 143 | Concatena descrição e código da região comercial |
Candidatas por uso da tabela PARMTABPRECO
Estas procedures/views referenciam a tabela PARMTABPRECO mas não citam o campo CD_REGIAOCOMERCIAL diretamente. Podem ser impactadas indiretamente quando a região comercial influencia o filtro de preço.
| Procedure/View | Arquivo | Observação |
|---|---|---|
ATUALIZA_PESSOA | ATUALIZA_PESSOA.sql | UPDATE em PARMTABPRECO |
ATUALIZA_PRECOVENDA | ATUALIZA_PRECOVENDA.sql | SELECT em PARMTABPRECO |
CALCULA_MAQUINA | CALCULA_MAQUINA.sql | SELECT em PARMTABPRECO |
RETORNA_PRECOITEM | RETORNA_PRECOITEM.sql | SELECT em PARMTABPRECO |
TRGAD_PARMTABPRECO | TRGAD_PARMTABPRECO.sql | Trigger de exclusão em PARMTABPRECO |
Exceções e observações importantes
Exceção / Importante: O campo é opcional individualmente, mas pelo menos um dos campos do grupo de filtros (Condição de Pagamento, Empresa, Estado, Vendedor, Região Comercial, Tipo de Pessoa, Pessoa, Produto, Grupo, Subgrupo, Quantidade, Seção, Perfil) deve estar preenchido para que o registro possa ser salvo.
Exceção / Importante: A região comercial cadastrada deve existir na tabela
REGIAOCOMERCIAL(gerenciada pela tela TFA014). O sistema valida o código digitado e rejeita valores inexistentes.
Exceção / Importante: A região comercial do cliente/endereço é definida no cadastro de endereço da pessoa (
ENDERECOPESSOA.CD_REGIAOCOMERCIAL), e não neste parâmetro. Este campo aqui define para qual região o preço se aplica, não onde o cliente está localizado.