Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
titleEjemplo de Punto de Entrada M486DIRREC
User Function M486DIRREC()
    Local aArea     := GetArea()         // Se reserva el área de trabajo 
    Local cXML      := ""                // Cadena de retorno
    Local cCRLF     := (chr(13)+chr(10)) // Salto de línea
    
    cXML += '				<cac:RegistrationAddress>'+ cCRLF
    cXML += '					<cbc:ID schemeName="Ubigeos">' + RTRIM(SA1->A1_CEP) + '</cbc:ID>' + cCRLF
    cXML += '					<cbc:AddressTypeCode listName="Establecimientos anexos">0000</cbc:AddressTypeCode>'+ cCRLF
    cXML += '				   	<cbc:CitySubdivisionName>-</cbc:CitySubdivisionName>'+ cCRLF
    cXML += '            		<cbc:CityName><![CDATA[' + RTRIM(SA1->A1_MUN) + ']]></cbc:CityName>'+ cCRLF
    cXML += '              		<cbc:CountrySubentity><![CDATA[' + RTRIM(M486VALSX5("12",SA1->A1_EST)) + ']]></cbc:CountrySubentity>'+ cCRLF
    cXML += '               		<cbc:District><![CDATA[' + RTRIM(SA1->A1_BAIRRO) + ']]></cbc:District>'+ cCRLF
    cXML += '            		<cac:AddressLine>'+ cCRLF
    cXML += '                		<cbc:Line><![CDATA[' + RTRIM(SA1->A1_END) + ']]></cbc:Line>'+ cCRLF
    cXML += '              		</cac:AddressLine>'+ cCRLF
    cXML += '               		<cac:Country>'+ cCRLF
    cXML += '                		<cbc:IdentificationCode listName="Country">PE</cbc:IdentificationCode>'+ cCRLF
    cXML += '					</cac:Country>'+ cCRLF
    cXML += '          		</cac:RegistrationAddress>' + cCRLF

    RestArea(aArea)
Return cXML

4.19 PE - M486RNF

Descripción:

M486RNF .- Permite realizar ajustes al XML de Guía de Remisión Electrónica.

Ubicación:

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

Eventos:

Transmitir

Programa Fuente:

NFAEXMLPER.PRW

Función:

Varias

fGenXMLRNF

Respuesta:

Nombre

Tipo

Descripción

Obligatorio

cXML


Caracter

Cadena XML con los datos adicionales según se describe en ejemplo.


Si

Bloco de código
titleEjemplo de Punto de Entrada M486RNF
#include "protheus.ch"

User Function M486RNF()
    Local cXMLPE := ""
    Local cCRLF    := (chr(13)+chr(10))
    Local cOpc    := PARAMIXB[1] //Opción N - Notas, P - Pallets/Contenedor/Precinto
    Local cCodDoc := IIf(cOpc=="R",PARAMIXB[2],"")  //cbc:DocumentTypeCode
    Local cDesTpD := ""

    If cOpc == "N" //Observaciones
        cXMLPE += '	<cbc:Note>Prueba del PE M486RNF</cbc:Note>' + cCRLF  
    ElseIf cOpc == "P" //número de Pallets
        If Alltrim(SF2->F2_MODTRAD) == "01" //Importación
            cXMLPE += '		<cbc:TotalTransportHandlingUnitQuantity>80</cbc:TotalTransportHandlingUnitQuantity>' + cCRLF
        EndIf
    ElseIf cOpc == "S" //Shipment
        cXMLPE += '		<cbc:HandlingInstructions>DESCRIPCION DEL MOTIVO DE TRASLADO</cbc:HandlingInstructions>' + cCRLF
    ElseIf cOpc == "DA" //Establecimiento
        cXMLPE += '			<cbc:AddressTypeCode listAgencyName="PE:SUNAT" listName="Establecimientos anexos" listID="20552174918">3985</cbc:AddressTypeCode>' + cCRLF 
    ElseIf cOpc == "CO" //Número de Contenedor y Número de Precinto
        cXMLPE += '			<cac:Package>' + cCRLF
        cXMLPE += '				<cbc:ID>hlxu2142141</cbc:ID>' + cCRLF
        cXMLPE += '				<cbc:TraceID>002jp00124</cbc:TraceID>' + cCRLF
        cXMLPE += '			</cac:Package>' + cCRLF
    ElseIf cOpc == "R" //AdditionalDocumentReference
        If cCodDoc == "01"
            cDesTpD := "FACTURA"
        ElseIf cCodDoc == "50" 
            cDesTpD := EncodeUtf8("Declaración Aduanera de Mercancías")
        EndIf
        cXMLPE += '		<cbc:DocumentType>' + cDesTpD + '</cbc:DocumentType>' + cCRLF
    ElseIf cOpc == "PU" //MTC
        cXMLPE += '				<cbc:CompanyID>0200310CNG</cbc:CompanyID>' + cCRLF
    EndIf
    
