Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFIN - Financiero 
Función:
Rutina (s)Nombre TécnicoFecha
FINA086Anulación de Orden de Pago25/06/2024
FINA085AOrden de Pago18/06/2024
País:México
Ticket:N/A
Requisito/Story/Issue (informe el requisito vinculado):DMINA-22956


02. SITUACIÓN/REQUISITO

El Cliente recibe los CFDI del Complemento para la Recepción de Pagos que le emite su Proveedor al efectuar el pago de una Factura, sin embargo, dentro del sistema, al capturar dicho pago (Orden de Pago), no es posible vincular o relacionar los archivos (XML y PDF) recibidos.


03. SOLUCIÓN

  • Desde la rutina de Anulación de Orden de Pago (FINA086), en el menú "Otras Acciones" se agregan las siguientes opciones:
    1. Asociar XML: Permitirá seleccionar un archivo XML (Complemento de recepción de pago) para extraer el folio fiscal, la fecha de timbrado, los documentos relacionados al pago y copiar los archivos (XML y PDF) a una carpeta dentro del servidor (indicada en el parámetro MV_XMLPAGO) generando una relación con la Orden de pago mediante los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP)
    2. Revertir XML: Permitirá realizar la reversión de la asociación de la Orden de Pago con el Complemento de Pago (XML), borrando la información de los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP) y eliminado los archivos XML y PDF de la carpeta del servidor.


  • En la rutina de Anulación de Orden de Pago (FINA086) se realizan los siguientes ajustes:
    • Se crea la función fa086OPXML() para generar una pantalla que permita seleccionar un archivo XML (Complemento de Recepción de Pago) extrayendo la información del Folio Fiscal, Fecha de Timbrado y documentos relacionados al pago.

    • Se crea la función fn086VlMkO() para realizar la validación de la Orden de Pago seleccionada y posiciona el registro en tabla temporal TRB.

    • Se crea la función fa086OPGR()  para generar la estructura de aHeader y aCols (Tabla SEK) que será utilizada por el getDados y mostrados en la pantalla de captura de XML.

    • Se crea la función fa086BsXml() para permitir seleccionar un archivo de tipo XML desde un directorio local.

    • Se crea la función fa086VlXML() para realizar la validación del archivo XML antes extraer y mostrar su contenido en el browse.

    • Se crea la función fn086VlDcx() para realizar la validación de la información extraída del archivo XML contra la información de la Orden Pago.

    • Se crea la función fa086GrXML() para crear el directorio informado en el parámetro MV_XMLPAGO, guardar los archivos XML y PDF e informar los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP) generando una relación con la Orden de pago.

    • Se crea la función fn086RvXml() para generar una ventana de diálogo e indicar al usuario si desea realizar la reversión de la asociación entre la orden de pago y el complemento de recepción de pago, también, valida si la orden de pago seleccionada cuenta con dicha asociación, de ser así, realiza la reversión.

    • Se crea la función fn086DlXML() para realizar el borrado de la información contenida en los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC),  Archivo XML (EK_XMLCP) y el borrado de los archivos XML y PDF del directorio configurado en el parámetro MV_XMLPAGO

    • Dentro de la función Cancela(), se valida si las Órdenes de Pago seleccionadas contienen asociación con un complemento de recepción de pago, de ser así, mostrará una ventana de diálogo y lo indicará al usuario, si éste confirma, se accederá a la función fn086DlXML() para realizar el borrado de la información asociada al complemento de recepción de pago.

  • En la rutina de Orden de Pago (FINA085A) se realizan los siguientes ajustes:
    • En las funciones Fina085a(), A085APgAut(), Fa085Grava(), Fa085Tela() y GravaPagos() se eliminan las líneas de código relacionadas al campo Folio Fiscal (EK_UUID).


  1. Realizar un respaldo del repositorio (archivo .rpo)
  2. Aplicar el parche correspondiente al issue DMINA-22956.
  3. Validar que las rutinas actualizadas coincidan con las indicadas en la sección 01. Datos Generales del presente Documento Técnico.
  4. Disponer del archivo XML del Complemento de Recepción de Pago proporcionado por el Proveedor.
  5. Contar con las Facturas de Entrada correspondientes al Complemento.
  6. Realizar la Orden de Pago de las cuotas correspondientes a los pagos realizados en el Complemento.
  • Asociar una Orden de Pago con el Complemento de Recepción de Pago por medio del archivo XML.

    Acceder al módulo Financiero (SIGAFIN) , menú Actualizaciones | Cuentas por Pagar | Anular Ord. Pago (FINA086)

    • Seleccionar a Orden de Pago correspondiente. Ir al menú “Otras acciones” y seleccionar la opción “Asociar XML”.



    •  En la siguiente pantalla, dar clic en el botón “Buscar Archivo” y seleccionar el archivo XML del Complemento de Recepción de Pago correspondiente a la Orden de Pago.

       


    • Dar clic en el botón “Salvar”.
      Será cargada la información del Folio Fiscal, Fecha de Timbrado y los documentos relacionados al Complemento de Recepción de Pago.

    • Dar clic en el botón “Confirmar” para copiar los archivos (XML y PDF) a la carpeta indicada en el parámetro MV_XMLPAGO y generar la relación con la Orden de Pago mediante los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP).



    • Revisar los archivos creados en la carpeta del servidor.
      Los archivos son renombrados con la siguiente nomenclatura:
      OP_NúmeroOP_RFCReceptor. XML o .PDF

    • Revisar la tabla de Órdenes de Pago (SEK) y comprobar que los campos han sido almacenados correctamente:

      • Folio Fiscal (EK_UUID) : Folio Fiscal del Complemento de Recepción de Pago.

      • Fecha Timbre(EK_FECTIMC) : Fecha timbrado del Complemento de Recepción de pago.

      • Archivo XML(EK_XMLCP) : Ruta donde son almacenados los archivos XML y PDF del Complemento de Recepción de Pago.




  • Revertir la asociación de la Orden de Pago con el XML del Complemento de Recepción de Pago.

    Acceder al módulo Financiero (SIGAFIN) , menú Actualizaciones | Cuentas por Pagar | Anular Ord. Pago (Fina086)

    • Seleccionar una Orden de Pago, ir al menú “Otras acciones” y seleccionar la opción “Revertir XML”.


    • Será mostrado un mensaje de confirmación indicando lo siguiente:



    • Confirmar el mensaje.
    • El sistema notificará con un mensaje la reversión de la asociación de la Orden de Pago con el Complemento de Pago.



    • Revisar que los archivos relacionados con la Orden de Pago hayan sido borrados de la carpeta del servidor.
    • Revisar la tabla de Órdenes de Pago (SEK) y comprobar que la información relacionada al Complemento de Pago haya sido borrada de los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP).


  • Cancelar una Orden de Pago asociada a un Complemento de Recepción de Pago (XML).

    Acceder al módulo Financiero (SIGAFIN) , menú Actualizaciones | Cuentas por Pagar | Anular Ord. Pago (Fina086)

    • Seleccionar una Orden de Pago que cuente con relación XML y dar clic en el botón “Confirmar”.
    • Será mostrado un mensaje de confirmación indicando lo siguiente:



      Si se confirma, la Orden de Pago será cancelada y la información relacionada al Complemento será borrada (archivos XML y PDF e información de los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP)), si se rechaza, no se realizará ninguna acción.

    • Confirmar la anulación.



    • La Orden de Pago cambia de estatus a “Orden de Pago Anulada”.

    • Revisar que los archivos relacionados a la Orden de Pago hayan sido borrados de la carpeta del servidor.

    • Revisar la tabla de Órdenes de Pago (SEK) y comprobar que la información relacionada al Complemento de Pago haya sido borrada de los campos Folio Fiscal (EK_UUID), Fecha Timbre (EK_FECTIMC) y Archivo XML (EK_XMLCP).



