Pular para o conteúdo principal

CD_LEITOR - Código do Leitor de Código de Barras

Tela de configuração: ADM012 — Parâmetros do Usuário
Localização: Aba "Parâmetros do Usuário"
Tabela: PARMUSUARIO.CD_LEITOR
Tipo: INTEGER (DOM_INTEGER)
FK: RPARMUSUARIO_PARMCODBARRASERIAL → PARMCODBARRASERIAL(CD_LEITOR)
Lookup: <F9> — pesquisa na tabela PARMCODBARRASERIAL
Componente: edtCD_LEITOR (TDBEdit)

Telas impactadas​

TelaDescriçãoImpacto
ADM012Parâmetros do UsuárioTela principal de configuração do campo
ADM017Cadastro de Leitores (PARMCODBARRASERIAL)Tela onde os leitores são cadastrados; registro deve existir aqui antes de ser vinculado no ADM012
ADM013Duplicação de UsuárioAo duplicar um usuário, o CD_LEITOR é copiado para o novo registro

Campos envolvidos​

CampoTabelaTipoObservação
CD_LEITORPARMUSUARIOINTEGERFK para PARMCODBARRASERIAL
DS_LEITORPARMUSUARIOVARCHARCampo descritivo (populado via JOIN, não editável no ADM012)
CD_LEITORPARMCODBARRASERIALINTEGER PKTabela de origem dos leitores válidos
DS_LEITORPARMCODBARRASERIALVARCHARDescrição do leitor
DS_PORTAPARMCODBARRASERIALVARCHARPorta do leitor

Opções disponíveis​

O que fazDetalhe
EditávelCampo livre para digitação de código ou seleção via <F9>
ObrigatórioNão — pode ficar vazio (campo nullable no schema)
ValidaçãoSe preenchido, o código deve existir em PARMCODBARRASERIAL, senão gera exceção
FKRPARMUSUARIO_PARMCODBARRASERIAL → PARMCODBARRASERIAL(CD_LEITOR)

Vinculação a um leitor (valor preenchido)​

Simulação passo a passo​

  1. Acesse [ADM012] — Parâmetros do Usuário.
  2. Selecione o registro do usuário desejado.
  3. No campo Código do Leitor, pressione <F9>.
  4. Na tela de pesquisa, localize o leitor desejado pela descrição (ex: "Leitor USB Logitech 1200").
  5. Selecione o leitor e confirme.
  6. O campo é preenchido com o código do leitor (ex: 1) e a descrição correspondente aparece na grade.
  7. Salve o registro.

Resultado esperado: O usuário passa a ter um leitor de código de barras associado. Processos de leitura de código que consultam este parâmetro usarão o leitor configurado.

Exceção / Importante: O leitor selecionado deve estar previamente cadastrado na tela ADM017 (Cadastro de Leitores). Se o código digitado ou selecionado não existir em PARMCODBARRASERIAL, o sistema gera a exceção: "O Leitor não está Cadastrado [ADM017]!".

Leitor não configurado (campo vazio)​

Simulação passo a passo​

  1. Acesse [ADM012] — Parâmetros do Usuário.
  2. Selecione o registro do usuário desejado.
  3. Limpe o campo Código do Leitor deixando-o em branco.
  4. Salve o registro.

Resultado esperado: O usuário fica sem leitor associado. Operações que dependem de leitor usarão o leitor padrão do sistema ou não terão restrição de dispositivo.

Duplicação de usuário: Ao duplicar um usuário via ADM013, o valor de CD_LEITOR é copiado integralmente para o novo registro. Se o usuário original tinha leitor configurado, o novo também terá.

Regra Geral de Validação​

Se CD_LEITOR preenchido:
→ SELECT DS_LEITOR FROM PARMCODBARRASERIAL WHERE CD_LEITOR = :valor
→ Se encontrou: preenche campo descritivo DS_LEITOR
→ Se não encontrou: Raise Exception "O Leitor não está Cadastrado [ADM017]!"

Se CD_LEITOR vazio:
→ Limpa campo descritivo DS_LEITOR

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoAção
edtCD_LEITORKeyDownsource/ADM012/UADM012.pas:775Abre pesquisa <F9> em PARMCODBARRASERIAL para selecionar leitor
tabPARMUSUARIOCD_LEITORValidatesource/ADM012/UdmADM012.pas:467Valida existência do leitor em PARMCODBARRASERIAL, preenche DS_LEITOR ou gera exceção
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas:472Copia CD_LEITOR ao duplicar usuário

Candidatas por uso da tabela (sem referência direta ao campo em Scripts/)​

As procedures abaixo utilizam a tabela PARMUSUARIO, mas não foi encontrada referência direta ao campo CD_LEITOR nos scripts SQL do repositório. Devem ser validadas caso a contexto de leitura do parâmetro seja expandido:

  • CANCELA_NOTAFISCAL (Scripts/CANCELA_NOTAFISCAL.sql)
  • CONTROLE_CAIXA (Scripts/CONTROLE_CAIXA.sql)
  • GERA_ETIQUETABALANCA (Scripts/GERA_ETIQUETABALANCA.sql)
  • PERMISSAO_CAIXA (Scripts/PERMISSAO_CAIXA.sql)
  • RETORNA_IMPRESSORAUSUARIO (Scripts/RETORNA_IMPRESSORAUSUARIO.sql)
  • VALIDA_CODIGOBARRA (Scripts/VALIDA_CODIGOBARRA.sql — usa PARMUSUARIO no contexto de validação; pode ler CD_LEITOR em runtime)
  • VALIDA_LIBERACAOUSUARIO (Scripts/VALIDA_LIBERACAOUSUARIO.sql)
  • VERIFICA_BLOQUEIO (Scripts/VERIFICA_BLOQUEIO.sql)
  • VIEW_DOCUMENTOSBLOQUEADOS (Scripts/VIEW_DOCUMENTOSBLOQUEADOS.sql)

Tabela Comparativa Resumida​

ConfiguraçãoComportamento
VazioNenhum leitor vinculado ao usuário; processos usam leitor padrão ou não restringem dispositivo
PreenchidoLeitor específico vinculado; deve existir em ADM017; validação obrigatória no save