01. DATOS GENERALES
Producto | TOTVS Backoffice | ||||||
---|---|---|---|---|---|---|---|
Línea de producto: | Línea Protheus | ||||||
Segmento: | Backoffice | ||||||
Módulo: | SIGAFAT - Facturación | ||||||
Función: |
| ||||||
País: | México | ||||||
Ticket: | No aplica | ||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-23788 |
02. SITUACIÓN/REQUISITO
En la rutina Facturación(MATA467N), al realizar el registro y el timbrado de una factura relacionada para sustituir a una factura que fue cancelada fuera de periodo,la factura a sustituir no es cancelada.
Al intentar realizar la cancelación desde la rutina FISA817, manda un mensaje en el log del proceso de que no se esta adjuntando el motivo de cancelación y no se esta realizando la solicitud de cancelación ante el sat.
03. SOLUCIÓN
- En la rutina de Cancelación CFDI (FISA817) se realizan las siguientes modificaciones:
- En la función ProcesoWS(), se realiza el ajuste para borrar el archivo temporal(timbradocfdi.ini) con la lista de documentos a cancelar en caso de que ya este creado para que vuelva a crearse desde cero .
En la función lxMxActEst, se ajustan los parámetros que recibe la función y se realiza el ajuste para actualizar el estatus a Cancelación fuera de periodo en caso de que se realice el proceso de cancelación ante el SAT correctamente.
Los cambios realizados en la rutina FISA817 son exclusivos para el proyecto piloto.
- Realizar un respaldo del repositorio (archivo .rpo)
- Aplicar el parche de pilotos:
Aplicar parche de la issue DMINA-23788
- Validar que las rutinas actualizadas coincidan con las indicadas en la sección 01. Datos Generales del presente Documento Técnico.
- 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
- Contar con la configuración de la Cancelación de la Factura Electrónica fuera de periodo para México: DT Cancelación de Factura Electrónica fuera de periodo MEX
Realizar las siguientes modificaciones al archivo de configuración FATSMEX.INI:
Dentro del apartado [XXX INICIALIZACION] agregar las líneas que se indican en color verde y sustituir las líneas que se indican en color azul.[XXX INICIALIZACION]
(PRE) SD2->(DbSetOrder(1))
(PRE) SB1->(DbSetOrder(1))
(PRE) SYA->(DbSetOrder(1))
(PRE) SC6->(DbSetOrder(1))
(PRE) SE4->(DbSetOrder(1))
(PRE) CTO->(DbSetOrder(1))
(PRE) SAH->(DbSetOrder(1))
(PRE) _aTotal[009] := SuperGetMV("MV_CFDICPG", .F., "")
(PRE) _aTotal[010] := FindFunction("zh_FechaHoraUTC") .And. !Empty(_aTotal[009])
(PRE) _aTotal[011] := FindFunction("LxFunaCaPo")
(PRE) _aTotal[094] := ""
(PRE) _aTotal[095] := ""
(PRE) _aTotal[033] := ""
(PRE) _aTotal[034] := ""
(PRE) _aTotal[035] := ""
(PRE) _aTotal[036] := 0
(PRE) _aTotal[037] := 0
(PRE) _aTotal[038] := 0
(PRE) _aTotal[039] := SuperGetMV("MV_CFDIEXP",.F.,.F.)
(PRE) _aTotal[040] := date() - 7
(PRE) _aTotal[075] := Alltrim(SM0->M0_NOMECOM)
(PRE) _aTotal[076] := ((_aTotal[039] .And. !Empty(SF2->F2_TIPOPE)) .Or. SF2->(ColumnPos("F2_TPCOMPL")) > 0 .And. AllTrim(SF2->F2_TPCOMPL)=="S") .And. Alltrim(SF2->F2_TIPODOC) == "21"
(PRE) IIf(_aTotal[010],_aTotal[096] := zh_FechaHoraUTC(Alltrim(_aTotal[009]),Alltrim(SM0->M0_CEPENT),IIF(SF2->F2_EMISSAO <_aTotal[040], DATE(), SF2->F2_EMISSAO ),SF2->F2_HORA),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] := DtoS(IIF(SF2->F2_EMISSAO <_aTotal[040], DATE(), SF2->F2_EMISSAO)),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] := Left(_aTotal[096],4) + "-" + Substr(_aTotal[096],5,2)+ "-" + Right(_aTotal[096],2),"")
(PRE) IIf(!_aTotal[010],_aTotal[096] += "T" + SF2->F2_HORA,"")
(PRE) _aTotal[097] := {"SD2",""}Los cambios realizados en el archivo de configuración FATSMEX.INI son exclusivos para el proyecto piloto.
Contar con Facturas timbradas y que se encuentren fuera del periodo actual (emitidas dentro del mismo año, con mes de emisión menor al mes de cancelación). Ejemplo:
- Cambiar la fecha del sistema Protheus con la fecha 01/03/2024.
- Dar de alta una Factura de Salida y timbrarla.
- Cambiar la fecha del sistema Protheus con la fecha actual.
Cancelación de una Factura de Venta fuera de periodo con estatus “Cancelable con aceptación” y Motivo de Cancelación igual a 01.
- 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 las Facturas de Venta (NF), timbradas previamente.
- Seleccionar la 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.
Los siguientes campos muestran valores de ejemplo para proceder a la cancelación de una Factura que se emitió en un periodo anterior a la fecha en que se desea cancelar, por ejemplo octubre/2023, la factura tiene estatus "Cancelable con aceptación".
Status cancelación CFDI à F2_FLFTEX = '0'
Es cancelable con aceptación F2_ESCANC = '2'
Fecha de Timbrado F2_FECTIMB = '20230703'
Fecha de Emisión Factura F2_EMISSAO = '20230703'- 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.
- Confirmar 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".
- 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 Crédito 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 el parámetro 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.
Generación de Factura de Venta que sustituye 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.
- 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 no se envía para Solicitud de Cancelación:
Cancelación ante el SAT de la Factura pendiente.
- 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 no fue cancelada previamente.
La Factura aun cuenta con el estatus de “Cancelada Fuera de Periodo – Pendiente de acuse” - Realizar la cancelación de la factura con el botón "Cancelar".
- Como su estatus inicial de la factura era “Cancelable con aceptación”, debe quedar en proceso hasta que ésta sea aceptada.
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 de los PAC. Para obtener resultados satisfactorios, se modifican directamente los campos de estado del documento.
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.
04. INFORMACIÓN ADICIONAL
No aplica.
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. Solución exclusiva para el proyecto piloto.¡IMPORTANTE!
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
- documento_tecnico
- totvs_backoffice
- linea_protheus
- sigafat
- facturacion
- mex
- dmina_22522
- cancelacion_cfdi_mex
- fisa817
- timbres_fiscales
- fisa800
- locxnf
- locxnf2
- tipodoc
- inputfieldsall
- locxmex
- cancelacion_fuera_de_periodo
- factura_de_venta
- nota_de_cancelacion
- mata465n
- ncc
- nca
- totvs_recibo
- fina998
- motivos_de_cancelacion
- version_12_1_2210
- 12_1_2210
- fina887
- cfdi_4_0
- mexico
- timbrado_cfdi
- cancelacion_cfdi
- locxfuna
- canelacion_factura_piloto
- piloto