Histórico da Página
...
Í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 | ||
---|---|---|
| ||
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.
...
- Usar la nueva URL, es la misma para el entorno de pruebas y producción, la diferencia de entornos ahora la define el token utilizado https://apis.dmsfact.com/
- La URL para enviar "transmitir" cualquier tipo de documentos https://apis.dmsfact.com/documents/sendDocument
- La URL para consultar el documento
- Por identificador del documento GET https://apis.dmsfact.com/getDocument/{documentId}
- Buscando por los parámetros del documento POST https://apis.dmsfact.com/getDocument
...
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
Catálogo de Documentos
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: |
|
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: |
|
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: |
|
...
#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
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 | Retorno
Respuesta: | N/A |
Ejemplo:
#Include 'Protheus.ch'
User Function M486PDFGEN()
MsgAlert("Aquí debe colocar lógica para imprimir pdf ")
...
|
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"
|
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:
Cuando se ejecute desde la opción "Imprimir PDF", no se obtendrán acceso a dichos parámetros. |
Aviso | ||
---|---|---|
| ||
|
Ejemplo de Punto de entrada:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
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: |
|
...