Árvore de páginas

Versões comparadas

Chave

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

01. DATOS GENERALES

Producto:

Solucoes_totvs

Solucoes_totvs_cross
SolucaoCrossTOTVS Backoffice

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Línea de producto:

Linhas_totvs
LinhaLinha Protheus

Segmento:

Segmentos_totvs
SegmentoBackoffice

Módulo:

Modulos_cross_segmentos
ModulosCrossSegmentosTOTVS Backoffice (Linha Protheus) - Faturamento (SIGAFAT)

Modulos_framework

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Modulos_totvs_prestadores_de_servicos

Función:
RutinaNombre Técnico
M486NFXML.PRWGeneración de XML de factura electrónica
País:Perú
Ticket:24902150
Requisito/Story/Issue (informe el requisito vinculado):DMICNS-24862


02. DESCRIPCIÓN

Se requiere que, durante la generación del XML de la factura de venta, el sistema permita

...

personalizar el nodo cac:AllowanceCharge a nivel del encabezado del comprobante, así como el nodo

...

cac:PaymentTerms, con el fin de desglosar y reflejar correctamente las retenciones aplicadas.

03. INFORMACIÓN ADICIONAL

En la rutina generación de XML de factura electrónica (M486NFXML), se activa el punto los puntos de entrada M486PEFORP y M486PECADE para las facturas de venta.

...

Totvs custom tabs box
tabsPre-codiciones,Flujo de prueba,Punto de entrada M486PEFORP,Ejemplo Punto de usoentrada M486PECADE
idspaso01,paso02,paso03,paso04
Totvs custom tabs box items
defaultyes
referenciapaso01
  • Realizar un respaldo del repositorio del ambiente (archivo .rpo).
  • Descargar y aplicar el paquete de actualización (patch) del issue DMICNS-24438.
  • Desarrollar y compilar el punto de entrada M486PEFORP.
  • Desarrollar y compilar el punto de entrada M486PECADE.
  • En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Clientes.
  • En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Archivos | Tipo Entrada Salida.
    • Configurar una TES con IGV con Tipo de Afectación del IGV (FC_TIPOIGV).
  • En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
    • Incluir un nuevo documento usando el cliente y la TES con tipo de afectación.


Informações
titleAcceso a tablas

Cabe mencionar que al momento de la ejecución de los puntos de entrada, se puede acceder a las tablas de Clientes (SA1) y Documentos de Salida(SF2), por lo que se podrán utilizar campos que ya existen de estas tablas o campos nuevos que sean agregados y definir la regla para el armado del nodo

Totvs custom tabs box items
defaultno
referenciapaso02
  • En el módulo facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Documentos Electrónicos (MATA467N).
    • Informar los parámetros de la rutina. Ejemplo:
      1. ¿Tipo de Documento? = Factura
      2. ¿Serie? = A
      3. ¿Estatus? = 0
      4. ¿Fecha Inicial? = 01/06/2025
      5. ¿Fecha Final? = 31/12/2025
  • Dar clic en la opción "Transmitir".
    • Informar los parámetros para la transmisión del documento. Ejemplo:
      • ¿Serie de la Factura? = A
      • ¿Factura Inicial? = 00000000000470000000000142
      • ¿Factura Final? = 00000000000470000000000042
      • Dar clic en "OK", para iniciar con la transmisión.
  • Al finalizar el proceso, la rutina muestra el mensaje "Transmisión exitosa".
  • El estatus del documento cambia a "Documento autorizado".
  • Validar que el XML contenga la información indicada en los puntos de entrada M486PEFORP y M486PECADE
no
Totvs custom tabs box items
defaultno
referenciapaso03
default

Descripción

Punto de entrada para Permite personalizar la sección cac:

PaymentTerms 

PaymentTerms (Formas de Pago) en el XML de factura electrónica de Perú

Rutina:

M486NFXML.PRW

Función

M486PEFORP

Parámetros
ParamIXB[1]Carácter - Moneda del documento
ParamIXB[2]Carácter - Tipo de Pago  (1-Contado,2-Crédito) 
ParamIXB[3] Númerico - Acumulado de saldo de pagos 
ParamIXB[4] Array - Arreglo con identificador, valor y fecha de vencimiento de cada cuota.  
ParamIXB[5] Númerico - Total de Detracciones del documento

