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 el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, 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 CaracterCarácter).
- En el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto, 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 CaracterCarácter).
- En el nodo cfdi:Comprobante\cfdi: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 CaracterCarácter).
Se activó el Punto de Entrada PEDETIMP, el cual permite:
Modificar en el nodo cfdi:Comprobante\cfdi:Conceptos\cfdi:Concepto el nodo cfdi:Impuestos por ítem.
Informações title Información El punto de Entrada PEDETIMP, recibe 2 4 parámetros, donde:
El primer parámetro es de tipo caracter 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 retorno debe ser un arreglo con valores de tipo caracter.
Se activó el Punto de Entrada PECOMPCON, el cual permite:
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 .
- 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 caracter, 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 Sí generar la Cadena Original y .F. es igual a Nogenerar el XML).
El retorno debe ser un valor de tipo caracter 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 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:
|
...
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 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
|
...
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#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="' + cImpI + '"/>'cValor + 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] //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 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 |
'"/>' + 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 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 | ||||
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 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!
...