Árvore de páginas

Função: CTBPRXDOC - Controle da numeração

O ponto de entrada CTBPRXDOC é utilizado para o controle da numeração do documento contábil no ambiente Contabilidade Gerencial (SIGACTB). 

CTBPRXDOC - Controle da numeração ( < dDataLanc>, < cLote>, < cSubLote> ) --> cDoc

 

NomeTipoDescriçãoObrigatórioReferência
dDataLancDataData do LançamentoX 
cLoteCaracterCodigo do lote do lançamentoX 
cSubLoteCaracterCodigo do SubloteX 

 

cDoc
    ()
  • codigo do documento gerado pelo ponto de entrada

 

O controle da numeração do documento contábil no ambiente Contabilidade Gerencial (SIGACTB) é realizado de forma seqüencial e diária, respeitando a seguinte chave: DATA+LOTE+SUBLOTE+DOC, ou seja:

 

·         Em uma determinada data, para um lote e sublote específicos, todo novo documento será seqüencial em relação ao documento anteriormente utilizado

·         A cada mudança de data, a numeração do documento será reiniciada em “000001”

 

Resumindo:

 

·         Cada combinação de data + lote + sublote contábil terá um conjunto de documentos contábeis seqüenciais.

 

 

Esta é a principal diferença estrutural entre os ambientes Contabilidade Gerencial (SIGACTB) e Contabilidade(SIGACON), pois no ambiente Contabilidade(SIGACON) era possível a partir do parâmetro MV_CTBLOTE definir o controle da numeração seqüencial do documento por dia ou por mês.


O controle da seqüência de numero de documento no ambiente Contabilidade Gerencial (SIGACTB) é baseado nas informações registradas na tabela CTF com base nas informações do lançamento contábil (Data, Lote e Sub-lote). Esse controle é fixo dentro do ambiente e mantém integras as informações geradas para o lançamento.

Para configurar o controle da numeração seqüencial do ambiente Contabilidade Gerencial (SIGACTB) para utilizar uma regra diferente de diária deverá ser utilizado o ponto de entrada CTBPRXDOC, sendo que a sua má utilização irá acarretar em estragos/inconsistências na base de dados do cliente. Como por exemplo violação de chave primaria e perca de rastreabilidade sendo da alçada do desenvolvedor do ponto de entrada a prevenção desses efeitos. 

 

Abaixo um exemplo que implementa numeração seqüencial no mês, para ambientes TOP/MSSQL:USER FUNCTION CTBPRXDOC()Local aArea        := GetArea()Local cProxDoc                 := "000001"Local dDataLanc := PARAMIXB[1]Local cLote                         := PARAMIXB[2]Local cSubLote  := PARAMIXB[3]Local cQuery      := ""Local dDataIni   := CTOD("")Local dDataFim                 := CTOD("")    dDataIni := FIRSTDAY(dDataLanc)dDataFim := LASTDAY(dDataLanc)cQuery := "SELECT Max(CTF_DOC) MAXDOC "cQuery += "FROM "+RetSqlName("CTF")+" CT2 WHERE "cQuery += "CTF_DATA BETWEEN '"+DTOS(dDataIni)+"' AND '"+DTOS(dDataFim)+"' AND "cQuery += "CTF_LOTE = '"+cLote+"' AND "cQuery += "CTF_SBLOTE = '"+cSubLote+"' AND "cQuery += "D_E_L_E_T_=' ' "cQuery := ChangeQuery(cQuery)dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),"TMPPRXDOC")cProxDoc := STRZERO(VAL(("TMPPRXDOC")->MAXDOC),6)dbSelectArea("TMPPRXDOC")("TMPPRXDOC")->(dbCloseArea())cProxDoc := SOMA1(cProxDoc)RestArea(aArea)RETURN cProxDoc
Microsiga Protheus 8.11 , Protheus 10