Árvore de páginas

Versões comparadas

Chave

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

...

ÍNDICE

Índice

1. REQUERIMIENTOS 


Características del Requisito

Âncora
inicio
inicio

...

En el caso de Boletas de Venta, la Serie 2 debe comenzar con letra B seguida de consecutivo alfanumérico de 3 Ej. B001, BV01. Así mismo la serie 2 para Notas de Crédito y Notas de Débito relacionadas a una Boleta de Venta deberá iniciar con letra B.

Aviso
titleIMPORTANTE

Recomendamos  se utilice una serie exclusiva por tipo de documento. En caso de que se registren diferentes tipos de documentos, para una misma serie, se podrían obtener errores por intento de generar llaves duplicadas


5. Configure los Datos Fiscales de la Empresa en el SIGAMAT.

...

b) Actualización de URL para transmisión de documentos

Se requiere realizar cambios necesarios en la rutina Documento Electrónicos (MATA486) con el Operador de Servicios Electrónicos (OSE) denominado RSM, de acuerdo a lo siguiente:


Informações
Este cambio fue atendido en el issue DMINA-2160521964

Nota: Las actualizaciones presentadas a continuación son compatibles con versiones mayor o igual a 12.1.2210

...

2. Aplicar el paquete de actualización (patch), el cual contiene las siguientes rutinas:

RutinaNombre TécnicoFecha
MATA486Transmisión Electrónica
Aviso
titleIMPORTANTE

Este archivo token.txt debe contener el token, dicho token deberá solicitarse al Operador de Servicios Electrónicos (OSE) denominado RSM.

...

5. Desde Otras acciones ejecutar la acción Imprimir PDF,y validar que en la representación gráfica del documentos en la razón social del cliente se visualicen correctamente los caracteres especiales.

4. PUNTOS DE ENTRADA

4.1 PE - M486PENF

...

Descripción:

...

M486PENF.- Generación personalizada de XML de Factura Electrónica

...

Ubicación:

...

Actualizaciones / Facturación / Transmisión Electrónica.

...

Eventos:

...

Transmitir.

...

Programa Fuente:

...

MATA486.PRW

...

Función:

...

M486SENDDOC

...

Respuesta:

...

Nombre

Tipo

Descripción

Obligatorio

cXML

Carácter

Cadena XML La estructura del XML según los lineamientos establecidos por la SUNAT para Factura de Venta.

Si

3.15 Transmisión de Certificado de Retención de una NF y una NCP

Producto

TOTVS Backoffice

Línea de producto: 

Línea Protheus

Segmento:

Backoffice

Módulo:SIGAFIN - Financiero
Función:

No aplica

País:Perú
Ticket:19457472 (19457536)
Requisito/Story/Issue (informe el requisito vinculado):DMINA-22634 (DMINA-22729)


En la rutina Certificados de Retención (MATA486B) en la transmisión de un Certificado de Retención de una Factura de Entrada (NF) y Nota de Crédito (NCP), dentro de los nodos cbc:TotalInvoiceAmount y sac:SUNATTotalPaid no resta el valor de de la Nota de Crédito (NCP); por lo tanto se solicita que dentro de esos nodos sea restado el valor de la  la Nota de Crédito (NCP) y para que coincidan los valores del Certificado de Retención generado en la Orden de Pago (FINA085A).


SOLUCIÓN

Lo solicitado no es posible debido a que la SUNAT(Superintendencia Nacional de Administración Tributaria), indica en la guía de llenado para los certificados de retención en los nodos cbc:TotalInvoiceAmount y sac:SUNATTotalPaid no debe considerar los valores de los tipos de documento "07 - Nota de crédito y 20 - Comprobante de retención".

Guía de Retenciones

Image Added


Catálogo de Documentos

Image Added


4. PUNTOS DE ENTRADA

4.1 PE - M486PENF

Descripción:

M486PENF.- Generación personalizada de XML de Factura Electrónica

Ejemplo:

#Include 'Protheus.ch'

User Function M486PENF()

Local cXML := ""

Local cCRLF  := (chr(13)+chr(10) )

Local cFilDoc        := PARAMIXB[1] // Sucursal que el documento.

Local cNumDoc    := PARAMIXB[4] // Número de Documento

Local cCodCli       := PARAMIXB[3] // Código de Cliente

Local cCodLoj       := PARAMIXB[4] // código de tienda

Local cSerieDoc   := PARAMIXB[2] // Serie

Local cEspDoc      := PARAMIXB[5] // Especie

cXML := '<?xml version="1.0" encoding="UTF-8"?>' + cCRLF

cXML += '<Invoice>' + cCRLF         

// Código necesario para creación del XML

cXML += '</Invoice>' + cCRLF  

Return cXML

4.2 PE - M486PENC

Descripción:

M486PENC.- Generación personalizada de XML de Nota de Crédito

Ubicación:

Actualizaciones / Facturación / Transmisión Electrónica.

Eventos:

Transmitir.

Programa Fuente:

MATA486.PRW

Función:

M486SENDDOC

Respuesta:

Nombre

Tipo

