Pular para o conteúdo principal

CD_CONTATROCO - Conta Caixa para Troco

Tela de configuração: FNC001 — Parâmetros Financeiros
Localização: Aba &Caixa — campo Dados do Parâmetro
Tabela: PARMFINANC.CD_CONTATROCO
Valor padrão: vazio (resultado do <F9>)
Componente: edtCD_CONTATROCO (DBEdit)
Tipo: INTEGER — código da conta na PARMSALDO

Este parametro define qual conta de caixa será utilizada para registrar o troco devolvido ao cliente durante a movimentação de caixa. O troco e gerado quando o valor recebido pelo operador excede o valor da conta/titulo que esta sendo baixado.

Telas impactadas​

TelaNomeImpacto
FNC001PARMFINANC — Parâmetros FinanceirosTela de configuracao do parametro
FNC002PARMSALDO — Parâmetros de SaldoDefine as contas de caixa disponiveis; campo equivalente por conta de saldo
MFC007Fechamento de CaixaUsa a conta de troco ao consultar/fechar o caixa

Campos envolvidos​

CampoTabelaTipoObservacao
CD_CONTATROCOPARMFINANCINTEGERCodigo da conta de troco (nivel empresa)
CD_EMPRCONTATROCOPARMFINANCINTEGEREmpresa da conta de troco (preenchido automaticamente na validacao)
DS_CONTATROCOPARMFINANCVARCHAR (campo calculado)Descricao da conta (exibido em tela, preenchido na validacao)
CD_CONTATROCOPARMSALDOINTEGERConta de troco por conta de saldo (prioridade sobre PARMFINANC na GRAVA_MOVTOCAIXA)

Opcoes disponiveis​

O que fazDetalhe
Vazio (padrao)Nenhuma conta de troco parametrizada. Na GRAVA_MOVTOCAIXA, se nao encontrar conta de troco, tenta a primeira conta do tipo caixa ativa com acesso do usuario. Se nao existir, retorna erro bloqueante.
Conta informada (inteiro)O codigo deve existir em PARMSALDO com TP_SALDO = 'X' (Caixa) e ST_ATIVO = 'S'. Na validacao, o sistema consulta VIEW_PARMSALDO e preenche automaticamente DS_CONTATROCO e CD_EMPRCONTATROCO.

Simulacao passo a passo — Conta informada​

  1. Acesse a tela FNC001 (Parâmetros Financeiros).
  2. Abra a aba &Caixa.
  3. Localize o campo Cód. Conta Saldo para Troco (CD_CONTATROCO).
  4. Pressione <F9> sobre o campo para abrir a busca de contas de saldo (PARMSALDO).
  5. Selecione uma conta do tipo Caixa (TP_SALDO = 'X') e ativa (ST_ATIVO = 'S'). Exemplo: conta 1001 — "Caixa Principal".
  6. Salve o parametro.
  7. Observe que a descricao da conta e preenchida automaticamente ao lado do codigo (campo DS_CONTATROCO, visivel no grid SQL).

Excecao / Importante: Se a conta selecionada nao existir em PARMSALDO para a empresa, a validacao rejeita com: "A Conta de Caixa para Troco não está Cadastrada. Verifique [FNC002]!".
Se a conta existir mas nao for do tipo Caixa (TP_SALDO <> 'X'), a validacao rejeita com: "A Conta para Troco deve ser do Tipo Caixa. Verifique [FNC002]!".
Se a conta estiver inativa (ST_ATIVO = 'N'), a validacao rejeita com: "A Conta para Troco não está ativa. Verifique [FNC002]!".

Resultado esperado: O codigo da conta e gravado em PARMFINANC.CD_CONTATROCO e a descricao e exibida. Na proxima operacao de caixa com troco (via GRAVA_MOVTOCAIXA), essa conta sera usada para lancar o valor do troco.

Simulacao passo a passo — Campo vazio (sem conta parametrizada)​

  1. Acesse a tela FNC001.
  2. Abra a aba &Caixa.
  3. Limpe o campo Cód. Conta Saldo para Troco.
  4. Salve o parametro.

