Duda
¿Cómo alterar la serie definida por estándar en la generación de Guías de Despacho en la rutina Generación Guía de Despacho (M462SER)?
Ambiente
Cross Segmentos - TOTVS BackOffice (Línea Protheus) - MI - Facturación (SIGAFAT) - Apartir da versión P12
Solución
En la funcionalidad estándar para el país Chile, la rutina Generación de Guías de Despacho (MATA462AN) genera los documentos con la serie "R". Para alterar la serie con la que serán generados los documentos, es necesario desarrollar y compilar la función de usuario M462SER.
Punto a considerar al desarrollar la función de usuario M462SER:
- La función de usuario M462SER no recibe parámetros.
- La función de usuario M462SER retorna una variable del tipo carácter con el valor de la serie.
- En la función de usuario M462SER deberá agregar las condiciones necesarias para identificar la serie a utilizar.
Ejemplo:
#INCLUDE "PROTHEUS.CH"
User Function M462SER()
Local lSerieOk := .F.
Local cSerie := ""
DbSelectArea("SFP")
DbSetOrder(6)
DbSeek(xFilial("SFP") + cFilAnt + "5")
While !SFP->(Eof()) .AND. xFilial("SFP") == SFP->FP_FILIAL .AND. SFP->FP_FILUSO == cFilAnt
If SFP->FP_ESPECIE == "5"
DbSelectArea("SX5")
DbSetOrder(1)
If DbSeek( xFilial("SX5")+"01"+SFP->FP_SERIE,.F. )
If ChkFolCHI(cFilAnt ,SFP->FP_SERIE,AllTrim(X5Descri()), "5", NIL, .F.)
cSerie := SFP->FP_SERIE
lSerieOk := .T.
Exit
EndIf
EndIf
EndIf
SFP->(dbSkip())
End
If !lSerieOk
Aviso("Atención", "Serie no registrada o no valida",{"OK"})
EndIf
Return cSerie
0 Comentarios