...
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.
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 Alcance
Microsiga Protheus 8.11 , Protheus 10
...