Return cXMLPE
Informações
titleImportante
Informações
titleInformación

El Punto de Entrada M486RNF recibe como parámetro la opción de tipo Caracter, mediante el cual se tienen disponibles las siguientes opciones:

Si opción es "N", se permite la generación del Nodo de Observaciones.

Image Added

Si opción es "P", permite la generación del nodo de Número de Bultos o Pallets, de igual manera se pueden generar los indicadores utilizando los tag cbc:SpecialInstructions.

Image Added

Si opción es "S", permite la generación del tag cbc:HandlingInstructions con la descripción del Motivo de Traslado.

Image Added

Si opción es "DA", permite la generación del tag cbc:AddressTypeCode con el código de establecimiento de llegada.

Image Added

Si opción es "CO", permite la generación del tag cac:Package con los datos de Número de Contenedor y Número de Precinto.

Image Added

Si opción es "R", permite la generación del tag cbc:DocumentType con la descripción del tipo de Documento de Referencia, recibiendo el segundo parámetro con el código del tipo de documento de referencia.

Image Added

Si opción es "PU", permite la generación del tag cbc:CompanyID el número de MTC del Transportista.

Image Added

Se debe retornar en un string los nodos generados de acuerdo a lo permitido por la guía de Guías de Remisión Electrónica definido por la SUNAT.

Se tiene acceso disponible a los campos de la tabla SF2 - Encabezado de Fact. de Salida por el posicionamiento previo a la tabla, y es importante realizar las bifurcaciones de manera correcta para la generación de los nodos y en caso de requerir utilizar el Motivo de Traslado se puede utilizar el campo Motivo Tras (F2_MODTRAD).


4.20  PE - M486DETRNF

Descripción:

M486DETRNF .- Permite modificar los datos de Unidad de medida del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity@unitCode), Cantidad del bien (/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity), Descripción detallada del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cbc:Description) y Código del bien (/DespatchAdvice/cac:DespatchLine/cac:Item/cac:SellersItemIdentification/cbc:ID) de las Guías de Remisión Electrónicas.

Ubicación:

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

Eventos:

Transmitir

Programa Fuente:

M486RNFXML.PRW

Función:

M486XMLTRA

Respuesta:

Nombre

Tipo

Descripción

Obligatorio

cXML


Caracter

Cadena XML con los datos adicionales según se describe en ejemplo.


Si

Bloco de código
titleEjemplo de Punto de Entrada M486DETRNF
#include "protheus.ch"
 
User Function M486DETRNF()
    Local cFilDoc := PARAMIXB[1] //Filial
    Local cNumDoc := PARAMIXB[2] //Número de Documento
    Local cSerDoc := PARAMIXB[3] //Serie de Documento
    Local cEspDoc := PARAMIXB[4] //Especie de Documento
    Local cCodCli := PARAMIXB[5] //Codigo de Cliente
    Local cCodLoj := PARAMIXB[6] //Codigo de la Tienda
    Local cItem   := PARAMIXB[7] //Ítem
    Local cCodPro := PARAMIXB[8] //Código de Producto
    Local aDetGRE := {Nil, Nil, Nil, Nil}

    aDetGRE[1] := 50  //Cantidad
    aDetGRE[2] := "PC" //Unidad de Medida
    aDetGRE[3] := Nil  //Descripción del Producto
    aDetGRE[4] := Nil  //Código del Producto

Return aDetGRE
Informações
titleImportante

En el Punto de Entrada M486DETRNF, se debe retornar un arreglo con 4 posiciones, y se recomienda que se retornen con el valor Nil las posiciones que no se van a actualizar.

Se reciben como parámetros los datos Filial del Documento, Número de Documento, Serie del Documento, Especie del Documento, Código de Cliente, Loja del Cliente, Número de ítem y Código del Producto.

Las posiciones a retornar corresponden a la generación de los siguientes datos:

PosiciónDatoNodoTipo
1Cantidad del bien/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantityNumérico
2Unidad de medida del bien/DespatchAdvice/cac:DespatchLine/cbc:DeliveredQuantity@unitCodeCaracter
3Descripción detallada del bien/DespatchAdvice/cac:DespatchLine/cac:Item/cbc:DescriptionCaracter
4Código del bien/DespatchAdvice/cac:DespatchLine/cac:Item/cac:SellersItemIdentification/cbc:IDCaracter


5. DESCARGA DEL EJECUTABLE SUNATSERVICECONN

...