...
Producto | |
---|
Línea de producto: | |
---|
Segmento: | |
---|
Módulo: | SIGAFAT- Facturación |
---|
Función: | Rutina | Nombre Técnico | Fecha |
---|
LOCXFUNA | Funciones genéricas de localizaciones | 24/09/2023 | FATSMEX.PRW | Generación de XML para Documentos de Salida | 24/09/2023 | FATEMEX.PRW | Generación de XML para Documentos de Entrada | 24/09/2023 |
|
---|
País: | México (MEX) |
---|
Ticket: | No aplica |
---|
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20950 |
---|
...
En la rutinas de Generación de XML para Documentos de Salida (FATSMEX.PRW) y Generación de XML para Documentos de Entrada (FATEMEX.PRW):
Se activó el Punto de Entrada PEXMLDOC, el cual permite:
- En el nodo cfdi:Comprobante, permitir personalizar los atributos:
- Total
- Subtotal
- Fecha
- Descuento
- TipoCambio
- LugarExpedicion
- Moneda
- FormaPago
- MetodoPago
- Personalizar el nodo cfdi:Conceptos
- Personalizar el valor del atributo SubTotal.
- Personalizar el valor del atributo Total.
- Personalizar el nodo cfdi:Impuestos que corresponde a los Impuestos Totales del Documentos.
Informações |
---|
|
El punto de Entrada PEXMLDOC,recibe 2 parámetros, donde: El primer parámetro es de tipo |
...
caracter, con las siguientes opciones: - ST para personalizar el valor del atributo SubTotal,
- T personalizar el valor del atributo
|
...
- Total
- FE personalizar el valor del atributo Fecha
- D personalizar el valor atributo Descuento
- TC personalizar el valor del atributo TipoCambio
- LE personalizar el valor de atributo LugarExpedicion
- MO personalizar el valor del atributo Moneda
- FP personalizar el valor del atributo FormaPago
- MP personalizar el valor del atributo MetodoPago
- TI para personalizar el nodo cfdi:Impuestos de los impuestos totales del documento.
|
...
- CO para personalizar el nodo cfdi:Conceptos
El segundo parámetro recibe el valor lógico .T. o .F., que indica si se va a generar la Cadena Original o el XML (.T. es igual a generar la Cadena Original y .F. es igual a generar el XML, y este parámetro no aplica para las opciones ST - Subtotal y T - Total). El retorno debe ser un valor de tipo carácter. |
Aviso |
---|
|
La presente funcionalidad se encuentra en fase de desarrollo, y no ha sido liberada de manera oficial, por lo cual, se recomienda seguir utilizando la funcionalidad del uso de los archivos FATSMEX.INI y FATEMEX.ini, para lo cual el parámetro MV_FEXML no debe existir o estar vacío. Para los Puntos de Entrada PECOMPCON, PEXMLDOC, PEDETIMP y LOCXCONCEP se tiene acceso a las tablas SF1 - Encabezado de Fact. de Entrada y SF2 - Encabezado de Fact. de Salida. |
Totvs custom tabs box |
---|
tabs | Pre-condiciones, Timbrado NF, Timbrado NCC, Paso 04 |
---|
ids | paso1,paso2, paso3 |
---|
|
Totvs custom tabs box items |
---|
default | yes |
---|
referencia | paso1 |
---|
| - Realizar un respaldo del repositorio del ambiente (archivo RPO).
- Aplicar el parche correspondiente al issue DMINA-20950.
- 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.
- Configurar el parámetro MV_FEXML, con el valor igual a "S".
- Configurar el parámetro MV_CFDDIRS con la ruta donde se encuentran las llaves y certificados.
- Configurar el parámetro MV_CFDI_CP con el nombre y extensión del Archivo de la clave privada (.pem).
- Configurar los parámetros MV_IVATRAS y MV_RETIVAM con los códigos de Impuestos y Retenciones.
- Ingresar al módulo Libros Fiscales (SIGAFIS), ir al menú Actualizaciones | Archivos | Contr. Formularios (MATA992)
- Configurar los datos para la Serie de la Factura informando los campos No. Inicial, No. Final, Fch Validez y Certificado.
- Ingresar al módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Tipos de Entrada y Salida (MATA080)
- Configurar el Tipo de Salida (TES), para el cálculo de Impuestos de la Factura de Salida (NF).
- Ingresar al módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Productos (MATA010)
- Configurar el o los Productos, para la generación de la Factura de Salida (NF).
- Ingresar al módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Clientes.
|
Totvs custom tabs box items |
---|
| - Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Facturaciones (MATA467N)
- Indicar los parámetros de la rutina, informando la pregunta ¿Normal/Benef./Anticipo? con la opción Normal.
- Incluir una Factura de Venta (NF):
- Informar los datos del Encabezado de la Factura de Venta.
- Informar los datos de los ítems de la Factura de Venta.
- Confirmar el grabado de la Factura de Venta.
- Confirmar la generación y timbrado exitoso del Comprobante Fiscal Digita para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
- Validar que el XML contenga la información de acuerdo a lo personalizado por los Puntos de Entrada PECOMPCON, PEXMLDOC y LOCXCONCEP.
|
Totvs custom tabs box items |
---|
| - Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas de Crédito y Débito (MATA465N)
- Incluir una Nota de Crédito de Cliente:
- Informar los datos del Encabezado de la Nota de Crédito de Cliente (NCC).
- Informar los datos de los ítems de la Nota de Crédito de Cliente (NCC).
- Confirmar el grabado de la Nota de Crédito de Cliente (NCC).
- Confirmar la generación y timbrado exitoso del Comprobante Fiscal Digital para Internet (Ésta confirmación puede presentarse o no de acuerdo a la configuración del parámetro MV_CFDUSO).
- Validar que el XML contenga la información de acuerdo a lo personalizado por los Puntos de Entrada PECOMPCON, PEXMLDOC y LOCXCONCEP.
|
|
...
Bloco de código |
---|
title | PECOMPCON |
---|
linenumbers | true |
---|
|
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User Function PECOMPCON()
Local cXMLCon := ""
Local cCRLF := (chr(13)+chr(10))
Local cOpc := PARAMIXB[1] //Opción donde IA - Información Aduanera, CP - Cuenta Predial
Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
Local cSepa := "|"
Local cNPed := "23 47 3807 8003832"
Local cCtaP := "15956011002"
If Alltrim(cEspecie) $ "NF|NCC"
If lCadO
If cOpc == "IA" //Información Aduanera
cXMLCon := StrTran(cNPed," "," ") + cSepa
ElseIf cOpc == "CP" //Cuenta Predial
cXMLCon := cCtaP + cSepa
EndIf
Else
If cOpc == "IA" //Información Aduanera
cXMLCon := Space(12) + '<cfdi:InformacionAduanera NumeroPedimento="' + cNPed + '"/>' + cCRLF
ElseIf cOpc == "CP" //Cuenta Predial
cXMLCon := Space(12) + '<cfdi:CuentaPredial Numero="' + cCtaP + '"/>' + cCRLF
EndIf
EndIf
EndIf
Return cXMLCon |
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User Function PECOMPCON()
Local cXMLCon := ""
Local cCRLF := (chr(13)+chr(10))
Local cOpc := PARAMIXB[1] //Opción donde IA - Información Aduanera, CP - Cuenta Predial
Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
Local cSepa := "|"
Local cNPed := "23 47 3807 8003832"
Local cCtaP := "15956011002"
If Alltrim(cEspecie) $ "NF|NCC"
If lCadO
If cOpc == "IA" //Información Aduanera
cXMLCon := StrTran(cNPed," "," ") + cSepa
ElseIf cOpc == "CP" //Cuenta Predial
cXMLCon := cCtaP + cSepa
EndIf
Else
If cOpc == "IA" //Información Aduanera
cXMLCon := Space(12) + '<cfdi:InformacionAduanera NumeroPedimento="' + cNPed + '"/>' + cCRLF
ElseIf cOpc == "CP" //Cuenta Predial
cXMLCon := Space(12) + '<cfdi:CuentaPredial Numero="' + cCtaP + '"/>' + cCRLF
EndIf
EndIf
EndIf
Return cXMLCon |
Bloco de código |
---|
title | PEXMLDOC |
---|
linenumbers | true |
---|
|
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User Function PEXMLDOC()
Local cOpc := PARAMIXB[1] //Opción para indicar el atributo o el nodo a personalizar
Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
Local cXMLRet := ""
Local cSepa := "|"
Local cSubT := "0.01"
Local cTot := "0.01"
Local cCRLF := (chr(13)+chr(10))
//Datos Impuestos Totales
Local cTotIT := "0.00"
Local cBasIT := "0.01"
Local cImpT := "002"
Local cTpFac := "Tasa"
Local cTasCuo := "0.000000"
Local cValor := "0.00"
If Alltrim(cEspecie) $ "NF|NCC"
If cOpc == "ST" //SubTotal
cXMLRet := cSubT
ElseIf cOpc == "T" //Total
cXMLRet := cTot
ElseIf cOpc == "D" //Descuento
cXMLRet := "20.00"
ElseIf cOpc == "FE" //Fecha de emisión
cXMLRet := ""
ElseIf cOpc == "FP" // FormaPago
cXMLRet := ""
ElseIf cOpc == "MO" // Moneda
cXMLRet := ""
EndIf
If lCadO
If cOpc == "CO"
cXMLRet := U_GROUPCAD(SF2->F2_DOC)
elseIf cOpc == "TI" //Total de Impuestos
cXMLRet := cBasIT + cSepa + cImpT + cSepa + cTpFac + cSepa + cTasCuo + cSepa + cValor + cSepa + cTotIT + cSepa
EndIf
Else
If cOpc == "CO"
cXMLRet := space(3) + '<cfdi:Conceptos>' + cCRLF
cXMLRet += U_GROUPPED(SF2->F2_DOC)
cXMLRet += space(3) + '</cfdi:Conceptos>' + cCRLF
elseIf |
Bloco de código |
---|
title | PEXMLDOC |
---|
linenumbers | true |
---|
|
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User Function PEXMLDOC()
Local cOpc := PARAMIXB[1] //Opción donde IA - Información Aduanera, CP - Cuenta Predial
Local lCadO := PARAMIXB[2] //Indica si es Cadena Original .T. = Si y .F. = No
Local cXMLRet := ""
Local cSepa := "|"
Local cSubT := "0.01"
Local cTot := "0.01"
Local cCRLF := (chr(13)+chr(10))
//Datos Impuestos Totales
Local cTotIT := "0.00"
Local cBasIT := "0.01"
Local cImpT := "002"
Local cTpFac := "Tasa"
Local cTasCuo := "0.000000"
Local cValor := "0.00"
If Alltrim(cEspecie) $ "NF|NCC"
If cOpc == "ST" //SubTotal
cXMLRet := cSubT
ElseIf cOpc == "T" //Total
cXMLRet := cTot
ElseIf cOpc == "D" //Total
cXMLRet := "20.00"
EndIf
If lCadO
If cOpc == "TI" //Total de Impuestos
cXMLRet := cBasIT + cSepa + cImpT + cSepa + cTpFac + cSepa + cTasCuo + cSepa + cValor + cSepa + cTotIT + cSepa
EndIf
Else
If cOpc == "TI" ////Total de Impuestos
cXMLRet := cCRLF + Space(5) + '<cfdi:Impuestos TotalImpuestosTrasladados="' + cTotIT + '" >' + cCRLF
cXMLRet += Space(10) + '<cfdi:Traslados>' + cCRLF
cXMLRet += Space(15) + '<cfdi:Traslado Base="' + cBasIT + '" Impuesto="' + cImpT + '" TipoFactor="' + cTpFac + '" TasaOCuota="' + cTasCuo + '" Importe="' + cValor + '"/>' + cCRLF
cXMLRet += Space(10) + '</cfdi:Traslados>' + cCRLF
cXMLRet += Space(5) + '</cfdi:Impuestos>' + cCRLF
EndIf
EndIf
EndIf
EndIf
EndIf
Return cXMLRet |
Bloco de código |
---|
title | LOCXCONCEP |
---|
linenumbers | true |
---|
|
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User function LOCXCONCEP()
Local cArea := GetArea()
Local cCodProd := PARAMIXB[1] // Código del producto.
Local cItem := PARAMIXB[2] // Número Item
Local aDetFac := {"","",0,"","","","","",""} // Arreglo que contiene la información del producto.
/*
aDetFac[1] := ClaveProdSer
aDetFac[2] := No. Identificación
aDetFac[3] := Cantidad
aDetFac[4] := ClaveUnidad
aDetFac[5] := Unidad
aDetFac[6] := Descripcion
aDetFac[7] := ValorUnitario
aDetFac[8] := Importe
aDetFac[9] := Descuento
*/
If Alltrim(cEspecie) $ "NF|NCC"
aDetFac[7] := "0.01"
aDetFac[8] := "0.01"
aDetFac[9] := "0.00"
EndIf
RestArea(cArea)
Return aDetFac |
...