Función: CTBPRXDOC - Control de la numeración

El punto de entrada CTBPRXDOC se utiliza para el control de la numeración del documento contable en el entorno Contabilidad de gestión (SIGACTB). 

Sintaxis

CTBPRXDOC - Control de la numeración ( < dDataLanc>, < cLote>, < cSubLote> ) --> cDoc
Parámetros/Elementos

Nombre

Tipo

Descripción

Obligatorio

Referencia

dDataLanc

Fecha

Fecha del asiento

X

 

cLote

Carácter

Código del lote del asiento

X

 

cSubLote

Carácter

Código del sublote

X

 

Devolución

cDoc

    ()

          código do documento gerado pelo ponto de entrada

Observaciones


El control de la numeración del documento contable en el entorno Contabilidad de gestión (SIGACTB) se realiza de forma secuencial y diaria, respetando la siguiente clave: FECHA+LOTE+SUBLOTE+DOC, es decir:


En una determinada fecha, para un lote y sublote específicos, todo nuevo documento será secuencial con relación al documento anteriormente utilizado.

En cada cambio de fecha, la numeración del documento se reiniciará en “000001”


Resumiendo:


Cada combinación de fecha + lote + sublote contable tendrá un conjunto de documentos contables secuenciales.



Esta es la principal diferencia estructural entre los entornos Contabilidad de gestión (SIGACTB) y Contabilidad(SIGACON), pues en el entorno Contabilidad(SIGACON) era posible a partir del parámetro MV_CTBLOTE definir el control de la numeración secuencial del documento por día o por mes.


El control de la secuencia de número de documento en el entorno Contabilidad de gestión (SIGACTB) se basa en las informaciones registradas en la tabla CTF con base en las informaciones del asiento contable (Fecha, Lote y Sublote). Este control es fijo dentro del entorno y mantiene integras las informaciones generadas para el registro.

Para configurar el control de la numeración secuencial del entorno Contabilidad de gestión (SIGACTB) para utilizar una regla diferente de pago diario debe utilizarse el punto de entrada CTBPRXDOC, siendo que su mala utilización ocasionará daños/inconsistencias en la base de datos del cliente. Como por ejemplo violación de clave primaria y pérdida de trazabilidad siendo pertinencia del desarrollador del punto de entrada la prevención de estos efectos. 


Ejemplos

A continuación un ejemplo que implementa numeración secuencial en el mes, para entornos 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

Alcance 

Microsiga Protheus 8.11 , Protheus 10