01. DATOS GENERALES
| Producto: | | Solucoes_totvs_cross |
|---|
| SolucaoCross | TOTVS Backoffice |
|---|
|
| Solucoes_totvs_parceirosexptotvs |
|---|
|
|
|---|
| Línea de producto: | |
|---|
| Segmento: | |
|---|
| Módulo: | | Modulos_cross_segmentos |
|---|
| ModulosCrossSegmentos | TOTVS Backoffice (Linha Protheus) - Faturamento (SIGAFAT) |
|---|
|
| Modulos_totvs_prestadores_de_servicos |
|---|
|
|---|
| Función: | | Rutina | Nombre Técnico |
|---|
| M486NFXML.PRW | Generació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 el punto de entradaM486PEFORP y M486PECADE para para las facturas de venta.
| Informações |
|---|
|
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 |
| Totvs custom tabs box |
|---|
| tabs | Pre-codicionescondiciones,Flujo de pruebaPasos,Punto de entrada M486PEFORP,Punto de entrada M486PECADE |
|---|
| ids | paso01,paso02,paso03,paso04 |
|---|
|
| Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | paso01 |
|---|
| | Informações |
|---|
| | 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 |
|---|
| default | no |
|---|
| referencia | paso02 |
|---|
| - 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
- 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 items |
|---|
| default | no |
|---|
| referencia | paso03 |
|---|
| Descripción | Punto de entrada para Permite 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 PaymentTerms. |
|---|
| Bloco de código |
|---|
| language | c# |
|---|
| theme | Eclipse |
|---|
| title | M486FECVENM486PEFORP |
|---|
| linenumbers | true |
|---|
| #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 |
|---|
| default | no |
|---|
| referencia | paso04 |
|---|
| | 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 |
|---|
| language | c# |
|---|
| theme | Eclipse |
|---|
| title | M486FECVEN |
|---|
| linenumbers | true |
|---|
| #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 |
|---|
| Informacao | La presente solución aplica para versión 12.1.2410 2310 con garantía extendida o superior. |
|---|
| Titulo | IMPORTANTE! |
|---|
|
04. ASUNTOS RELACIONADOS
...