Histórico da Página
...
Portuguese | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Função: CTBPRXDOC - Controle da numeraçãoO 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
cDoc
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.
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
|