Árvore de páginas

01. DATOS GENERALES


Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Facturación 
Función:
RutinaNombre TécnicoFecha
LOCXNFFunciones genéricas para Notas Fiscales27/10/2023
LOCXNF2Notas Fiscales27/10/2023
LOCXMEXFunciones Genéricas para Documentos Fiscales para México15/10/2023
FISA817Cancelación CFDI27/10/2023
TIPODOCClase TipoDoc para validaciones en modelos de documentos11/09/2023
INPUTFIELDSALLGeneración de estructuras para campos de entradas15/10/2023
FISA800Timbrado CFDI27/10/2023
País:México
Ticket:N/A
Requisito/Story/Issue (informe el requisito vinculado):DMINA-21161

IMPORTANTE

Esta funcionalidad aún no esta disponible, esta en fase de Pilotos.


02. SITUACIÓN/REQUISITO

Dar solución al proceso de cancelación de Facturas que fueron emitidas dentro del mismo año y cuyo mes sea menor al mes de solicitud de cancelación, evitando afectar los movimientos financieros, contables y de stock en la fecha en que se emitió la Factura.


03. SOLUCIÓN

Se utiliza el proceso de “Cancelación Fuera de Periodo”. Éste proceso aplica a las Facturas que fueron emitidas dentro del mismo año y cuyo mes de cancelación es mayor al mes en el fueron emitidas. El proceso de cancelación fuera de periodo genera una Nota de Crédito con serie NCA (Nota de Cancelación), posteriormente, se genera un Recibo de Cobro para compensar los saldos entre la Factura y la Nota de Cancelación.

La generación de la Nota de Cancelación (NCA), solo se usará a través de rutina automática, por lo tanto, no tendrá mantenimiento por usuario ni será transmitida al SAT.

En las rutinas de Notas Fiscales(LOCXNF), Funciones Genéricas para Documentos Fiscales (LOCXNF2) y Funciones Genéricas para Documentos Fiscales para México (LOCXMEX) se asigna el tipo de documento 24 (NCA) en las líneas donde se encuentra informado el tipo de documento 4 (NCC) para poder generar la Nota de Cancelación mediante rutina automática y que ésta se pueda visualizar desde la rutina de Generación de Notas de Crédito y Débito (MATA465N)

En las rutinas de Clase TipoDoc para validaciones en modelos de documentos (TIPODOC) y Generación de estructuras para campos de entradas (INPUTFIELDSALL) se asigna el tipo de documento 24 (NCA) en las líneas donde se encuentra informado el tipo de documento 4 (NCC) para utilizar la estructura de campos por medio de modelos de MVC cuando el parámetro MV_LOCXEST = .T.

