Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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
titleInformación

El punto de Entrada PEXMLDOC,recibe 2 parámetros, donde:

El primer parámetro es de tipo carácter, con las opciones ST para personalizar el valor del atributo SubTotal, T personalizar el valor del atributo Total y TI para personalizar el nodo cfdi:Impuestos de los impuestos totales del documento.

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
titleIMPORTANTE

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
tabsPre-condiciones, Timbrado NF, Timbrado NCC, Paso 04
idspaso1,paso2, paso3
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar un respaldo del repositorio del ambiente (archivo RPO).
  2. Aplicar el parche correspondiente al issue DMINA-20950.
  3. 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.
  4. Configurar el parámetro MV_FEXML, con el valor igual a "S".
  5. Configurar el parámetro MV_CFDDIRS con la ruta donde se encuentran las llaves y certificados.
  6. Configurar el parámetro MV_CFDI_CP con el nombre y extensión del Archivo de la clave privada (.pem).
  7. Configurar los parámetros MV_IVATRAS y MV_RETIVAM con los códigos de Impuestos y Retenciones.
  8. 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.
  9. 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).
  10. 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).
  11. Ingresar al módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Clientes.
    • Configurar el Cliente, para la generación de la Factura de Salida (NF).

      Aviso
      titleIMPORTANTE

      En la ruta configurada en el parámetro MV_CFDDIRS debe existir el archivo que se configuró en el parámetro MV_CFDI_CP, ya que con este archivo es generado el atributo Certificado en el XML del CFDI.

Totvs custom tabs box items
defaultno
referenciapaso2
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Facturaciones (MATA467N)
  2. Indicar los parámetros de la rutina, informando la pregunta ¿Normal/Benef./Anticipo? con la opción Normal.
  3. 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.
  4. Confirmar el grabado de la Factura de Venta.
  5. 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).
  6. 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
defaultno
referenciapaso3
  1. Ingresar al módulo Facturación (SIGAFAT), ir al menú "Actualizaciones | Facturación | Generac. de Notas de Crédito y Débito (MATA465N)
  2. 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).
  3. Confirmar el grabado de la  Nota de Crédito de Cliente (NCC).
  4. 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).
  5. 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
titlePEXMLDOC
linenumberstrue
#include 'protheus.ch'
#INCLUDE "FWMVCDEF.CH"
#include "FILEIO.CH"
 
User Function PEXMLDOC()
	    Local cOpc    := PARAMIXB[1] //Opción dondepara IAindicar -el Informaciónatributo Aduanera,o CPel -nodo Cuentaa Predial
	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 ==      ElseIf cOpc == "D" //Descuento
			            cXMLRet := "20.00"
		        ElseIf cOpc == "FE" //Fecha de emisión
			            cXMLRet := "" 
		EndIf

		If lCadO
			If cOpc       ElseIf cOpc == "TIFP" //Total de Impuestos
				 FormaPago
            cXMLRet := cBasIT""
 + cSepa + cImpT + cSepa + cTpFacElseIf +cOpc cSepa + cTasCuo + cSepa + cValor + cSepa + cTotIT + cSepa
			EndIf
		Else
			If== "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) + '<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
titleLOCXCONCEP
linenumberstrue
#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

...