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: | 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
- Realizar un respaldo del repositorio del ambiente (archivo RPO).
- Aplicar el parche correspondiente al issue DMINA-16668.
- 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.
- Contar con la configuración mencionada en el Documento Técnico de la sección 04. INFORMACIÓN ADICIONAL
- Realizar los cambios del archivo FATSMEX.INI mencionada en el Documento Técnico de la sección 04. INFORMACIÓN ADICIONAL
- Ingresar al módulo Facturación (SIGAFAT) ir al menú "Actualizaciones | Archivos | Condiciones de Pago " (MATA360).
- Configurar una Condición de Pago informando el campo Met Pago SAT (E4_MPAGSAT) con el valor "PUE".
- 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).
- Si es necesario liberar de crédito y stock desde el menú "Actualizaciones | Pedidos | Liberación de Crédito y Stock " (MATA456).
- 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).
- 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).
- 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).
- 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).
- 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.
Campo | C5_TPDOC |
---|---|
Tipo | C - Caracter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Título | Forma de Pago |
Descripción | Forma de Pago SAT |
Modo edición | LxMxHab("C5",.T.) |
Consulta | MEX005 |
Validación de sistema | Vazio() .or. ValidF3I("S005", M->C5_TPDOC,1,2) |
Nivel | 1 |
Obligatorio | Sí |
Utilizado | Sí |
Browse | No |
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.
Campo | F2_TPDOC |
---|---|
Tipo | C - Caracter |
Tamaño | 2 |
Decimal | 0 |
Formato | @! |
Título | Forma de Pago |
Descripción | Forma de Pago SAT |
Modo edición | LxMxHab("F2",.T.) |
Consulta | MEX005 |
Validación de sistema | Vazio() .or. ValidF3I("S005", M->F2_TPDOC,1,2) |
Nivel | 1 |
Obligatorio | Sí |
Utilizado | Sí |
Browse | No |
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 Dominio | C5_CLIENTE |
Secuencia | 002 |
Regla | LxMxHab("C5",.T.) |
Campo Ctr. Dominio | C5_TPDOC |
Tipo | P - Primario |
Seek | N - No |
Campo Dominio | C5_LOJACLI |
Secuencia | 002 |
Regla | LxMxHab("C5",.T.) |
Campo Ctr. Dominio | C5_TPDOC |
Tipo | P - Primario |
Seek | N - No |
Campo Dominio | F2_CLIENTE |
Secuencia | 004 |
Regla | LxMxHab("F2",.T.) |
Campo Ctr. Dominio | F2_TPDOC |
Tipo | P - Primario |
Seek | N - No |
Campo Dominio | F2_LOJA |
Secuencia | 004 |
Regla | LxMxHab("F2",.T.) |
Campo Ctr. Dominio | F2_TPDOC |
Tipo | P - Primario |
Seek | N - 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.
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])) + '"' )
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¡IMPORTANTE!