CD_ITEM — Produto do Parâmetro de Vendedor
Tela de configuração: MFA007 — Parâmetros de Vendedor Tabela:
PARMVENDEDOR.CD_ITEMTipo:DOM_INTEGER(editável, opcional) Componente:edtCD_ITEM(TDBEdit) +edtDS_ITEM(TDBEdit, somente leitura) Foreign Key:RPARMVENDEDOR_ITEM→ITEM (CD_ITEM)
Resumo
Campo que filtra o produto (item) na regra de atribuição automática de vendedor. Quando preenchido, a combinação de Região Comercial + Grupo + Marca + Pessoa + Produto define qual vendedor será sugerido nas movimentações comerciais (pedidos, notas fiscais). É opcional — faz parte do conjunto de critérios onde ao menos um deve ser informado (Região, Grupo, Pessoa ou Produto).
Telas impactadas
| Tela | Efeito |
|---|---|
| MFA007 | Tela de cadastro do campo — inclusão, alteração e exclusão |
| MFA001/PARFATUR | Não influencia diretamente este campo |
| Telas de pedido/nota (consumidores de PARMVENDEDOR) | Consultam a tabela para definir vendedor por produto |
Campos envolvidos
| Campo | Tabela | Tipo | Obrigatório | Observação |
|---|---|---|---|---|
CD_ITEM | PARMVENDEDOR | INTEGER | Não | Código do produto; FK para ITEM |
DS_ITEM | ITEM | VARCHAR | — | Descrição exibida ao lado do código (lookup) |
Opções disponíveis
| O que faz | Detalhe |
|---|---|
| Campo livre editável | Aceita qualquer código de produto ativo via digitação ou <F9> |
| Opcional | Pode ficar vazio, mas ao menos um dos campos (Região, Grupo, Pessoa ou Produto) deve ser preenchido |
| Valida ativo/inexistente | Rejeita produtos inativos (ST_ATIVO = 'N') ou não cadastrados |
| Antiduplicidade | A combinação (Região + Grupo + Marca + Pessoa + Produto) não pode se repetir |
Preenchido — Produto vincula vendedor a um item específico
Simulação passo a passo
- Acesse a tela MFA007.
- Clique em Novo (
<F5>) ou posicione no campo Região Comercial. - Preencha o campo Produto digitando o código do item ou pressionando
<F9>para abrir a pesquisa de produtos ativos (ST_ATIVO = 'S'). - Selecione o produto desejado na lista, por exemplo o produto de código 1234.
- Preencha o campo Vendedor com o código desejado, por exemplo vendedor 567.
- Clique em Salvar (
<F6>).
Resultado esperado: O registro é gravado com CD_ITEM = 1234 e CD_VENDEDOR = 567. Nas movimentações comerciais que consultam PARMVENDEDOR, quando o item 1234 estiver presente, o vendedor 567 será sugerido (respeitando a precedência de especificidade das regras).
Exceção / Importante: Se o produto informado estiver inativo (
ST_ATIVO = 'N'na tabelaITEM), o sistema exibe a mensagem "O Produto não está Ativo [TPO001]!" e bloqueia a gravação. Se o código não existir na tabelaITEM, exibe "O Produto não está Cadastrado [TPO001]!".
Vazio — Regra sem filtro de produto (genérica)
Simulação passo a passo
- Acesse a tela MFA007.
- Clique em Novo (
<F5>). - Deixe o campo Produto vazio.
- Preencha ao menos um dos campos: Região Comercial, Grupo ou Pessoa. Por exemplo, preencha Grupo com código 10.
- Preencha o campo Vendedor com o código desejado.
- Clique em Salvar (
<F6>).
Resultado esperado: O registro é gravado com CD_ITEM = NULL e CD_GRUPO = 10. Essa regra aplica-se a qualquer produto desde que os demais critérios coincidam (regra mais genérica).
Exceção / Importante: Se Produto, Pessoa, Região Comercial e Grupo estiverem todos vazios simultaneamente, o sistema bloqueia a gravação com a mensagem "É Obrigatório informar a Região Comercial, Grupo, Pessoa ou Produto!".
Duplicidade detectada — Registro já existe para a combinação
Simulação passo a passo
- Acesse a tela MFA007.
- Clique em Novo (
<F5>). - Preencha a mesma combinação de Região, Grupo, Marca, Pessoa e Produto de um registro já existente.
- Ao sair do campo Vendedor (
OnExit), o sistema detecta a duplicidade e reposiciona o grid no registro já cadastrado.
Resultado esperado: O registro não é duplicado. O grid é posicionado sobre o registro existente com a mesma combinação de critérios.
Regra Geral de Validação
| Condição | Comportamento |
|---|---|
CD_ITEM preenchido e produto existe e ativo (ST_ATIVO = 'S') | Preenche DS_ITEM automaticamente; permite gravação |
CD_ITEM preenchido e produto existe mas inativo (ST_ATIVO = 'N') | Erro: "O Produto não está Ativo [TPO001]!" |
CD_ITEM preenchido e produto não existe | Erro: "O Produto não está Cadastrado [TPO001]!" |
CD_ITEM vazio e todos os outros filtros também vazios | Erro: "É Obrigatório informar a Região Comercial, Grupo, Pessoa ou Produto!" |
| Combinação (Região + Grupo + Marca + Pessoa + Produto) já existe | Reposiciona no registro existente, sem duplicar |
Tabela Comparativa Resumida
| Situação do CD_ITEM | Efeito na regra de vendedor |
|---|---|
| Preenchido (produto ativo) | Regra aplica-se somente a esse produto específico |
| Vazio (NULL) | Regra aplica-se a qualquer produto, desde que os demais critérios coincidam |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Evidência |
|---|---|---|
TfrmMFA007.edtCD_ITEMKeyDown | source/MFA007/UMFA007.pas:360-378 | Abre pesquisa <F9> de produtos ativos (ITEM com ST_ATIVO = 'S') |
TdmMFA007.tabPARMVENDEDORCD_ITEMValidate | source/MFA007/UdmMFA007.pas:144-162 | Valida existência e status ativo do produto |
TdmMFA007.tabPARMVENDEDORBeforePost | source/MFA007/UdmMFA007.pas:70-76 | Verifica que ao menos um critério está preenchido (inclui CD_ITEM) |
ConsultaRegistro | source/MFA007/UMFA007.pas:148-153 | Monta SELECT antiduplicidade usando CD_ITEM |
Referências SQL diretas ao campo
Nenhuma stored procedure SQL referencia diretamente PARMVENDEDOR.CD_ITEM. O campo é utilizado apenas pela aplicação Delphi (MFA007).
Candidatas por uso da tabela
| Procedure/View | Arquivo | Observação |
|---|---|---|
ATUALIZA_PESSOA | Scripts/ATUALIZA_PESSOA.sql:307,443 | Atualiza CD_PESSOA e CD_VENDEDOR em PARMVENDEDOR quando pessoa é alterada — não referencia CD_ITEM diretamente |