ParamIXB[6]

Númerico - Total de Impuestos del documento

Retorno:

Variable del tipo carácter que contiene la estructura del XML correspondiente a los nodos cac:PaymentTerms 
Totvs custom tabs box items
referenciapaso04
Bloco de código
languagec#
themeEclipse
titleM486FECVEN
linenumberstrue
#include 'protheus.ch'
  
User Function M486PEFORP()
	Local cMoeda    := PARAMIXB[1] //Carácter Moneda del documento
	Local cTipoPag  := PARAMIXB[2] //Carácter Tipo de Pago (1-Contado,2-Crédito)
    Local nTotal    := ParamIXB[3] //Numerico Acumulado de saldo de pagos
    Local aFVence   := ParamIXB[4] //Array Arreglo con identificador, valor y fecha de vencimiento de cada cuota.
    Local nDetra    := ParamIXB[5] //Numerico Total de Detracciones del documento
	Local nImp      := ParamIXB[6] //Numerico Total de Impuestos del documento
	Local cXMLRet := ""
    Local nRet:= 0

    nRet:= nTotal *0.03

    cXMLRet := M486FOPAGO(cMoeda,cTipoPag,nTotal-nRet,aFVence,nDetra,nImp)

Return cXMLRet  
Totvs custom tabs box items
defaultno
referenciapaso04

Descripción

Punto de entrada para personalizar la sección AllowanceCharge (Cargos/Descuentos) a nivel encabezado de la factura en el XML de factura electrónica de Perú 

Rutina:

M486NFXML.PRW

Función

M486PECADE

Parámetros
ParamIXB[1]Arreglo que contiene la información del encabezado de la factura 
ParamIXB[2]Arreglo que contien información de anticipos 
ParamIXB[3] Arreglo que contiene información de Cargos y descuentos

Retorno:

Variable del tipo carácter que contiene la estructura del XML correspondiente a los nodos cac: AllowanceCharge 
Bloco de código
languagec#
themeEclipse
titleM486FECVEN
linenumberstrue
#include 'protheus.ch'
  
User Function M486PECADE()
	Local aEnc     := PARAMIXB[1] //Carácter Moneda del documento
	Local aDocAnt  := PARAMIXB[2] //Carácter Tipo de Pago (1-Contado,2-Crédito)
    Local aImpAfe  := ParamIXB[3] //Numerico Acumulado de saldo de pagos
    Local cXMLRet  := ""
    Local nMultp   := 0.03
	Local CCRLF    := (chr(13) + chr(10))

    cXMLRet += '	<cac:AllowanceCharge>'	 + cCRLF
	cXMLRet += '		<cbc:ChargeIndicator>false</cbc:ChargeIndicator>'	 + cCRLF
	cXMLRet += '	    <cbc:AllowanceChargeReasonCode listAgencyName="PE:SUNAT" listName="Cargo/descuento" listURI="urn:pe:gob:sunat:cpe:see:gem:catalogos:catalogo53">62</cbc:AllowanceChargeReasonCode>'	 + cCRLF
	cXMLRet += '		<cbc:MultiplierFactorNumeric>'+ alltrim(STR(nMultp,10,2)) + '</cbc:MultiplierFactorNumeric>'	 + cCRLF
	cXMLRet += '		<cbc:Amount currencyID="' + aEnc[4] + '">'+ alltrim(STR(aEnc[5] * nMultp,10,2))  +'</cbc:Amount>'	 + cCRLF
	cXMLRet += '		<cbc:BaseAmount currencyID="' + aEnc[4] + '">' + alltrim(STR(aEnc[5],10,2))  + '</cbc:BaseAmount>'	 + cCRLF
	cXMLRet += '	</cac:AllowanceCharge>'	 + cCRLF	

Return cXMLRet
Informações
titleAcceso a tablas
Cabe mencionar que al momento de la ejecución del punto de entrada, se puede acceder a las tablas de Clientes (SA1) y Documentos de Salida(SF2), por lo que se podrán utilizar campos que ya existen de estas tablas o campos nuevos que sean agregados y definir la regla para el armado del nodo



Card documentos
InformacaoLa presente solución aplica para versión 12.1.2410 con garantía extendida o superior.
TituloIMPORTANTE!

04. ASUNTOS RELACIONADOS



Templatedocumentos