Á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 aplicadasque se muestre la información requerida en la forma de pago.

03. INFORMACIÓN ADICIONAL

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

...

tabsPre-codiciones,Flujo de prueba,Punto de entrada M486PEFORP,Punto de entrada M486PECADE
idspaso01,paso02,paso03,paso04

...

defaultyes
referenciapaso01

...

  • Configurar una TES con IGV con Tipo de Afectación del IGV (FC_TIPOIGV).

...

.

Informações
titleAcceso a tablas

Cabe mencionar que al momento de la ejecución del punto 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

-items
  • 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? = 0000000000142
      • ¿Factura Final? = 0000000000042
      • 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
    Totvs custom tabs box
    tabsPre-codiciones,Flujo de prueba,Punto de entrada M486PEFORP,Punto de entrada M486PECADE
    idspaso01,paso02,paso03,paso04
    defaultno
    referenciapaso02
    Totvs custom tabs box items
    defaultno
    referenciapaso03

    Descripción

    Punto de entrada para Permite personalizar la sección cac: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 
    Bloco de código
    languagec#
    themeEclipse
    titleM486FECVENM486PEFORP
    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



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

    04. ASUNTOS RELACIONADOS

    ...