CD_PERFILENTREGADOR — Perfil do Entregador
Tela de configuração: MFA001 — Parâmetros de Faturamento Localização: Parâmetros → Ambos → Opção 1 Tabela:
PARMFATUR.CD_PERFILENTREGADOR(INTEGER, anulável) Valor padrão: nenhum (campo vazio /NULL) Componente:edtCD_PERFILENTREGADOR(TDBEdit — edição livre do código do perfil)
Resumo
Define o código do perfil (PERFIL.CD_PERFIL) que uma Pessoa deve possuir em PESSOAPERFIL para ser selecionada como entregador em Ordens de Carregamento (MPD084) e Viagens de Entrega (MPD097). Quando preenchido, restringe o campo Entregador apenas às pessoas cadastradas com esse perfil.
Telas impactadas
| Tela / Rotina | Contexto | Efeito |
|---|---|---|
| MPD084 — Liberação / Ordem de Carregamento | Validação do campo CD_ENTREGADOROF | Ao informar um entregador, verifica se a pessoa possui o perfil configurado. Se vazio, qualquer pessoa com ao menos um perfil é aceita (COALESCE). |
| MPD097 — Viagem de Entrega | Validação do campo CD_ENTREGADOR | Ao informar um entregador, verifica se a pessoa possui o perfil configurado. Se o parâmetro estiver vazio, nenhuma pessoa será aceita. |
Campos envolvidos
| Campo | Tabela | Descrição |
|---|---|---|
CD_PERFILENTREGADOR | PARMFATUR | Código do perfil exigido para entregadores |
CD_PERFIL | PERFIL | Cadastro de perfis (chave primária) |
CD_PERFIL + CD_PESSOA | PESSOAPERFIL | Vínculo entre pessoa e perfil |
CD_ENTREGADOROF | (tabela temporária MPD084) | Campo de entregador na liberação de carregamento |
CD_ENTREGADOR | (tabela temporária MPD097) | Campo de entregador na viagem de entrega |
Opções disponíveis
Campo vazio (NULL)
| O que faz | Detalhe |
|---|---|
| Libera / bloqueia entregadores | Comportamento difere por tela — veja exceção abaixo |
Simulação passo a passo (MPD084 — Liberação de Carregamento)
- Acesse MFA001 e deixe o campo Perfil do Entregador vazio.
- Salve os parâmetros (<key>F9</key> ou botão Salvar).
- Abra uma Liberação / Ordem de Carregamento (MPD084).
- Informe qualquer pessoa ativa no campo Entregador.
- Confirme a pessoa.
Exceção / Importante: No MPD084 o código usa
COALESCE(PP.CD_PERFILENTREGADOR, PF.CD_PERFIL). Com o parâmetro vazio, a condição resulta emPF.CD_PERFIL = PF.CD_PERFIL(sempre verdadeiro), liberando qualquer pessoa que possua ao menos um registro emPESSOAPERFIL.
Resultado esperado: Qualquer pessoa com perfil cadastrado pode ser selecionada como entregador.
Simulação passo a passo (MPD097 — Viagem de Entrega)
- Acesse MFA001 e deixe o campo Perfil do Entregador vazio.
- Salve os parâmetros.
- Abra uma Viagem de Entrega (MPD097).
- Informe uma pessoa no campo Entregador.
- O sistema exibe a mensagem: "A Pessoa informada deve possuir o Perfil de Entregador! Verifique [TFA001/MFA001]".
Exceção / Importante: No MPD097 o
INNER JOINusa diretamentePP.CD_PERFILENTREGADOR. Se o valor forNULL, o join não retorna registros e todas as pessoas são rejeitadas. Para usar entregadores no MPD097, este parâmetro deve estar preenchido.
Resultado esperado: Nenhuma pessoa é aceita como entregador enquanto o parâmetro estiver vazio.
Código de Perfil preenchido (ex.: 5)
| O que faz | Detalhe |
|---|---|
| Restringe entregadores | Apenas pessoas vinculadas ao perfil informado em PESSOAPERFIL podem ser selecionadas |
Simulação passo a passo
- Acesse MFA001 → Parâmetros → Opção 1.
- No campo Perfil do Entregador, digite o código do perfil, por exemplo
5. - Salve os parâmetros.
- No cadastro de Perfis (tela de configuração do PERFIL), certifique-se de que o perfil
5existe (ex.: "Entregador"). - Na tela de Pessoas, vincule o perfil
5ao entregador desejado viaPESSOAPERFIL. - Abra uma Liberação de Carregamento (MPD084) ou Viagem de Entrega (MPD097).
- Informe o código de uma pessoa com o perfil
5no campo Entregador → a pessoa é aceita normalmente. - Informe o código de uma pessoa sem o perfil
5no campo Entregador → o sistema bloqueia com mensagem de erro.
Resultado esperado: Apenas pessoas que possuem o perfil 5 em PESSOAPERFIL podem ser selecionadas como entregadores em ambas as telas.
Regra geral
| Condição | MPD084 (Liberação) | MPD097 (Viagem de Entrega) |
|---|---|---|
| Parâmetro vazio | Qualquer pessoa com perfil é aceita | Nenhuma pessoa é aceita |
| Parâmetro preenchido | Apenas pessoas com o perfil especificado | Apenas pessoas com o perfil especificado |
| Pessoa sem o perfil | Bloqueia com erro | Bloqueia com erro |
Recomendação: Para consistência entre as telas, sempre preencha este parâmetro com o código do perfil destinado a entregadores. Mantenha o cadastro de perfis e o vínculo
PESSOAPERFILatualizados.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
TdmMPD084.tabLIBERACAOCD_ENTREGADOROFValidate | source/MPD084/UdmMPD084.pas | Valida entregador na Liberação de Carregamento usando COALESCE |
TdmMPD097.tabVIAGEMENTREGACD_ENTREGADORValidate | source/MPD097/UdmMPD097.pas | Valida entregador na Viagem de Entrega via INNER JOIN |
Scripts SQL
Não foi encontrada referência direta ao campo CD_PERFILENTREGADOR em Scripts/. As procedures listadas nas evidências (candidatas por uso da tabela PARMFATUR) não citam o campo literalmente e, portanto, não possuem impacto funcional direto neste parâmetro.