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
- 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 | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||
|
04. INFORMACIÓN ADICIONAL
Ejemplos de los Puntos de Entrada:
|
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 | ||||
---|---|---|---|---|
| ||||
Bloco de código | ||||
| ||||
#include 'protheus.ch' #INCLUDE "FWMVCDEF.CH" #include "FILEIO.CH" User Function PECOMPCONPEXMLDOC() Local cXMLCon Local cOpc := "" Local cCRLF PARAMIXB[1] //Opción para indicar el atributo o el nodo a personalizar Local lCadO := (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 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 cNPed Local cCRLF := "23(chr(13)+chr(10)) 47 3807//Datos Impuestos 8003832" Local cCtaP Totales Local cTotIT := "159560110020.00" Local cBaseIcBasIT := "0.01" Local cImpto Local cImpT := "002" Local cTipoFcTpFac := "Tasa" Local cTsaC cTasCuo := "0.000000" Local cImpIcValor := "0.00" If Alltrim(cEspecie) ==$ "NF|NCC" If lCadO If cOpc == "IAST" //Información Aduanera cXMLConSubTotal cXMLRet := StrTran(cNPed,"cSubT "," ") + cSepa ElseIf cOpc == "CPT" //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 Total cXMLRet := cTot ElseIf cOpc == "D" //Descuento cXMLRet := "20.00" ElseIf cOpc == "FE" //Fecha de emisión cXMLRet := "" ElseIf cOpc == "STFP" //SubTotal cXMLCon FormaPago cXMLRet := Space(1) + 'SubTotal="' + cSubT + '"' "" ElseIf cOpc == "TMO" //Total cXMLCon := Space(1) + 'Total="' + cTot + '"' ElseIf cOpc == "IT" //Impuestos por ítem por PE (Traslado) cXMLCon += Space(20) + '<cfdi:Traslado Base="' + cBaseI + '" Impuesto="' + cImpto + '" TipoFactor="' + cTipoF + '" TasaOCuota="' + cTsaC + '" Importe="' + cImpI + '"/>' + 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 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) + '<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 | ||||
---|---|---|---|---|
| ||||
#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] //OpiónOpción donde IA - Información Aduanera, CP - Cuenta Predial Local lCadO := PARAMIXB[2] //Indica si es Cadena OrigianOriginal .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 |
...