En la rutina de Cancelación CFDI (FISA817) se realizan las siguientes modificaciones:

    • Se asigna la constante dfCanFper = 13 para identificar la posición dentro del array aRegs donde estará contenido un valor de tipo booleano que servirá para identificar que el documento cancelado generó Nota de Cancelación (NCA) y Recibo de Cobro.
    • Se asigna la constante dfMsgCan = 14 para identificar la posición dentro del array aRegs donde estará contenido el valor de tipo string que servirá para almacenar los mensajes generados por el proceso de cancelación fuera de periodo.
    • Se asigna la constante dfFraPer = 15 para identificar la posición dentro del array aRegs donde estará contenido un valor de tipo booleano que servirá para identificar si el documento a cancelar se encuentra fuera de periodo.
    • Se modifica la constante dfLongitud, se asigna el número 15 para indicar el número de elementos contenidos en el array aRegs.
    • En la función F817CanMot() se inicializan los elementos del array aRegs relacionados a las posiciones almacenadas en las constantes dfCanFper, dfMsgCan y dfFraPer.
    • En la función F817VMark() se inicializan los elementos del array aRegs relacionados a las posiciones almacenadas en las constantes dfCanFper, dfMsgCan y dfFraPer, también se asigna la función lxMxExRcbo() para detectar si el documento seleccionado fue generado fuera de periodo (Contiene documentos NCA y Recibo de Cobro).
    • En la función F817Cores() se asignan los estatus "7 - Cancelada Fuera de Periodo" (Color Azul Claro) y "8 – Pendiente de Acuse" (Color Verde oscuro).
    • En la función F817Leyend() se asignan las leyendas "Cancelada Fuera de Periodo" (Color Azul Claro) y "Pendiente de Acuse" (Color Verde oscuro).
    • En la función F817Cancel() se asigna el estatus 8 para que los documentos con éste estatus puedan solicitar cancelación.
    • Se crea la función lxMxDcFrPr() para validar si el documento se encuentra fuera de periodo, también se genera un mensaje de confirmación donde se le informa al usuario el proceso que será realizado, si es confirmado, se realiza la generación del documento NCA y del Recibo de Cobro. El documento será marcado con el estatus “Cancelada fuera de periodo - Pendiente de acuse" (F2_FLFTEX = 8).
    • En la función ActualizaDoc() se valida que los documentos que están fuera de periodo, no deben ser borrados y si su motivo de cancelación es igual a 01 se ejecuta la función LxActSF3() para inicializar los campos Motivo Canc. (F3_MOTIVO) y Status Cance (F3_STATUS) de la tabla Libros Fiscales (SF3). También se ejecuta la función  lxMxActEst() para realizar la actualización de los estatus en la tabla Libros Fiscales (SF3). Si la cancelación es exitosa, el documento será marcado con el estatus “Cancelada fuera de periodo" (F2_FLFTEX = 7).
    • Se crea la función lxMxActEst() para actualizar los estatus de la tabla Libros Fiscales (SF3), dependiendo del código de respuesta de la cancelación o consulta.
    • En la función ImprimeLog() se asignan los mensajes contenidos en el elemento del array aRegs relacionado a la posición almacenada en la constante dfMsgCan.
    • Se crea la función LxMxGnraNCA() para realizar la generación de la Nota de Cancelación (NCA) y del Recibo de Cobro.
    • Se crea la función LxMxGnraRcb() para realizar la generación del Recibo de Cobro mediante rutina automática de TOTVS Recibo (FINA887).
    • Se crea la función lxMxGerNum() para generar el número de documento (extraído de la tabla SX5) que será asignado a la Nota de Crédito de Cancelación (NCA).
    • Se crea la función lxMxNmDcRc() para generar una ventana que permita al usuario agregar la Serie y el Número al Recibo de cobro.
    • Se crea la función lxMxSerRec() para validar la Serie y obtener el número de Recibo de cobro (extraído de la tabla SX5) cuando el parámetro MV_SERREC = .T.
    • Se crea la función lxMxNumRec() para validar el número de Recibo de Cobro.
    • Se crea la función lxMxLdNCC() para cargar los valores del encabezado (aCabs) e ítems (aItens) que serán enviados mediante rutina automática (MATA465N) para la generación de la Nota de Cancelación (NCA).
    • Se crea la función lxMxExRcbo() para verificar si existe un Recibo de Cobro relacionado a la Factura, si éste existe, no se genera la Nota de Cancelación ni el Recibo de Cobro del proceso de cancelación.
    • Se crea la función lxMxDocMt01() para obtener el Folio Fiscal (UUID) de los documentos con Solicitud de Cancelación previa (Motivo 01) y que quedaron con estatus 2-Rechazada, 6-No Cancelable u 8-Pendiente de acuse.  Si el documento contiene estatus 8 (que generó documento NCA y Recibo de Cobro), verifica si se actualizó la tabla de Libros Fiscales (SF3).
    • Se crea la función lxMxDocPen() para validar si el documento a sustituir se encuentra relacionado a un documento timbrado y obtiene su Folio Fiscal (UUID).
    • Se crea la función lxMxDocPer() para filtrar las Facturas que serán mostradas en la consulta especifica DOCSUS (SXB).
    • En la función ProcesoWS() se realizan las siguientes modificaciones:
      • Se agrega la función lxMxDcFrPr() para ejecutar el proceso de cancelación de documentos fuera de periodo (Nota de Cancelación NCA y Recibo de Cobro).
      • Se agrega la función lxMxDocMt01() para obtener el Folio Fiscal (UUID) de los documentos con solicitud previa (Motivo 01)
      • Se agrega la función lxMxDocPen() para validar que el documento con Motivo 01 esté relacionado a un documento que lo sustituye y éste se encuentre timbrado para obtener el Folio Fiscal (UUID).
    • En la rutina Timbrado masivo de CFDI (FISA800) se realizan las siguientes modificaciones:
      • En la función SelecSF2() se excluyen los documentos de tipo NCA (Nota de Cancelación) para que no sean mostrados en la rutina de Timbrado CFDI (FISA800).
      • En la función F800SolCan() se inicializan los elementos 13, 14 y 15 del array aRegs que pertenecen a las posiciones utilizadas por el proceso de cancelación fuera de periodo, también se agrega la función lxMxActSts() para actualizar el estatus de la Factura.
      • Se crea la función lxMxActSts() para actualizar el Estatus (F2_FLFTEX) y la Fecha de Cancelación (F2_FECCANC) del documento a sustituir. Aplica solo para documentos con Estatus 8 (Cancelados fuera de periodo con Motivo 01).
      • En la función F800ResCan() se asignan los atributos relacionados al elemento acuse del CFDI cancelado (archivo XML), para obtener la Fecha de Cancelación.
    • En la rutina Funciones de Genéricas de Documentos Fiscales para el país México (LOCXMEX) se realizan las siguientes modificaciones:
      • En la función LxActSF3() se asigna el Estatus 8 para que éste sea considerado en la actualización de la tabla Libros Fiscales (SF3)



  1. Realizar un respaldo del repositorio (archivo .rpo)
  2. Aplicar el parche correspondiente al issue DMINA-21161.
  3. Validar que las rutinas actualizadas coincidan con las indicadas en la sección 01. Datos Generales del presente Documento Técnico.
  4. Contar con la configuración de la Facturación Electrónica para México: DT Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0
  5. Contar con las actualizaciones del diccionario de datos indicadas en la sección 04. Información Adicional del presente Documento Técnico.
  6. Configurar la Serie de la Nota de Cancelación  SIGAFIS | Actualizaciones | Archivos | Contr. Formularios (MATA992).
    - Agregar la serie NCA con especie 4=FCC.
  7. Contar con Facturas timbradas y que se encuentren fuera del periodo actual.