04. INFORMACIÓN ADICIONAL


Actualizaciones al Diccionario 

Pacote en Atusx : 014139

Parámetros en el archivo SX6 – Parámetros:

Agregar parámetro MV_XMLPAGO

Nombre:

MV_XMLPAGO

Tipo:

C

Descripción

Ruta dentro de la carpeta system donde serán almacenados los archivos XML y PDF del complemento de recepción de pago.

Cont. Esp.:

GetSrvProfString('startpath','')+'\cfd\comprov\' 


Creación de campos en el archivo SX3 -Campos:

Tabla SEK - Órdenes de Pago

Crear el campo EK_XMLCP

Campo

EK_XMLCP

Tipo

M

Tamaño

10

Decimal

0

Formato

-

Título

Ruta archivo

Descripción

Ruta archivo XML

Utilizado

Obligatorio

No

Browse

No

Help

Ruta del archivo XML del Complemento de Pago relacionado a la Orden de Pago.


Crear el campo EK_FECTIMC

Campo

EK_FECTIMC

Tipo

D

Tamaño

8

Decimal

0

Formato

-

Título

Fecha Timbre

Descripción

Fecha Timbre Compl. Pago

Utilizado

Obligatorio

No

Browse

No

Help

Fecha de Timbrado del archivo XML del Complemento de Recepción de Pago


Punto de Entrada F086GRCP

Punto de entrada disponible que permite realizar acciones después de guardar la asociación del Complemento de Pago con la Orden de Pago.

La llamada desde este punto de entrada está dentro del ciclo que recorre los documentos relacionados a la Orden de Pago que se está modificando.

Parámetros recibidos:

  • N/A

Retorno:

  • N/A

Ejemplo 

1

2

3

4

5

6

7

8

9

10

11

#Include 'Protheus.ch'


User Function F086GRCP()

    Local aArea:= SEK->(GetArea())


   IF AllTrim(SEK->EK_TIPO) == "TF" .AND. SEK->EK_LA =="S"

     F086ACTCT2()

   EndIf


   SEK->(RestArea(aArea))

Return


¡IMPORTANTE!

La presente solución aplica para versión 12.1.2210 o superior.


05. ASUNTOS RELACIONADOS

  • Orden de pago (FINA085A - MI)
  • Canceling a Payment Order (FINA086 - SIGAFIN)