Resultado esperado: O campo fica vazio. Quando ocorrer uma operacao de troco na GRAVA_MOVTOCAIXA, o sistema tentara usar a primeira conta do tipo caixa ativa que o usuario corrente tem acesso (ordenada por CD_CONTA na VIEW_PARMSALDO). Se nao houver nenhuma conta de caixa disponivel, a procedure retorna o erro: "GRAVA_MOVTOCAIXA: A conta de Troco não foi parametrizada para a conta de saldo...".

Regra de prioridade na GRAVA_MOVTOCAIXA​

A procedure GRAVA_MOVTOCAIXA resolve a conta de troco nesta ordem:

  1. PARMSALDO.CD_CONTATROCO — troco especifico da conta de saldo em uso (prioridade maxima).
  2. PARMFINANC.CD_CONTATROCO — troco padrao da empresa (fallback).
  3. Primeira conta caixa ativa do usuario na VIEW_PARMSALDO (fallback final).
  4. Erro bloqueante se nenhuma das opcoes acima resultar em uma conta valida.

O CD_CONTATROCO da PARMFINANC funciona, portanto, como conta de troco padrao da empresa, usada quando a conta de saldo individual (PARMSALDO) nao define a sua propria conta de troco.

Procedures impactadas​

Rotinas Delphi com referencia direta ao campo​

RotinaArquivoImpacto
TdmFNC001.tabPARMFINANCCD_CONTATROCOValidate/source/FNC001/UdmFNC001.pas:802Valida que a conta existe em PARMSALDO, e do tipo Caixa (TP_SALDO = 'X') e esta ativa (ST_ATIVO = 'S'). Preenche DS_CONTATROCO e CD_EMPRCONTATROCO.
TfrmFNC001.edtCD_CONTATROCOKeyDown/source/FNC001/UFNC001.pas:1147Ao pressionar <F9> no campo, busca contas via PARMSALDO e atribui o codigo selecionado.
TdmFNC001.tabPARMSALDOCD_CONTATROCOValidate (FNC002)/source/FNC002/UdmFNC002.pas:446Validacao equivalente na tela FNC002 (conta de saldo individual).
TfrmADM013.btnDuplicaUsuarioClick/source/ADM013/UADM013.pas:554Inclui CD_CONTATROCO na duplicacao de parametros entre empresas.
TfrmMFC007.btnExcluirClick/source/MFC007/UMFC007.pas:708Referencia COALESCE(PF.CD_CONTATROCO,-2) no fechamento/exclusao de caixa.

Scripts SQL com referencia direta ao campo​

ProcedureArquivoImpacto
GRAVA_MOVTOCAIXA/Scripts/GRAVA_MOVTOCAIXA.sql:220SELECT COALESCE(P.CD_CONTATROCO, F.CD_CONTATROCO) — usa o CD_CONTATROCO da PARMSALDO (P) ou da PARMFINANC (F) para lancar o troco. Se ambos forem nulos, busca a primeira conta caixa ativa do usuario; se nao encontrar, retorna erro bloqueante.

Candidatas por uso da tabela PARMFINANC​

As procedures abaixo usam a tabela PARMFINANC, mas nao referenciam CD_CONTATROCO literalmente. Devem ser validadas antes de afirmar impacto funcional direto:

CALCULA_CAPITAL, CALCULA_JURO, CALCULA_JUROMORA, CALCULA_JUROMORA_RFC019, CANCELA_CONTAS, CONTABILIZA_REPARCELAMENTO, CONTROLE_CAIXA, ESTORNA_MOVTOCAIXA, EXECUTA_PROCESSO, GERA_DUPLICATAS, GERA_INTEGRACAO, GERA_INTEGRACAOFISCAL, GERA_MOVTOCONTABIL, GRAVA_CHEQUECARTAO, GRAVA_CONTAS, GRAVA_MOVTOCAIXAINDIVIDUAL, GRAVA_MOVTOPROCESSO, GRAVA_PROCESSOSMART, PROCESSA_FATURA, PROCESSA_REPARCELAMENTO.