Pular para o conteúdo principal

CD_IMPNOTA - Extrato (Impressora de Nota Fiscal)

Tela de configuração: ADM012 - Parâmetros do Usuário Localização: Aba "Impressoras do Usuário" Campo: PARMUSUARIO.CD_IMPNOTA Tipo: INTEGER (FK → IMPRESSORA.CD_IMPRESSORA) Componente: edtCD_IMPNOTA Label na UI: "Extrato" (internamente usado para impressora de Nota Fiscal)

Telas impactadas​

TelaDescriçãoImpacto
ADM012Parâmetros do UsuárioCadastro direto do parâmetro
RFI001Emissão de Cupom/ECFBusca a impressora padrão do cupom via CD_IMPNOTA; sem valor lança JException
LNF043Modelo 043 — Nota FiscalResolve impressora deNota via JOIN com IMPRESSORA
jCaixaAbertura/controle de caixaCarrega impressora padrão do operador
ADM013Duplicação de UsuárioCopia CD_IMPNOTA do usuário origem

Campos envolvidos​

CampoTabelaTipoRestrição
CD_IMPNOTAPARMUSUARIODOM_INTEGERFK → IMPRESSORA.CD_IMPRESSORA

Behaviour do campo​

O que fazDetalhe
Armazena o código da impressora padrão para notas fiscais do usuárioValor pesquisável via <F9> na tela ADM012
Valida existência da impressora ao salvartabPARMUSUARIOCD_IMPNOTAValidate verifica se CD_IMPRESSORA existe na tabela IMPRESSORA
Preenche DS_IMPNOTA (nome da impressora) automaticamenteExibido como descrição ao lado do campo (join na query do data module)
É opcional (campo nullable)Pode ficar vazio; a exception ocorre somente quando a rotina consumidora exige o valor

Simulação passo a passo​

  1. Acesse a tela ADM012 — Parâmetros do Usuário.
  2. Selecione a aba "Impressoras do Usuário".
  3. Localize o campo "Extrato" (edtCD_IMPNOTA).
  4. Pressione <F9> sobre o campo.
  5. Selecione a impressora desejada na grade (colunas: Nome / Código) e confirme.
  6. Salve o registro (Ctrl+S ou botão Salvar).

Resultado esperado: O código da impressora é gravado em PARMUSUARIO.CD_IMPNOTA e a descrição (nome) é exibida automaticamente ao lado do campo. Se o código informado não existir na tabela IMPRESSORA, uma exceção "A Impressora não está Cadastrada [ADM008]!" é lançada.

Excecao / Importante: O label na tela diz "Extrato", mas o campo é consumido como impressora de Nota Fiscal (TP_IMPRESSORA = 'N') nas rotinas de emissão. O campo real de extrato é CD_IMPEXTRATO (registrado no mesmo data module, consulta com alias DS_IMPEXTRATO).

Rules de validação​

RegraEfeito
Código vazioDS_IMPNOTA é limpo; nenhuma exception no save (campo nullable)
Código informado e inexistente em IMPRESSORAJException → "A Impressora não está Cadastrada [ADM008]!"
FK constraintRPARMUSUARIO_IMPNOTA impede gravação de código inexistente a nível de banco

Procedures impactadas​

Rotinas Delphi com referência direta ao campo​

RotinaArquivoImpacto
edtCD_IMPNOTAKeyDownsource/ADM012/UADM012.pas:621Pesquisa de impressora via <F9> na ADM012
tabPARMUSUARIOCD_IMPNOTAValidatesource/ADM012/UdmADM012.pas:347Valida existência da impressora no momento do save
Conecta_Impressorasource/LNF043/ULNF043.pas:325JOIN IMPRESSORA via CD_IMPNOTA para conectar impressora de nota
Modelo_Cupomsource/RFI001/URFI001.pas:118JOIN IMPRESSORA via CD_IMPNOTA; lança exception se vazio
CarregarCaixasource/jCaixa/UCaixa.pas:312LEFT JOIN para carregar impressora padrão do caixa
TfrmADM013.btnDuplicaUsuarioClicksource/ADM013/UADM013.pas:471Copia CD_IMPNOTA ao duplicar usuário

Scripts SQL com referência direta ao campo​

ProcedureArquivoImpacto
RETORNA_IMPRESSORAUSUARIOScripts/RETORNA_IMPRESSORAUSUARIO.sql:22Retorna CD_IMPNOTA e nome da impressora de nota para TP_IMPRESSORA = 'N'

Candidatas por uso da tabela PARMUSUARIO​

As procedures abaixo acessam PARMUSUARIO mas não citam CD_IMPNOTA literalmente — impacto não confirmado:

CANCELA_NOTAFISCAL, CONTROLE_CAIXA, GERA_ETIQUETABALANCA, PERMISSAO_CAIXA, TRGPARMFATUR_BU, VALIDA_BLOQDESCMAXSUBGRUPO, VALIDA_CODIGOBARRA, VALIDA_LIBERACAOUSUARIO, VALIDA_MODELOBLOQUEIODIASATRASO, VALIDA_MODELOBLOQUEIOPCDESCMAX, VALIDA_MODELOBLOQUEIOVLLIMITE, VERIFICA_BLOQUEIO, VIEW_DOCUMENTOSBLOQUEADOS.

Parametros relacionados​

ParâmetroTelaRelação
CD_IMPCHEQUEADM012Impressora padrão para cheques (mesma aba)
CD_IMPRECIBOADM012Impressora padrão para recibos
CD_IMPDUPLICATAADM012Impressora padrão para duplicatas
CD_IMPETIQUETAADM012Impressora padrão para etiquetas
CD_IMPPEDIDOADM012Impressora padrão para pedidos
CD_IMPRECEITAADM012Impressora padrão para receitas médicas
CD_IMPEXTRATOADM012Impressora padrão para extratos (corresponde funcionalmente ao label "Extrato" da UI)
TP_CAIXAADM012Define o tipo de caixa; pode influenciar quais impressoras são utilizadas