Descripción

Obligatorio

cXML

Carácter

Cadena XML La estructura del XML según los lineamientos establecidos por la SUNAT para Nota Factura de CréditoVenta.

Si

Ejemplo:

#Include 'Protheus.ch'

User Function M486PENCM486PENF()

Local cXML := ""

Local cCRLF  := (chr(13)+chr(10) )

Local cFilDoc        := PARAMIXB[1] // Sucursal que emitió el documento.

Local cNumDoc    := PARAMIXB[4] // Número de Documento

...

cXML := '<?xml version="1.0" encoding="UTF-8"?>' + cCRLF

cXML += '<CreditNote><Invoice>' + cCRLF         

//  Código Código necesario para creación del XML

cXML += '</CreditNote>Invoice>' + cCRLF  

Return cXML

4.4 PE 2 PE - M486PENDM486PENC

Descripción:

M486PENDM486PENC.- Generación personalizada de XML de Nota de DébitoCrédito

Ubicación:

Actualizaciones / Facturación / Transmisión Electrónica.

Eventos:

Transmitir.

Programa Fuente:

MATA486.PRW

Función:

M486SENDDOC

Respuesta:

Nombre

Tipo

Descripción

Obligatorio

cXML

Carácter

Cadena XML La estructura del XML según los lineamientos establecidos por la SUNAT para Factura Nota de Venta.Crédito

Si

Ejemplo:

#Include 'Protheus.ch'

User Function M486PENDM486PENC()

Local cXML := ""

Local cCRLF  := (chr(13)+chr(10) )  

Local cFilDoc        := PARAMIXB[1] // Sucursal que emitió el documento.

...

cXML := '<?xml version="1.0" encoding="UTF-8"?>' + cCRLF

cXML += '<DebitNote><CreditNote>' + cCRLF         

// Código necesario para creación del XML

cXML += '</DebitNote>CreditNote>' + cCRLF  

Return cXML

4.5 PE 4 PE - M486PECRM486PEND

Descripción:

M486PECRM486PEND.- Generación personalizada de XML de Comprobante Nota de RetenciónDébito

Ubicación:

Actualizaciones / Facturación / Transmisión Electrónica.

Eventos:

Transmitir.

Programa Fuente:

MATA486.PRW

Función:

M486SENDDOC

Respuesta:

Nombre

Tipo

Descripción

Obligatorio

cXML

Carácter

Cadena XML La estructura del XML según los lineamientos establecidos por la SUNAT para Factura de Venta.

Si

...

#Include 'Protheus.ch'

User Function M486PECRM486PEND()

Local cXML := ""

Local cCRLF  := (chr(13)+chr(10) )  

Local cFilDoc        := PARAMIXB[1] // Sucursal que emitió el documento.

Local cNumDoc    := PARAMIXB[24] // Número de Documento

Local cSerieDoc  cCodCli       := PARAMIXB[3] // SerieCódigo de Cliente

Local cCodProvcCodLoj       := PARAMIXB[4] // Código código de Proveedortienda

Local cSerieDoc   := PARAMIXB[2] // Serie

Local cEspDoccCodLoj        := PARAMIXB[45] // código de tiendaEspecie

cXML := '<?xml version="1.0" encoding="UTF-8"?>' + cCRLF

cXML += '<Retention><DebitNote>' + cCRLF         

// Código  Código necesario para creación del XML

cXML += '</Retention>DebitNote>' + cCRLF  

Return cXML

4.6 PE 5 PE - M486PDFGENM486PECR

Retorno

Descripción:

M486PDFGENM486PECR.- Generación personalizada de Impresión Gráfica de DocumentosXML de Comprobante de Retención

Ubicación:

Actualizaciones / Facturación / Transmisión Electrónica.

Eventos:

Imprimir PDFTransmitir.

Programa Fuente:

MATA486.PRW

Función:

MenuDefM486SENDDOC

Respuesta:

N/A

Ejemplo:

#Include 'Protheus.ch'

User Function M486PDFGEN()

MsgAlert("Aquí debe colocar lógica para imprimir pdf ")

...

Nombre

Tipo

Descripción

Obligatorio

cXML

Carácter

Cadena XML La estructura del XML según los lineamientos establecidos por la SUNAT para Factura de Venta.

Si

Ejemplo:

#Include 'Protheus.ch'

User Function M486PECR()

Local cXML := ""

Local cCRLF  := (chr(13)+chr(10) )

Local cFilDoc        := PARAMIXB[1] // Sucursal que emitió el documento.

Local cNumDoc    := PARAMIXB[2] // Número de Documento

Local cSerieDoc   := PARAMIXB[3] // Serie

Local cCodProv     := PARAMIXB[4] // Código de Proveedor

Local cCodLoj       := PARAMIXB[4] // código de tienda

cXML := '<?xml version="1.0" encoding="UTF-8"?>' + cCRLF

cXML += '<Retention>' + cCRLF         

// Código necesario para creación del XML

cXML += '</Retention>' + cCRLF  

Return cXML

4.6 PE - M486PDFGEN

