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: |
|---|
Brasil| 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.
| Totvs custom tabs box |
|---|
| tabs | Pre-codiciones,Flujo de prueba,Punto de entrada M486PECADE |
|---|
| ids | paso01,paso02,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 M486PECADE
|
| 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 | M486PECADE |
|---|
| 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 | Use esse box para destacar informações relevantes e/ou de destaque. |
|---|
| Titulo | IMPORTANTE! |
|---|
|
04. ASUNTOS RELACIONADOS