Histórico da Página
...
Producto |
| ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Línea de producto: |
| ||||||||||||
Segmento: |
| ||||||||||||
Módulo: | SIGAFAT- Facturación | ||||||||||||
Función: |
| ||||||||||||
País: | México (MEX) | ||||||||||||
Ticket: | No aplica | ||||||||||||
Requisito/Story/Issue (informe el requisito vinculado): | DMINA-20950 |
...
En la rutina de Funciones Genéricas de Localizaciones (LOCXFUNA):
Se activo realizó ajuste para que el Punto de Entrada PECOMPCON LOCXCONCEP, el cual permitepermita:
- Modificar en En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, los atributos ValorUnitario, Importe y Descuento.Modificar en el nodo personalizar el valor del atributo ValorUnitario con la pósición 7 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Carácter).
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto el nodo cfdi:Impuestos por ítem., personalizar el valor del atributo Importe con la posición 8 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Carácter).
- En Personalizar el nodo cfdi:InformacionAduanera. Personalizar el nodo Comprobante\cfdi:cfdi:CuentaPredial.
...
- Conceptos\cfdi:Concepto, personalizar el valor del atributo Descuento con la posición 9 del arreglo retornado por el Punto de Entrada (el retorno debe ser de tipo Carácter).
Se activó el Punto de Entrada PEXMLDOC PEDETIMP, el cual permite:
- Personalizar el valor del atributo SubTotal.
- Personalizar el valor del atributo Total.
- Personalizar el
Modificar en el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto el nodo cfdi:Impuestos
que corresponde a los Impuestos Totales del Documentos.
En la rutina de Generación de XML para Documentos de Entrada (FATSMEX.PRW):
- 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.
...
tabs | Pre-condiciones, Timbrado NF, Timbrado NCC, Paso 04 |
---|---|
ids | paso1,paso2, paso3 |
Totvs custom tabs box items | |||||
---|---|---|---|---|---|
| |||||
|
por ítem.
Informações title Información El punto de Entrada PEDETIMP, recibe 4 parámetros, donde:
El primer parámetro es de tipo carácter, con las opciones IT para personalizar el nodo cfdi:Impuestos para Impuestos de Traslados e IR para personalizar el nodo cfdi:Impuestos para Impuestos de Retenciones.
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).
El tercer parámetro corresponde del código del Producto.
El cuarto parámetro corresponde del número del ítem.
El retorno debe ser un arreglo con valores de tipo carácter.
Se activó el Punto de Entrada PECOMPCON, el cual permite:
- Personalizar el nodo cfdi:InformacionAduanera.
- Personalizar el nodo cfdi:cfdi:CuentaPredial.
Informações title Información El punto de Entrada PECOMPCON, recibe 2 parámetros, donde:
El primer parámetro es de tipo carácter, con las opciones IA para personalizar el nodo de Información Aduanera y CP para personalizar el nodo de Cuenta Predial
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)
El retorno debe ser un valor de tipo carácter.
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 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:
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 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
|
04. INFORMACIÓN ADICIONAL
Ejemplos de los Puntos de Entrada:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 | ||||
---|---|---|---|---|
| ||||
#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 cOpc == "TI" ////Total de Impuestos
cXMLRet := cCRLF + Space(5) + '<cfdi:Impuestos TotalImpuestosTrasladados="' + cTotIT + '" >' + cCRLF
cXMLRet += Space(10) + '<cfdi:Traslados>' + cCRLF
cXMLRet += Space(15 |
...
default | no |
---|---|
referencia | paso2 |
...
default | no |
---|---|
referencia | paso3 |
04. INFORMACIÓN ADICIONAL
Ejemplos de los Puntos de Entrada:
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'protheus.ch' #INCLUDE "FWMVCDEF.CH" #include "FILEIO.CH" User Function PECOMPCON() Local cXMLCon := "" Local cCRLF := (chr(13)+chr(10)) Local cOpc := PARAMIXB[1] //Opión donde IA - Información Aduanera, CP - Cuenta Predial Local lCadO := PARAMIXB[2] //Indica si es Cadena Origian .T. = Si y .F. = No Local cSepa := "|" Local cNPed := "23 47 3807 8003832" Local cCtaP := "15956011002" Local cBaseI := "0.01" Local cImpto := "002" Local cTipoF := "Tasa" Local cTsaC := "0.000000" Local cImpI := "0.00" If Alltrim(cEspecie) == "NF" If lCadO If cOpc == "IA" //Información Aduanera cXMLCon := StrTran(cNPed," "," ") + cSepa ElseIf cOpc == "CP" //Cuenta Predial cXMLCon := cCtaP + cSepa ElseIf cOpc == "IT" //Impuestos por ítem por PE (Traslado) cXMLCon := cBaseI + cSepa + cImpto + cSepa + cTipoF + cSepa + cTsaC + cSepa + cImpI + 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 ElseIf cOpc == "ST" //SubTotal cXMLCon := Space(1) + 'SubTotal="' + cSubT + '"' ElseIf cOpc == "T" //Total cXMLCon := Space(1) + 'Total="' + cTot + '"' ElseIf cOpc == "IT" //Impuestos por ítem por PE (Traslado) cXMLCon += Space(20) + '<cfdi:Traslado Base="' + cBaseIcBasIT + '" Impuesto="' + cImptocImpT + '" TipoFactor="' + cTipoFcTpFac + '" TasaOCuota="' + cTsaCcTasCuo + '" Importe="' + cImpIcValor + '"/>' + cCRLF EndIf EndIf EndIf Return cXMLCon | ||||
Bloco de código | ||||
| ||||
#include 'protheus.ch' #INCLUDE "FWMVCDEF.CH" #include "FILEIO.CH" User Function PEXMLDOC() Local cOpc' + cCRLF := PARAMIXB[1] //Opión donde IA - Información Aduanera,cXMLRet CP - Cuenta Predial Local lCadO := PARAMIXB[2] //Indica si es Cadena Origian .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" If lCadO If cOpc == "ST" //SubTotal cXMLRet := cSubT + cSepa ElseIf cOpc == "T" //Total cXMLRet := cTot + cSepa ElseIf cOpc == "TI" //Total de Impuestos cXMLRet := cBasIT + cSepa + cImpT + cSepa + cTpFac + cSepa + cTasCuo + cSepa + cValor + cSepa + cTotIT + cSepa EndIf Else If cOpc == "ST" //SubTotal cXMLRet := Space(1) + 'SubTotal="' + cSubT + '"' ElseIf cOpc == "T" //Total cXMLRet := Space(1) + 'Total="' + cTot + '"' ElseIf 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 Return cXMLRet |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User function LOCXCONCEP()
Local cArea := GetArea()
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"
aDetFac[7] := "0.01"
aDetFac[8] := "0.01"
aDetFac[9] := "0.00"
EndIf
RestArea(cArea)
Return aDetFac |
Card documentos Informacao Utilice este box para resaltar información relevante y/o de destaque. Titulo ¡IMPORTANTE!
...
+= Space(10) + '</cfdi:Traslados>' + cCRLF
cXMLRet += Space(5) + '</cfdi:Impuestos>' + cCRLF
EndIf
EndIf
EndIf
Return cXMLRet |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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 |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
User Function PEDETIMP()
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 cProd := PARAMIXB[3] //Código del Producto
Local cItem := PARAMIXB[4] //Número de ítem
Local aImpDet := {}
Local cRetImp := ""
Local cBaseI := "0.01"
Local cImpto := "002"
Local cTipoF := "Tasa"
Local cTsaC := "0.000000"
Local cImpI := "0.00"
Local cCRLF := (chr(13)+chr(10))
Local cSepa := "|"
If Alltrim(cEspecie) $ "NF|NCC"
If lCadO
If cOpc == "IT"
cRetImp := cBaseI + cSepa + cImpto + cSepa + cTipoF + cSepa + cTsaC + cSepa + cImpI + cSepa
EndIf
Else
If cOpc == "IT"
cRetImp := Space(20) + '<cfdi:Traslado Base="' + cBaseI + '" Impuesto="' + cImpto + '" TipoFactor="' + cTipoF + '" TasaOCuota="' + cTsaC + '" Importe="' + cImpI + '"/>' + cCRLF
EndIf
EndIf
aAdd(aImpDet, cRetImp)
EndIf
Return aImpDet |
Card documentos Informacao La presente solución aplica para versión 12.1.2210 o superior, y es necesario tener activa la funcionalidad de CFDI versión 4.0 o superior. Titulo ¡IMPORTANTE!
05. ASUNTOS RELACIONADOS
- Documento Técnico de Facturación Electrónica para México de Comprobantes Fiscales Digitales por Internet (CFDI) Versión 4.0
- Documento Técnico de Activación de Generación de XML de Factura de tipo Normal mediante rutina FATSMEX.PRW - México
- Documento Técnico de Activación de Generación de XML de Nota de Crédito de Cliente mediante rutina FATEMEX.PRW - México
Templatedocumentos