1. Cancelación de una Factura de Venta fuera del periodo actual con estatus “Cancelable con aceptación” y Motivo de Cancelación igual a 01.

1.1 Cancelación de Factura de Venta en el sistema con generación de Nota de Crédito por Cancelación y Recibo de Cobro por Compensación.

    • En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Cancelación de CFDI (FISA817).
    • Informar los parámetros necesarios para visualizar Facturas de Venta (NF) timbradas previamente.
    • Seleccionar una Factura de Venta (NF) previamente timbrada y que corresponda a un periodo anterior.
    • Dar clic en el botón Act. Status.
    • Confirmar la continuación con la Consulta de Estado del documento.

    • Validar que el documento tenga el estatus "Cancelable con aceptación".
    • Seleccionar nuevamente la Factura de Venta (NF) que se consultó.
    • Dar clic en el botón Cancelar.
    • Confirman la continuación de la Solicitud de Cancelación.
    • En la pantalla Motivo Baja:
      • Informar el campo Motivo "01 - Comprobante emitido con errores con relación de documento".


    • Después de confirmar el Motivo de Baja, el sistema informa que será ejecutado el proceso de “Cancelación Fuera de Periodo”. En éste proceso se genera una Nota de Cancelación, con Serie "NCA", y un Recibo de Cobro que servirá para compensar la Factura con la Nota de Cancelación.

    • Confirmar la cancelación.

      • Se muestra la ventana de “Generación de Recibo”. En ésta ventana se informan los valores de baja (El saldo de la Factura contra el valor a pagar de la Nota de Cancelación) y se permite asignar la Serie (solo si MV_SERREC = .T.) y el número del Recibo de Cobro.



    • Confirmar la generación de Recibo de Cobro.
    • Una vez finalizado el proceso de cancelación, revisar el log.



      El log indica que se ha generado la Nota de Crédito de Cancelación (NCA) y el Recibo de Cobro de compensación.
      La Factura cambia de estatus a “Cancelada Fuera de Periodo – Pendiente de acuse”, este estatus indica que la Nota de Cancelación y el Recibo de Compensación fueron generados correctamente pero no se ha realizado solicitud de cancelación ante el SAT.




    • Seleccionar nuevamente la Factura y dar clic en el botón Cancelar.

      El sistema indica que para realizar la solicitud primero hay que generar la Factura que va a sustituir a la Factura cancelada.




  •  1.2 Nota de Cancelación. 

    • En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Generac. de Notas de Crédito y Débito (MATA465N)
    • En el parámetro "Tipo de Factura" seleccionar la opción “Doc Cancel NCA”.

    • Visualizar la Nota de Cancelación (ubicar con el número de Nota de Cancelación informado en el log de la cancelación).



    • Validar de manera general que toda la información contenida en la Nota de Cancelación esté relacionada a la Factura cancelada.



      La generación de la Nota de Crédito de Cancelación (NCA), solo se usará a través de rutina automática, por lo tanto, no tendrá mantenimiento por el usuario ni será transmitida al SAT.



1.3 Recibo de Compensación.

    • En el módulo de Financiero (SIGAFIN) ir al menú Actualizaciones | Cuentas por Cobrar | Totvs Recibo (FINA998)
    • Buscar el Recibo (ubicar el número de Recibo informado en el log de la cancelación).
    • Visualizar el Recibo y validar que cuente con la compensación entre la Factura cancelada y la Nota de Cancelación (NCA):




