01. DATOS GENERALES
| Producto: |
TOTVS Backoffice
| ||||
|---|---|---|---|---|---|
| Línea de producto: | Linha Protheus | ||||
| Segmento: | Backoffice | ||||
| Módulo: | TOTVS Backoffice (Linha Protheus) - Faturamento (SIGAFAT)
| ||||
| Función: |
| ||||
| 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 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 de entrada M486PECADE para las facturas de venta.
- Realizar un respaldo del repositorio del ambiente (archivo .rpo).
- Descargar y aplicar el paquete de actualización (patch) del issue DMICNS-24862.
Desarrollar y compilar el punto de entrada M486PECADE.
PE M486PEFORP
En el caso de que se requiera modificar los totales de la forma de pago para considerar las retenciones, se puede personalizar el nodo PaymentTerms con el punto de Entrada M486PEFORP
- 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.
Acceso 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
- 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:
- ¿Tipo de Documento? = Factura
- ¿Serie? = A
- ¿Estatus? = 0
- ¿Fecha Inicial? = 01/06/2025
- ¿Fecha Final? = 31/12/2025
- Informar los parámetros de la rutina. Ejemplo:
- 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.
- Informar los parámetros para la transmisión del documento. Ejemplo:
- 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 M486PECADE
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 |
| ||||||
Retorno: | Variable del tipo carácter que contiene la estructura del XML correspondiente a los nodos cac: AllowanceCharge |
#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
Esta solución aplica para versión 12.1.2310 con garantia extendida o superiores.IMPORTANTE!
04. ASUNTOS RELACIONADOS
- DT Facturación Electrónica UBL 2.1 PER
- PE M486PEFORP Permite personalizar nodos PaymentTerms en XML PER
- punto_de_entrada
- mercado_internacional
- protheus
- base_conocimiento
- m486peforp
- m486pecade
- 12_1_2410
- 12_1_2510
- 1212410
- 1212510
- per
- peru
- pe
- 24902150
- ticket_24902150
- dmicns_24862
- punto_entrada
- sigafat
- facturacion
- documento_tecnico
- totvs_backoffice
- backoffice
- mi
- base_de_conocimiento
- version_12_1_2310
- version_12_1_2410
- version_12_1_2510
- protheus_backoffice
- linea_protheus