Á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
LOCXMEXFunciones Genéricas para Documentos Fiscales para México.20/09/2022
MATA462ANGeneración de Remitos de Venta.19/09/2022
MATA468NGeneración de Notas Fiscales.19/09/2022
FATSMEX.INIGeneración de XML de Documentos de Salida20/09/2022
País:México
Ticket:14883985 (Pacote: 011130)
Requisito/Story/Issue (informe el requisito vinculado):DMINA-16668


02. SITUACIÓN/REQUISITO

Se requiere permitir modificar y/o indicar la Forma de Pago del Documento desde que se está generando, por lo tanto se requiere activar un campo donde se indique la "Forma de Pago" en el encabezado de los documentos de tipo: "Pedido de Venta (MATA410),  Factura (MATA467N), Nota de Débito (MATA465N) y Remisión de ventas (MATA462N)"

03. SOLUCIÓN

En la rutina Funciones Genéricas para Documentos Fiscales para México "LOCXMEX":

Se agrega el campo Forma de Pago (F2_TPDOC) para que se visualice en la pantalla de los documentos de tipo Factura (MATA467N), Nota de Débito (MATA465N) y Remisión de ventas (MATA462N).

Se crea la función LxMxHab() y la función LxMxFPago() que cumplen con la siguiente regla de negocio:

    • Cuando el cliente tiene indicado el campo Forma de Pago desde la rutina de "Clientes>Complemento del cliente" se mostrará el contenido el campo (AI0_MPAGO).
    • Si la condición de pago del Pedido/Factura /Nota de Débito tiene asociado el Método de Pago - "PPD - Pago en Parcialidades ó PID - Pago Diferido", entonces se indicará el campo Forma de Pago (C5_TPDOC/F2_TPDOC) con valor "99" y no se permitirá su edición. Si el usuario cambia a otra condición de pago que no tenga relacionado el método de pago un Método de Pago - "PPD - Pago en Parcialidades ó PID - Pago Diferido" se permitirá la edición del campo Forma de Pago (C5_TPDOC/F2_TPDOC).

En la rutina Generación de Remitos de Venta "MATA462AN":

Se modifica la función de Generación de Remito Automático (A462ANGera), para que se realice el guardado del campo Forma de Pago (F2_TPDOC), a partir del campo Forma de Pago (C5_TPDOC) al generar la Factura a partir de la Remisión.

En la rutina Generación de Notas Fiscales "MATA468N":

Se modifica la función que Genera Registros en SF2 y Acumula Valores (A468nGravF2), para que realice el guardado del campo Forma de Pago (F2_TPDOC), a partir del campo Forma de Pago (C5_TPDOC) al generar la Factura a partir de un "Pedido" y de un "Pedido a Remisión".


IMPORTANTE

Cuando se modifica una condición de pago con Método de Pago SAT igual a "PPD" por una con  Método de Pago SAT igual a "PUE" en el campo Forma de Pago del Documento (C5_TPDOC ó F2_TPDOC) se habilitará el campo para su edición con el valor "99" por default por lo tanto si se requiere una forma de pago diferente deberá modificarse.

Ejemplo


  1. Realizar un respaldo del repositorio del ambiente (archivo RPO).
  2. Aplicar el parche correspondiente al issue DMINA-16668.
  3. Validar que las rutinas incluidas en el parche coincidan con las mencionadas en la sección "Función" del encabezado del presente Documento Técnico, así como las fechas.
  4. Contar con la configuración mencionada en el Documento Técnico de la sección 04. INFORMACIÓN ADICIONAL
  5. Realizar los cambios del archivo FATSMEX.INI mencionada en el Documento Técnico de la sección 04. INFORMACIÓN ADICIONAL
  6. Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Archivos | Condiciones de Pago " (MATA360).
  7. Configurar una Condición de Pago informando el campo Met Pago SAT (E4_MPAGSAT) con el valor "PUE".
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Pedidos | Pedidos de Venta " (MATA410).
    • Generar un Pedido de Venta, informando el campo Doc Gener (C5_DOCGER) con la opción 1-Factura,  para generar una Factura.
    • Indicar una Condición de Pago con Método de Pago SAT igual a "PUE". (ver pre-condiciones)
    • Asignar una Forma de Pago (C5_TPDOC).
  2. Si es necesario liberar de crédito y stock desde el menú "Actualizaciones | Pedidos | Liberación de Crédito y Stock " (MATA456).
  3. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas" (MATA468N)
    • Informar en la pregunta ¿Generación por?, la opción Pedidos
    • Informar los parámetros necesarios para el filtrado de los ítems del Pedido de Venta incluido previamente.
    • Seleccionar los ítems relacionados al Pedido de Venta incluido previamente.
    • En el menú "Otras acciones" seleccionar la opción "Generar Factura".
    • En la pantalla de factura a generar informar la serie, verificar el folio de la Factura y presionar Ok.
    • Confirmar la generación y timbrado del CFDI.
    • Revisar el archivo XML deberá contener en el nodo "FormaPago" el valor indicado en el pedido de venta en el campo Forma de Pago (C5_TPDOC).
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Form de Remisión | Generac. de Remitos de Venta"(MATA462N).
    • Generar una Remisión de Venta para generar una Factura.
    • Indicar una Condición de Pago con Método de Pago SAT igual a "PUE". (ver pre-condiciones)
    • Asignar una Forma de Pago (C5_TPDOC).
  2. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas" (MATA468N)
    • Informar en la pregunta ¿Generación por?, la opción Remisión.  
    • Informar los parámetros necesarios para el filtrado de los ítems de la Remisión incluida previamente.
    • Seleccionar los ítems relacionados a la Remisión incluida previamente.
    • En el menú "Otras acciones" seleccionar la opción "Generar Factura".
    • En la factura a generar seleccionar la serie y confirmar los cambios.
    • Confirmar la generación y timbrado del CFDI.
    • Revisar el archivo XML deberá contener en el nodo "FormaPago" el valor indicado en la Remisión de Venta en el campo Forma de Pago (C5_TPDOC).
  1. Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Facturación | Facturaciones " (MATA467N).
    • Indicar una Condición de Pago con Método de Pago SAT igual a "PUE". (ver pre-condiciones)
    • Asignar una Forma de Pago (C5_TPDOC).
    • Guardar la Factura de Venta (NF).
    • Confirmar la generación y timbrado del CFDI.
    • Revisar el archivo XML deberá contener en el nodo "FormaPago" el valor indicado en la Factura de venta en el campo Forma de Pago (C5_TPDOC).
  1. Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Facturacion | Generac de Notas de Crédito y Debito" (MATA465N).
    • Seleccionar para la creación de una "Nota de Débito"
    • Indicar una Condición de Pago con Método de Pago SAT igual a "PUE". (ver pre-condiciones)
    • Asignar una Forma de Pago (C5_TPDOC).
    • Guardar la Nota de Débito de Cliente (NDC).
    • Confirmar la generación y timbrado del CFDI.
    • Revisar el archivo XML deberá contener en el nodo "FormaPago" el valor indicado en la Nota de Débito en el campo Forma de Pago (C5_TPDOC).