En la rutina de Documentos Electrónicos (MATA486), se requiere habilitar el punto de entrada "M486PDFGEN", que permite la personalización de la impresión del PDF de los documentos electrónicos desde la opción "Otras acciones >> Recuperar PDF y XML"

Informações

El Punto de Entrada M486PDFGEN ya se encuentra habilitado desde la opción "Otras acciones >> Imprimir PDF"

Descripción:

M486PDFGEN.- Generación personalizada de Impresión Gráfica de Documentos

Ubicación:

Actualizaciones / Facturación / Transmisión Electrónica.

Eventos:

Imprimir PDF.

Programa Fuente:

MATA486.PRW

Función:

MenuDef

Retorno:N/A

SOLUCION

Se agrega en la acción Recupera XML/PDF, para cuando exista compilado el punto de entrada "M486PDFGEN" se ejecute para la personalización del PDF y no realice la impresión predefinida por el sistema. 

Informações

Dicho punto de entrada ya existía solo se habilito desde la opción "Recupera XML/PDF", solo que cuando se ejecute desde esta opción se obtendrán los siguientes parámetros:

  • PARAMIXB[1] // Serie del Documento a imprimir PDF.

  • PARAMIXB[2] // Número del Documento Inicial a imprimir PDF.

  • PARAMIXB[3] // Número del Documento Final a imprimir PDF.

Cuando se ejecute desde la opción "Imprimir PDF", no se obtendrán acceso a dichos parámetros.

Aviso
titleIMPORTANTE
  • Para el copiado de los archivos XML/PDF de documentos de tipo Factura de Venta, Boleta de Venta, Nota de Crédito, Nota de Débito, solamente aplica el copiado de los archivos de documentos que se encuentran en estatus Autorizado (F1_FLFTEX/F2_FLFTEX con valor igual a 6).
  • Cuando existe compilado el Punto de Entrada siempre se realiza la generación del PDF (es reponsabilidad del usuario definir que no se genere el PDF si ya existe), y en caso contrario la generación del PDF sólo se realizará si NO existe el PDF en la ruta configurada en el parámetro MV_CFDDOCS, y en caso que exista solo se copia el archivo PDF del servidor a la ruta indicada.
  • En el ejemplo del Punto de Entrada, en la función PRINTPE() se define la impresión del encabezado y detalle del informe, y se bifurca para que al ejecutar desde la acción Recupera XML/PDF no se muestra el grupo de preguntas al ejecutar desde la acción Imprimir PDF, ya que se toman los valores Serie, Folio del Documento Inicial y Folio del Documento Final del grupo de preguntas MATA486J.


Ejemplo de Punto de entrada:

Bloco de código
languageactionscript3
titleM486PDFGEN
linenumberstrue
User Function M486PDFGEN()
    Local cSerieR  := PARAMIXB[1] // Sucursal que emitió el documento.
    Local cDocIniR := PARAMIXB[2] // Número de Documento
    Local cDocFinR := PARAMIXB[3] // Número de Documento
    Local cPerg := "M486PDF"
    Private cSerie := ""
    Private cDocIni := ""
    Private cDocFin := ""
    Private cFormato := ""
    Private cPath := &(SuperGetmv( "MV_CFDDOCS" , .F. , "'cfd\recibos\'" )) + "\Autorizados\"
    Private oXML   := Nil
    Private nTotPag := 0
    Private oFont1 := TFont():New( "ARIAL", , 7, .F., .F.)
    Private oFont2 := TFont():New( "ARIAL", , 8, .F., .F.)
    Private oFont3 := TFont():New( "ARIAL", , 10, .T., .T.)
    Private oFont4 := TFont():New( "ARIAL", , 8, .F., .T.) //Negrita - 8
    Private nLinea  := 0
    Private cPicture := "999,999,999,999.99"
     
    cPath := Replace( cPath, "\\", "\" )
     
    If (!Empty(cSerieR) .Or. !Empty(cDocIniR) .Or. !Empty(cDocFinR))
       Pergunte(cPerg,.T.)
    EndIf
    cSerie  := IIf(!Empty(cSerieR),cSerieR,MV_PAR01)
    cDocIni := IIf(!Empty(cDocIniR),cDocIniR,MV_PAR02)
    cDocFin := IIf(!Empty(cDocFinR),cDocFinR,MV_PAR03)
    cFormato:= IIf(!Empty(cSerieR) .Or. !Empty(cDocIniR) .Or. !Empty(cDocFinR),1,MV_PAR04)
     
    Processa({|| PRINTPE(cEspecie)},"Espere..", "Imprimiendo documento autorizado desde PE")
Return Nil


4.7 PE - M486NF

Descripción:

M486NF.- Adicionar información que no es obligatoria para la SUNAT para el documento Factura/Boleta de Venta

Ubicación:

Actual/ Faturamento/Transmisión Electrónica

Eventos:

Transmitir

Programa Fuente:

M486XMLNF

Función:

fGenXMLNF

Retorno:

Nombre

Tipo

Descripción

Obligatorio

cXML


Carácter

String XML con la sintaxis conforme se describe en ejemplo


...