Producto | Backoffice de TOTVS |
Línea de producto | Línea Protheus |
Segmento | Backoffice |
Módulo | SIGAFAT - Facturación |
Función | MATA521 - Eliminación del documento de salida |
Alcances | Microsiga Protheus 12 |
Versiones | Microsiga Protheus 12 |
Países compatibles | Todos |
Sistemas operativos | Todos |
Compatible con las bases de datos | Todos |
Nivel de acceso | Nivel 1 (Acceso Clientes) |
Idiomas | Todos |
Por defecto al eliminar un documento de salida, cuando se utiliza el control de numeración SD9 (MV_TPNRNFS = 3), la numeración de notas se deja vacante y el campo_DOCEXCL recibe el contenido "S" que indica que la numeración se ha vuelto vacante debido a una eliminación. Este proceso está destinado a que si el operador lo desea, introduzca este número manualmente al generar una nueva nota para la reutilización de esta numeración.
Este punto de entrada tiene como objetivo evitar esta limpieza del registro SD9, de modo que cuando se elimina el documento de salida, la numeración permanezca llena. También se pueden crear validaciones propias en el PE para que la limpieza sea condicional.
Importante
Cuando el punto de entrada M521LpSD9 devuelve .F. El proceso de limpieza no se inicia, pero la nota continuará eliminándose, por lo que en SD9 el registro estará con el mismo contenido que cuando se produjo la facturación y el campo D9_DOCEXCL permanecerá en blanco.
M521LpSD9({cDoc, cSerie}) ---> lRet
Nombre | Tipo | Descripción | Estándar | Obligatorio | Referencia |
aParamIXB | Vector | Vector con los datos identificadores del documento de salida que se está eliminando, donde: |
Respuesta | Tipo | Descripción | Obligatorio |
lRet | Lógico | Variable lógica que indica si se deben limpiar los datos en la SD9 debido a la eliminación, donde: .T. - Realiza la limpieza. .F.. - No realiza la limpieza. | Sí |
En este ejemplo validamos si para dicha factura hubo alguna comunicación con Sefaz a través del campo Flag de Impresión (F2_FIMP)
#INCLUDE 'PROTHEUS.CH' #INCLUDE "FWMVCDEF.CH" User Function M521LpSD9() Local aArea := GetArea() //Almacena el entorno activo para restaurar al final del proceso Local aParam := PARAMIXB Local cDoc := aParam[1] Local cSerie := aParam[2] Local lRet := .F. DbSelectArea("SF2") SF2->(DbSetOrder(1)) If SF2->(DbSeek(xFilial("SF2") + cDoc + cSerie)) If Empty(SF2->F2_FIMP) //Verifica si para esta factura hube alguna comunicación con Sefaz lRet := .T. EndIf EndIf RestArea(aArea) //Restaura el entorno activo al inicio de la llamada Return lRet