CD_CONTATROCO - Conta Caixa para Troco
Tela de configuração: FNC001 — Parâmetros Financeiros
Localização: Aba &Caixa — campoDados do Parâmetro
Tabela:PARMFINANC.CD_CONTATROCO
Valor padrão: vazio (resultado do<F9>)
Componente:edtCD_CONTATROCO(DBEdit)
Tipo:INTEGER— código da conta naPARMSALDO
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
| Tela | Nome | Impacto |
|---|---|---|
| FNC001 | PARMFINANC — Parâmetros Financeiros | Tela de configuracao do parametro |
| FNC002 | PARMSALDO — Parâmetros de Saldo | Define as contas de caixa disponiveis; campo equivalente por conta de saldo |
| MFC007 | Fechamento de Caixa | Usa a conta de troco ao consultar/fechar o caixa |
Campos envolvidos
| Campo | Tabela | Tipo | Observacao |
|---|---|---|---|
CD_CONTATROCO | PARMFINANC | INTEGER | Codigo da conta de troco (nivel empresa) |
CD_EMPRCONTATROCO | PARMFINANC | INTEGER | Empresa da conta de troco (preenchido automaticamente na validacao) |
DS_CONTATROCO | PARMFINANC | VARCHAR (campo calculado) | Descricao da conta (exibido em tela, preenchido na validacao) |
CD_CONTATROCO | PARMSALDO | INTEGER | Conta de troco por conta de saldo (prioridade sobre PARMFINANC na GRAVA_MOVTOCAIXA) |
Opcoes disponiveis
| O que faz | Detalhe |
|---|---|
| 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
- Acesse a tela FNC001 (Parâmetros Financeiros).
- Abra a aba
&Caixa. - Localize o campo
Cód. Conta Saldo para Troco(CD_CONTATROCO). - Pressione
<F9>sobre o campo para abrir a busca de contas de saldo (PARMSALDO). - Selecione uma conta do tipo Caixa (
TP_SALDO = 'X') e ativa (ST_ATIVO = 'S'). Exemplo: conta1001— "Caixa Principal". - Salve o parametro.
- 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
PARMSALDOpara 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)
- Acesse a tela FNC001.
- Abra a aba
&Caixa. - Limpe o campo
Cód. Conta Saldo para Troco. - 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:
PARMSALDO.CD_CONTATROCO— troco especifico da conta de saldo em uso (prioridade maxima).PARMFINANC.CD_CONTATROCO— troco padrao da empresa (fallback).- Primeira conta caixa ativa do usuario na
VIEW_PARMSALDO(fallback final). - 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
| Rotina | Arquivo | Impacto |
|---|---|---|
TdmFNC001.tabPARMFINANCCD_CONTATROCOValidate | /source/FNC001/UdmFNC001.pas:802 | Valida 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:1147 | Ao pressionar <F9> no campo, busca contas via PARMSALDO e atribui o codigo selecionado. |
TdmFNC001.tabPARMSALDOCD_CONTATROCOValidate (FNC002) | /source/FNC002/UdmFNC002.pas:446 | Validacao equivalente na tela FNC002 (conta de saldo individual). |
TfrmADM013.btnDuplicaUsuarioClick | /source/ADM013/UADM013.pas:554 | Inclui CD_CONTATROCO na duplicacao de parametros entre empresas. |
TfrmMFC007.btnExcluirClick | /source/MFC007/UMFC007.pas:708 | Referencia COALESCE(PF.CD_CONTATROCO,-2) no fechamento/exclusao de caixa. |
Scripts SQL com referencia direta ao campo
| Procedure | Arquivo | Impacto |
|---|---|---|
GRAVA_MOVTOCAIXA | /Scripts/GRAVA_MOVTOCAIXA.sql:220 | SELECT 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.