CD_IMPDUPLICATA - Parâmetro de Impressora de Duplicata
Tela de configuração: ADM012 — Parâmetros do Usuário
Localização: Aba "Impressoras do Usuário"
Tabela:PARMUSUARIO.CD_IMPDUPLICATA
Valor padrão:NULL(não definido)
Tipo:INTEGER— FK paraIMPRESSORA(CD_IMPRESSORA)
Telas impactadas
| Tela | Nome | Impacto |
|---|---|---|
| ADM012 | PARMUSUARIO | Configuração direta do campo |
| ADM013 | CADUSUARIO | Duplicação de parâmetros entre usuários (copia CD_IMPDUPLICATA) |
Campos envolvidos
| Campo | Tabela | Tipo | Descrição |
|---|---|---|---|
CD_IMPDUPLICATA | PARMUSUARIO | INTEGER | Código da impressora de duplicata |
DS_IMPDUPLICATA | PARMUSUARIO (campo descrição via join) | VARCHAR | Nome da impressora (display) |
CD_IMPRESSORA | IMPRESSORA | INTEGER | PK referenciada (FK: RPARMUSUSARIO_IMPDUPLICATA) |
Procedures impactadas
Rotinas Delphi com referência direta ao campo
| Rotina | Arquivo | Descrição |
|---|---|---|
edtCD_IMPDUPLICATAKeyDown | source/ADM012/UADM012.pas:687 | Atalho F9: abre pesquisa na tabela IMPRESSORA para selecionar a impressora de duplicata |
tabPARMUSUARIOCD_IMPDUPLICATAValidate | source/ADM012/UdmADM012.pas:398 | Valida se o código informado existe em IMPRESSORA. Exibe mensagem "A Impressora não está Cadastrada [ADM008]!" se inválido |
TfrmADM013.btnDuplicaUsuarioClick | source/ADM013/UADM013.pas:471 | Duplica parâmetros (inclui CD_IMPDUPLICATA) de um usuário para outro |
Referências SQL diretas ao campo
| Procedure/Script | Arquivo | Uso |
|---|---|---|
RETORNA_IMPRESSORAUSUARIO | Scripts/RETORNA_IMPRESSORAUSUARIO.sql:45 | LEFT JOIN IMPRESSORA D ON (D.CD_IMPRESSORA = CD_IMPDUPLICATA) — retorna a impressora de duplicata quando I_TP_IMPRESSORA = 'P' |
Candidatas por uso da tabela PARMUSUARIO
Não foi encontrada referência direta ao campo CD_IMPDUPLICATA nestas rotinas. Impacto indireto possível (leem a tabela PARMUSUARIO para outros campos):
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.
Comportamento do parâmetro
| O que faz | Detalhe |
|---|---|
| Editável | Campo de texto livre (TDBEdit), editável pelo usuário |
| Lookup | Pressione F9 para pesquisar impressoras cadastradas (ADM008) |
| Validação | O código informado deve existir na tabela IMPRESSORA, senão bloqueia o salvamento |
| Uso principal | Define qual impressora será usada quando o sistema solicitação por I_TP_IMPRESSORA = 'P' |
| Opcional | Pode ficar em branco (NULL) — sem impressora de duplicata configurada |
Simulação passo a passo
- Abra ADM012 — Parâmetros do Usuário.
- Acesse a aba "Impressoras do Usuário".
- No campo "Cod Imp Duplicata" (
CD_IMPDUPLICATA), digite um código de impressora (ex:3) ou pressione F9 para abrir a pesquisa. - Na pesquisa, selecione uma impressora (ex:
HP Laserjet - Duplicatas). - O campo de descrição (
DS_IMPDUPLICATA) é preenchido automaticamente com o nome da impressora. - Clique em Salvar.
Resultado esperado: O usuário passa a ter uma impressora padrão para impressão de duplicatas. Quando o sistema chamar RETORNA_IMPRESSORAUSUARIO com I_TP_IMPRESSORA = 'P', retornará a impressora code e nome configurado (ex: CD_IMPRESSORA = 3, DS_IMPRESSORA = 'HP Laserjet - Duplicatas').
Excecao / Importante: Se o código digitado não existir na tabela
IMPRESSORA, o sistema bloqueia e exibe a mensagem:A Impressora não está Cadastrada [ADM008]!. É necessário cadastrar a impressora primeiro em ADM008.
Uso pela procedure RETORNA_IMPRESSORAUSUARIO
A procedure RETORNA_IMPRESSORAUSUARIO é o principal consumidor deste parâmetro. Ela recebe I_TP_IMPRESSORA e retorna impressora e nome correspondente:
I_TP_IMPRESSORA | Impressora retornada | Campo PARMUSUARIO |
|---|---|---|
'N' | Nota Fiscal | CD_IMPNOTA |
'H' | Cheque | CD_IMPCHEQUE |
'R' | Recibo | CD_IMPRECIBO |
'P' | Duplicata | CD_IMPDUPLICATA |
'E' | Etiqueta | CD_IMPETIQUETA |
'D' | Pedido | CD_IMPPEDIDO |
'A' | Receita | CD_IMPRECEITA |
Simulação passo a passo (fluxo interno — sem ação do usuário final)
Quando o sistema precisa imprimir uma duplicata:
- O módulo financeiro chama
RETORNA_IMPRESSORAUSUARIO(CD_EMPRESA, CD_USUARIO, 'P', ...)passando o usuário logado. - A procedure consulta
PARMUSUARIOe fazLEFT JOINcomIMPRESSORAna colunaCD_IMPDUPLICATA. - Retorna
O_CD_IMPRESSORAeO_DS_IMPRESSORAcom os dados da impressora configurada. - O sistema usa a impressora retornada para enviar o documento de duplicata.
Resultado esperado: Se CD_IMPDUPLICATA estiver configurado, a impressão será direcionada à impressora definida. Se estiver NULL, a procedure retorna NULL — o sistema deve tratar (geralmente usa impressora padrão do Windows ou não imprime).
Duplicação de parâmetros (ADM013)
O parâmetro CD_IMPDUPLICATA é copiado quando se utiliza a funcionalidade de duplicar parâmetros de usuário na tela ADM013.
Simulação passo a passo
- Abra ADM013 — Cadastro de Usuários.
- Selecione um usuário origem que possui
CD_IMPDUPLICATAconfigurado (ex:US001→ Impressora3). - Clique em "Duplica Configurações de Impressão/Parâmetros" (ação disponível na tela).
- Informe o usuário destino (ex:
US002). - Confirme a operação.
Resultado esperado: O usuário US002 terá o mesmo CD_IMPDUPLICATA (3) copiado de US001.
Tabela Comparativa Resumida
| Aspecto | Valor |
|---|---|
| Tela de configuração | ADM012 — Parâmetros do Usuário |
| Aba | Impressoras do Usuário |
| Campo | CD_IMPDUPLICATA |
| Tabela | PARMUSUARIO |
| FK | IMPRESSORA(CD_IMPRESSORA) via RPARMUSUSARIO_IMPDUPLICATA |
| Tipo | INTEGER |
| Obrigatório | Não (NULL permitido) |
| Validação | Deve existir em IMPRESSORA (mensagem: "A Impressora não está Cadastrada [ADM008]!") |
| Atalho de pesquisa | F9 na tela ADM012 |
| Principal consumer | Procedure RETORNA_IMPRESSORAUSUARIO (I_TP_IMPRESSORA = 'P') |
| Outros campos relacionados | CD_IMPNOTA, CD_IMPCHEQUE, CD_IMPRECIBO, CD_IMPETIQUETA, CD_IMPPEDIDO, CD_IMPRECEITA (todos configurados em ADM012) |