Histórico da Página
...
En la rutina de Documentos Electrónicos (MATA486), al momento de realizar la generación del archivo XML para las Facturas de Venta (NF), Notas de Crédito de Cliente (NCC) y Notas de Débito de Cliente (NDC), el usuario requiere incluir el nodo <cac:RegistrationAddress> con sus respectivos subnodos, que corresponden a la información de la dirección del Adquiriente o Usuario (Receptor/Cliente).
03. SOLUCIÓN
Se En la rutina Funciones genéricas de FE de país Perú (M486XFUN) se activa el Punto de Entrada M486DIRREC para permitir que el usuario realice la inclusión del nodo <cac:RegistrationAddress> con los nodos con la información correspondiente a la dirección del adquiriente dentro del nodo cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntityDentro de la rutina Funciones genéricas de FE de país Perú (M486XFUN) , en la función que realiza la Impresión Nodo Receptor del XML (M486XMLREC) , se realiza el llamado al punto de entrada M486DIRREC.
Totvs custom tabs box | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
...
El Punto de Entrada M486DIRREC recibe 2 parámetros, que es el código del cliente y el código de la tienda, debe retornar una cadena que contenga todos los nodos que el usuario desee incluir para el nodo cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity correspondientes a la información de la Dirección de adquiriente.Ejemplo:
Bloco de código | ||
---|---|---|
| ||
User Function M486DIRREC() |
...
Local aArea := GetArea() // Se reserva el área de trabajo |
...
Local cXML := "" // Cadena de retorno |
...
Local cCRLF := (chr(13)+chr(10)) |
...
Local cCliente := PARAMIXB[1] // Código del cliente |
...
Local cLoja := PARAMIXB[2] // Código del la tienda. |
...
Local cFilSA1 := xFilial("SA1") |
...
...
DbSelectArea("SA1") |
...
SA1->(dbSetOrder(1)) // A1_FILIAL+A1_COD+A1_LOJA |
...
If ( SA1->(DbSeek(cFilSA1 + cCliente + cLoja ))) |
...
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 |
...
Endif |
...
RestArea(aArea) |
...
Return cXML |
Card documentos Informacao La presente solución aplica para versión 12.1.17 o superior, siempre y cuando se tengan las rutinas actualizadas a la fecha indicada en la sección 01 - Datos Generales. Titulo ¡IMPORTANTE!
...