facturista.com - Foros de Factura Electrónica (Comprobante Fiscal Digital por Internet)
http://facturista.com/foros/

Como pegar Addendas o Complementos
http://facturista.com/foros/viewtopic.php?f=3&t=697
Página 1 de 1

Autor:  ariel_medina [ Jue Dic 05, 2013 5:58 pm ]
Asunto:  Como pegar Addendas o Complementos

Ejemplo en FoxPro:

En versión demo los caracteres son alterados, y xml_node() no encontraría el nodo Addenda.

Necesitará una licencia para que xml_insert() y xml_serialize() funcionen correctamente.

Código:
h = cfdi_xml_cargar('miarchivo.xml')
   
if h<>0
   
   lcXML = "<cfdi:Addenda><etiqueta1></etiqueta1></cfdi:Addenda>"
   
   if xml_insert(cfdi_raiz(h), 'cfdi:Comprobante', lcXML, 0, 0)=0
      messagebox(cfdi_error(h))
   else
      hnodoAddenda = xml_node(cfdi_raiz(h),"cfdi:Comprobante/cfdi:Addenda")
      if hnodoAddenda <> 0
         lc = xml_serialize(hnodoAddenda,1)
         messagebox(lc)
      endif
   endif
else
   messagebox("Error al cargar")
endif

Autor:  pabloczr [ Lun May 12, 2014 10:53 pm ]
Asunto:  Re: Como pegar Addendas o Complementos

¿Tendrás un ejemplo en PHP?

Gracias!

Autor:  ariel_medina [ Mié May 14, 2014 2:22 pm ]
Asunto:  Re: Como pegar Addendas o Complementos

Seria asi:

Código:
$h = cfdi_xml_cargar('miarchivo.xml');
   
if ($h != 0)
   {   
   lcXML = "<cfdi:Addenda><etiqueta1></etiqueta1></cfdi:Addenda>";
   
   if (xml_insert(cfdi_raiz(h), 'cfdi:Comprobante', lcXML, 0, 0)== 0)
      echo cfdi_error(h);
   else
      {
      $hnodoAddenda = xml_node(cfdi_raiz($h),"cfdi:Comprobante/cfdi:Addenda");
      if ($hnodoAddenda != 0)
         {
         $lc = xml_serialize($hnodoAddenda,1);
         echo $lc;
      }
      }
   }
else
   echo "Error al cargar";


Autor:  ariel_medina [ Sab Ene 10, 2015 7:56 am ]
Asunto:  Re: Como pegar Addendas o Complementos

Código:
* Ejemplo para pegar el complemento de terceros al xml de un CFDI
* Se muestra tambien como extraer o convertir el XML a una cadena

local h, hx, lcxml, lcxmlterceros, lc, hnodoTerceros

set proc to libfacturista

init_libfacturista()

lcxml = 'paraterceros.xml' &&CFDI sin el complemento

*xml del concepto con el complemento, por ejemplo:
* '<cfdi:Concepto><cfdi:ComplementoConcepto><terceros:PorCuentadeTerceros>...</terceros:PorCuentadeTerceros></cfdi:ComplementoConcepto></cfdi:Concepto>'
lcxmlterceros = filetostr('terceros.xml')

h = 0
h = cfdi_xml_cargar(h,lcxml)

if h <> 0

      
   * Insertamos en el nodo Conceptos, el xml nuevo
   hx = xml_insert(cfdi_raiz(h), "cfdi:Comprobante/cfdi:Conceptos", lcxmlterceros, 0, 0)
   
   if hx <> 0
      * Guardamos el xml nuevo a otro archivo
      * Solo para proposito de visibilidad, se ha puesto el ultimo parametro a 1 (decorado),
      * se recomienda que sea 0
      if cfdi_xml_guardar(h,'cfditerceros.xml',0) <> 0

         * Convertimos a una cadena nuestro XML para mostrarlo      
         lc = xml_serialize(h,1)
         messagebox(lc)
         
         * Ahora mostramos la cadena XML del complemento
         hnodoTerceros = xml_node(cfdi_raiz(h), "cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:ComplementoConcepto/terceros:PorCuentadeTerceros")
         if hnodoTerceros <> 0
            lc = xml_serialize(hnodoTerceros,1)
            messagebox(lc)
         endif
      else
         messagebox("Error al guardar: "+ cfdi_error(h))
      endif
      
   else
      messagebox("No se pudo insertar el XML: "+ cfdi_error(h))
   endif
else
   messagebox("No se pudo cargar el archivo: "+ cfdi_error(h))
endif

clear dlls

set proc to


Página 1 de 1 Todos los horarios son UTC - 6 horas
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/