Árvore de páginas

Versões comparadas

Chave

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

...

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
tabsPre-condiciones,Pasos
idsPre-condiciones,Pasos
Totvs custom tabs box items
defaultyes
referenciaPre-condiciones
  1. Realizar un respaldo del repositorio del ambiente (archivo .rpo).
  2. Aplicar el parche generado para la issue DMINA-13977.
  3. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Facturaciones (MATA467N).
    1. Contar con una factura de venta registrada.
Totvs custom tabs box items
defaultno
referenciaPasos
  1. En el módulo Facturación (SIGAFAT), ir al menú Actualizaciones | Facturación | Documentos Electrónicos (MATA486).
  2. Informar los parámetros:
    • ¿Tipo de Documento? = Factura 
    • ¿Serie? = <Serie de la Factura de Venta>
  3. Ejecutar la acción Transmitir.
  4. Informar los parámetros:
    • ¿Serie de Factura? = <Serie de la Factura>
    • ¿Factura Inicial? = <Folio de la Factura creada previamente>
    • ¿Factura Final? = <Folio de la Factura creada previamente>
  5. Validar que el proceso de transmisión electrónica haya sido exitoso.
  6. Validar que el nodo cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity contenga los nodos configurados en el punto de entrada M486DIRREC.

...

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
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))

...


    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
InformacaoLa 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!

...