04. INFORMACIÓN ADICIONAL

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

Tabla SC5 - Pedidos de Venta.

CampoC5_TPDOC
TipoC - Caracter
Tamaño2
Decimal0
Formato@!
TítuloForma de Pago
DescripciónForma de Pago SAT
Modo ediciónLxMxHab("C5",.T.)
ConsultaMEX005
Validación de sistemaVazio() .or. ValidF3I("S005", M->C5_TPDOC,1,2)
Nivel1
Obligatorio
Utilizado
BrowseNo
Help

Informe la Forma de Pago SAT para el Documento generado, de acuerdo al catálogo cFormaPago definido por el SAT. Si la condición de Pago usa un Método de pago "PPD O PID" no se permitirá su edición.


Tabla SF2 - Encabezado de Fact. de Salida.

CampoF2_TPDOC
TipoC - Caracter
Tamaño2
Decimal0
Formato@!
TítuloForma de Pago
DescripciónForma de Pago SAT
Modo ediciónLxMxHab("F2",.T.)
ConsultaMEX005
Validación de sistemaVazio() .or. ValidF3I("S005", M->F2_TPDOC,1,2)
Nivel1
Obligatorio
Utilizado
BrowseNo
Help

Informe la Forma de Pago SAT para el Documento generado, de acuerdo al catálogo cFormaPago definido por el SAT. Si la condición de Pago usa un Método de pago "PPD O PID" no se permitirá su edición.


Creación de Disparadores en el archivo SX7 – Disparadores:


Campo DominioC5_CLIENTE
Secuencia002
ReglaLxMxHab("C5",.T.)
Campo Ctr. DominioC5_TPDOC
TipoP - Primario
SeekN - No
Campo DominioC5_LOJACLI
Secuencia002
ReglaLxMxHab("C5",.T.)
Campo Ctr. DominioC5_TPDOC
TipoP - Primario
SeekN - No
Campo DominioF2_CLIENTE
Secuencia004
ReglaLxMxHab("F2",.T.)
Campo Ctr. DominioF2_TPDOC
TipoP - Primario
SeekN - No
Campo DominioF2_LOJA
Secuencia004
ReglaLxMxHab("F2",.T.)
Campo Ctr. DominioF2_TPDOC
TipoP - Primario
SeekN - No


FATSMEX.INI

Se requiere editar el script actual de generación de CFDI (Archivo XML), actualizando las secciones de acuerdo al siguiente modelo, en donde se agregaron o fueron modificadas líneas para integrar esta nueva funcionalidad.

FATSMEX.INI

En el apartado de [XXX INICIALIZACION] 

Se agrega la línea:

(PRE) _aTotal[107] := IIf(SF2->(ColumnPos("F2_TPDOC")) > 0,ALLTRIM(SF2->F2_TPDOC),ALLTRIM(AI0->AI0_MPAGO))

En el apartado de ///////////DATOS DE LA FACTURA///////////////// 

Se modifica la línea:

//FormaPago
(PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", IIf(SF2->F2_GLOBAL == '1',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO))) + _aTotal[098] )

Por la línea:

//FormaPago
(PRE) cCadOrig += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", IIf(SF2->F2_GLOBAL == '1',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(_aTotal[107]).Or. Alltrim(SE4->E4_MPAGSAT) == "PPD","99",_aTotal[107])) + _aTotal[098] )


En el apartado de [XXX FACTURA]

Se modifica la línea:

(PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' FormaPago="' +  IIf(SF2->F2_GLOBAL == '1',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(AI0->AI0_MPAGO),"99",Alltrim(AI0->AI0_MPAGO))) + '"' )

Por la siguiente línea

(PRE) _aTotal[001] += IIf(Alltrim(SF2->F2_TIPODOC) == "21", "", ' FormaPago="' +  IIf(SF2->F2_GLOBAL == '1',FormPagGlo(SF2->F2_DOC,SF2->F2_SERIE),IIf(Empty(_aTotal[107]) .Or. Alltrim(SE4->E4_MPAGSAT) == "PPD","99",_aTotal[107])) + '"' )


¡IMPORTANTE!

Esta solución aplica para versión 12.1.33 o superior y que tenga activada la funcionalidad de Factura Electrónica versión 4.0


05. ASUNTOS RELACIONADOS

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