CD_IMPRECEITA — Impressora de Receita
Tela de configuração: ADM012 — Parâmetros do Usuário
Localização: Aba "Impressoras do Usuário"
Tabela:PARMUSUARIO.CD_IMPRECEITA
Tipo:INTEGER(FK paraIMPRESSORA.CD_IMPRESSORA)
Componente:edtCD_IMPRECEITA(edit)
Valor padrão: Não informado (campo nulo permitido)
Telas impactadas
| Tela | Descrição | Como é impactada |
|---|---|---|
| ADM012 | Parâmetros do Usuário | Tela de configuração direta do parâmetro |
| ADM013 | Autorizador de Usuário | Inclui CD_IMPRECEITA no SELECT/UPDATE OR INSERT ao duplicar ou salvar configurações de usuário |
| OFI001 | Parâmetros de Oficina | Lê CD_IMPRECEITA via consulta na tabela PARMUSUARIO |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
CD_IMPRECEITA | PARMUSUARIO | INTEGER | Código da impressora vinculada para impressão de documentos de receita |
DS_IMPRECEITA | PARMUSUARIO (campo derivado/exibido) | STRING | Nome da impressora obtido por join com IMPRESSORA — exibido ao lado do código |
A FK
CD_IMPRECEITAreferencia a tabelaIMPRESSORA, porém não há constraint declarada comALTER TABLE ... ADD CONSTRAINTno schema conhecido para este campo (ao contrário de campos vizinhos comoCD_IMPNOTA,CD_IMPCHEQUE,CD_IMPRECIBO,CD_IMPDUPLICATA).
Opções disponíveis
Este é um campo livre (edit) — não possui opções predefinidas. O usuário informa o código de uma impressora cadastrada na tabela IMPRESSORA, ou seleciona via pesquisa <F9>.
| O que faz | Detalhe |
|---|---|
Pesquisa <F9> | Abre grid com impressoras (DS_IMPRESSORA, CD_IMPRESSORA) da tabela IMPRESSORA |
| Validação | Se campo preenchido, verifica existência do código em IMPRESSORA; se não existir, dispara erro "A Impressora não está Cadastrada [ADM008]!" |
| Editável | Sim — campo editável pelo usuário |
| Obrigatório | Não — campo nulo/permitido em branco |
Simulação passo a passo
- Acesse
ADM012(Parâmetros do Usuário). - Navegue à aba "Impressoras do Usuário".
- Localize o campo "Impressoras do Usuário" (
CD_IMPRECEITA). - Posicione o cursor no campo e pressione
<F9>. - Selecione a impressora desejada na lista que exibe "Nome" e "Código".
- Confirme — o campo é preenchido com o nome da impressora selecionada.
- Salve o registro.
Resultado esperado: O código da impressora selecionada é gravado no campo CD_IMPRECEITA da tabela PARMUSUARIO para o usuário/empresa em questão. Quando documentos de receita forem emitidos, o sistema usará essa impressora.
Exceção / Importante: Se o usuário digitar manualmente um código de impressora que não existe na tabela
IMPRESSORA, ao salvar a validação do dataset dispara: "A Impressora não está Cadastrada [ADM008]!". Neste caso, a salva é bloqueada até que um código válido seja informado ou o campo seja deixado em branco.
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Evidência |
|---|---|---|
edtCD_IMPRECEITAKeyDown | source/ADM012/UADM012.pas | Pesquisa <F9> na tabela IMPRESSORA para selecionar impressora |
tabPARMUSUARIOCD_IMPRECEITAValidate | source/ADM012/UdmADM012.pas | Valida se código informado existe em IMPRESSORA; preenche DS_IMPRECEITA |
Referências SQL diretas ao campo
| Procedure | Evidência |
|---|---|
RETORNA_IMPRESSORAUSUARIO | Declara V_CD_IMPRECEITA, faz LEFT JOIN IMPRESSORA A ON A.CD_IMPRESSORA = CD_IMPRECEITA, retorna O_CD_IMPRESSORA quando I_TP_IMPRESSORA = 'A' (A = Receita) |
Candidatas por uso da tabela PARMUSUARIO
As procedures abaixo usam a tabela PARMUSUARIO, mas não há referência direta ao campo CD_IMPRECEITA no código inspecionado — validar antes de afirmar impacto funcional:
CANCELA_NOTAFISCALCONTROLE_CAIXAGERA_ETIQUETABALANCAPERMISSAO_CAIXATRGPARMFATUR_BUVALIDA_BLOQDESCMAXSUBGRUPOVALIDA_CODIGOBARRAVALIDA_LIBERACAOUSUARIOVALIDA_MODELOBLOQUEIODIASATRASOVALIDA_MODELOBLOQUEIOPCDESCMAXVALIDA_MODELOBLOQUEIOVLLIMITEVERIFICA_BLOQUEIOVIEW_DOCUMENTOSBLOQUEADOS
Comportamento da procedure RETORNA_IMPRESSORAUSUARIO
A procedure RETORNA_IMPRESSORAUSUARIO lê o parâmetro CD_IMPRECEITA da tabela PARMUSUARIO e retorna a impressora correspondente quando:
I_TP_IMPRESSORA = 'A'(código interno para "Receita").- O join é feito via:
LEFT JOIN IMPRESSORA A ON A.CD_IMPRESSORA = CD_IMPRECEITA. - O nome e código da impressora são atribuídos às variáveis
V_NM_IMPRECEITAeV_CD_IMPRECEITA, e então retornados emO_DS_IMPRESSORA/O_CD_IMPRESSORA. - A porta de impressão é retornada conforme o tipo de porta (
I_TP_PORTA = 'D'para DOS, senão Windows):DS_PORTADOSouDS_PORTAWIN.
Tabela comparativa resumida
| Aspecto | Detalhe |
|---|---|
| Campo | CD_IMPRECEITA |
| Tabela | PARMUSUARIO |
| Tipo | INTEGER |
| FK declarada | Não (há join, mas sem ALTER TABLE ... ADD CONSTRAINT no schema conhecido) |
| Tela | ADM012 — Aba "Impressoras do Usuário" |
| Componente | edtCD_IMPRECEITA (TDBEdit) |
| Editável | Sim |
| Obrigatório | Não |
| Pesquisa | <F9> → tabela IMPRESSORA |
| Validação | Confere existência em IMPRESSORA; dispara "E-0000" se inválido |
| Impacto funcional | Define a impressora usada para impressão de documentos de receita (via RETORNA_IMPRESSORAUSUARIO com I_TP_IMPRESSORA = 'A') |