TCB001.R001 — Código gerado automaticamente por sequência
Módulo: TCB001 · Menu: Cadastros > Tabelas Contábeis > Movimentações Classificação: intencional · Relevância: baixa
Regra
Se o Código da Movimentação for deixado em branco na inclusão, o sistema busca (ou cria) o generator SEQ_MOVIMENTACAO via a procedure GERA_SEQUENCIA e gera um código livre, verificando que ele não colide com um já existente antes de gravar.
Quando dispara
Ao salvar (Post) um registro novo com o campo Código vazio.
Como o usuário resolve
Não é necessário informar o código manualmente; o usuário pode deixá-lo em branco que o sistema numera sozinho.
Parâmetros envolvidos
CD_MOVIMENTACAO
Evidência
| Arquivo | Linhas | Rotina | O que o trecho faz |
|---|---|---|---|
source/TCB001/UdmTCB001.pas | 119-156 | TdmTCB001.tabMOVIMENTACAOBeforePost | Gera o próximo número de sequência via GERA_SEQUENCIA e garante unicidade do código |
Scripts/GERA_SEQUENCIA.sql | 1-1 | `` | Procedure Firebird referenciada para gerar o próximo número de sequência (não lida nesta sessão) |
source/TCB001/UdmTCB001.pas:119
if (dmTCB001.tabMOVIMENTACAOCD_MOVIMENTACAO.AsString = '') then begin
// Busca o Próximo Número de Sequencia
Consulta := ' SELECT V_NR_SEQUENCIA, V_DS_MENSAGEM '
+ ' FROM GERA_SEQUENCIA(NULL,''SEQ_MOVIMENTACAO'' ) ';
Resultado := ExecutaConsulta(dmTCB001.transaction,Consulta);
if (Resultado[1] <> '') then begin
// Cria o Generator caso Não Exista
Consulta := ' CREATE GENERATOR SEQ_MOVIMENTACAO ';
ExecUpdate(dmTCB001.transaction,Consulta);
// Busca o Próximo Número de Sequencia
Scripts/GERA_SEQUENCIA.sql:1
SET TERM ^ ;