1.4 Generación de Factura de Venta que sustituye a la Factura cancelada y solicitud de cancelación ante el SAT.

    • En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MAT467N)
    • Incluir una nueva Factura de Venta (NF).
    • En el encabezado, informar en los campos Serie Sust. (F2_SERMAN) y Núm. Doc. Sust. (F2_DOCMAN), la Factura que fue anulada en Protheus pero que no fue Cancelada ante el SAT.




    • Informar los productos y sus valores.
    • Dar clic en el botón Grabar para guardar la Factura.
    • Confirmar la generación y timbrado del Comprobante Fiscal Digital por Internet (CFDI), validar que se haya timbrado la nueva Factura y que se muestre el mensaje Documento enviado para solicitud de cancelación ante el SAT".

      La Factura que fue sustituida se envía para Solicitud de Cancelación, como su estatus inicial era “Cancelable con aceptación”, debe quedar en "Proceso" hasta que ésta sea aceptada.


      Si la Factura que sustituye no se timbra, no será realizada la solicitud de cancelación de la Factura a sustituir, por lo tanto, para poder realizar la Solicitud de Cancelación, se deberá borrar la Factura que sustituye (la que no se timbró) y crear otra Factura para relacionar nuevamente la factura a sustituir.



1.5 Consulta de estatus ante el SAT de la Factura con estatus "En proceso de cancelación".

    • En el módulo Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Cancelación de CFDI (FISA817).
    • Informar los parámetros necesarios para visualizar la Factura de Venta (NF) que fue cancelada previamente.
      La Factura ha cambiado el estatus a “En proceso de cancelación” y queda lista para consultar su estado.



    • Seleccionar la Factura de Venta y dar clic en el botón "Act. Status".

      La Consulta de Estado mediante el botón “Act. Status” no es funcional en ambientes de pruebas. Para obtener resultados esperados se modifica directamente el archivo .xml (se utiliza un pack modificado que indica el momento que debe actualizarse el archivo XML).

    • Una vez finalizado el proceso de consulta, revisar el log.


      La solicitud es aceptada y se realiza la cancelación del documento ante el SAT. La Factura cambia de estatus a Cancelada fuera de periodo”. La Factura puede cambiar a otros estatus dependiendo la respuesta que retorne el SAT.



    • Seleccionar nuevamente la Factura.
      El sistema indica que a Factura ya se encuentra cancelada.


    • En el módulo de Facturación (SIGAFAT) ir al menú Actualizaciones | Facturación | Facturaciones (MAT467N)
    • Revisar el estatus de la Factura cancelada anteriormente.
      La Factura cambia el estatus a “Cancel. Fuera de Periodo”.



    • Seleccionar la Factura e intentar borrarla o anularla. 

    • Validar que se muestre un mensaje indicando que la Factura no se puede borrar.



      Las facturas con estatus “Cancel. Fuera de Periodo” y “Cancel. Fuera de Periodo – Pendiente de acuse” no se podrán borrar o anular ya que se encuentran canceladas o en proceso de cancelación.




04. INFORMACIÓN ADICIONAL

Actualizaciones al diccionario.

Preguntas en el archivo SX1 – Archivo de Preguntas:

Modificar grupo MT465N

Orden

02

Pregunta

¿Tipo De Factura ?                     

Tipo

N

Tamaño

1

Decimal0
Ítem 1

Cargo          

Ítem 2

Abono          

Ítem 3

Doc Cancel NCA


Consulta Estándar en el archivo SXB – Consulta Estándar:

Modificar consulta DOCSUS

Alias

Tipo

SecuenciaColumnaDescripciónContenido

DOCSUS

1

01DBDocumento SustituyeSF3

DOCSUS

2

0105Serie Fact. + Factur

DOCSUS

4

0101SerieF3_SERIE
DOCSUS40102Número DocumentoF3_NFISCAL
DOCSUS40103ClienteF3_CLIEFOR
DOCSUS40104TiendaF3_LOJA
DOCSUS40105UUIDF3_CNATREC
DOCSUS501

SF3->F3_SERIE
DOCSUS502

SF3->F3_NFISCAL
DOCSUS601

 lxMxDocPer()


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

Agregar parámetro MV_SERNCA

Nombre de la Variable

MV_SERNCA

Tipo

Caracter 

Descripción

Serie de la Nota de Cancelación para Docs. Fuera de Periodo.  

Valor EstándarNCA

Paquete de actualización

Los ajustes al Diccionario de Datos estándar, se realizaron en el siguiente paquete de uso interno:

Código: 012836
Descripción: MI - DMINA-21161 FACTURA CANCELACIÓN FUERA DE PERI


Creación de serie en el archivo SX5 - Tablas Genéricas:

Nuevo registro en la Tabla 01 - Series de Facturas para Nota de Crédito de Cancelación

Clave

Descripción

NCA00000000000000000001

La serie configurada en el parámetro MV_SERNCA debe ser registrada en la Tabla Genérica (SX5) 01 – Series de Factura, así como en la tabla de Control de Formularios (SFP).




¡IMPORTANTE!

La presente solución aplica para versión 12.1.2210 o superior, y es necesario tener activa la funcionalidad de Facturación Electrónica para el país México.

05. ASUNTOS RELACIONADOS

  • DT Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0
  • DT Cancelación de Factura Electrónica fuera de periodo MEX