ÍNDICE

  1. Datos generales
  2. Descripción
  3. Sintaxis
  4. Parámetros
  5. Respuesta
  6. Ejemplo

01. DATOS GENERALES

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


02. DESCRIPCIÓN

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.


03. SINTAXIS

M521LpSD9({cDoc, cSerie}) ---> lRet

04. PARÁMETROS

Nombre

Tipo

Descripción

Estándar

Obligatorio

Referencia

aParamIXB

Vector

Vector con los datos identificadores del documento de salida que se está eliminando, donde:
[ 01 ] - cDoc - Tipo: Carácter - String que contiene la numeración de
Facturas [ 02 ] - cSerie - Tipo: Carácter - String que contiene la serie de facturas




05. RESPUESTA

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.

06. EJEMPLO

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)


Ejemplo:
#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