Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2013, 16:35
leon200189
 
Fecha de Ingreso: octubre-2013
Mensajes: 13
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta Como identificar un xml con formato cfdi o cfd, en php

Hola que tal a todos, generalmente leo todo lo relacionado a mi problema y si no lo encuentro pues pregunto y después de leer y he decidido preguntar debido a que hasta el momento no logro encontrar la respuesta. Explico el caso y dejo los códigos tanto de los xml como lo que he hecho en php.

Problema:

Estoy haciendo en php una funcion para validar una facutra, puedo hacerlo en formato cfd o en cfdi, siempre y cuando sean por separado, mi problema viene que actualmente debo de leer la factura en xml y al hacerlo mi funcion no identifica que tipo es, si es cfdi lo hace a la primera sin problemas pero si es cfd me manda unos errores, mi duda es como puedo hacerle para que cuando cargue el xml diga a si es cfd que haga la funcion de cfd y si es cfdi que haga la cfdi para que ya no me salgan los errores

les dejo el codigo para que los chequen...

Cita:
<?php
// $xml = simplexml_load_file('concfdi.xml');
$xml = new SimpleXMLElement ("CFD_BBCX834.xml", null,true);

foreach ($xml -> xpath ('//cfdi:Comprobante//cfdi:Emisor') as $Emisor){
echo "yo leo con cfdi<br />";
echo $Emisor['rfc'];
echo "<br />";
echo $Emisor['nombre'];
echo "<br />";
echo "saliendo de leo con cfdi<br />";
}

foreach ($xml -> Emisor as $Emisor){
echo "yo leo sin cfdi<br />";
echo $Emisor['rfc'];
echo "<br />";
echo $Emisor['nombre'];
echo "<br />";
echo "saliendo de leo sin cfdi<br />";
}
?>
Aqui les dejo el xml llamado concfdi.xml:
Cita:
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv3.xsd http://www.sat.gob.mx/implocal http://www.sat.gob.mx/sitio_internet/cfd/implocal/implocal.xsd" version="3.0" folio="85" fecha="2012-05-01T08:43:25" formaDePago="Pago en una sola exhibición" condicionesDePago="Contado" subTotal="91205.00" Moneda="MXP" total="105452.80" tipoDeComprobante="ingreso" noCertificado="20001000000100001696" certificado="v1g" sello="NVfIyB+5/C4MSJq76vlx3DPc=">
<cfdi:Emisor rfc="APR0412108C5" nombre="INSTALACIONES ELECTRICAS Y MONTAJES INDUSTRIALES, SA DE CV">
<cfdi:DomicilioFiscal calle="DOMICILIO" noExterior="31" colonia="COLONIA" localidad="LOCALIDAD" municipio="ORIZABA" estado="VERACRUZ" pais="MEXICO" codigoPostal="94350"/>
</cfdi:Emisor>
<cfdi:Receptor rfc="HECA740903131" nombre="ARTURO HERRERA CARRION">
<cfdi:Domicilio calle="NORTE 14 ENTRE OTE. 3 Y 5" noExterior="138" colonia="CENTRO" municipio="ORIZABA" estado="VERACRUZ" pais="MEXICO" codigoPostal="94300"/>
</cfdi:Receptor>
<cfdi:Conceptos>
<cfdi:Concepto cantidad="145.00" noIdentificacion="1" descripcion="PRODUCTO 1" valorUnitario="629.00" importe="91205.00"/>
</cfdi:Conceptos>
<cfdi:Impuestos totalImpuestosTrasladados="14592.8">
<cfdi:Traslados>
<cfdi:Traslado impuesto="IVA" tasa="16.00" importe="14592.8"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<implocal:ImpuestosLocales xmlns:implocal="http://www.sat.gob.mx/implocal" version="1.0" TotaldeRetenciones="345" TotaldeTraslados="0.00">
<implocal:RetencionesLocales ImpLocRetenido="5 AL MILLAR" TasadeRetencion="0.05" Importe="345.00"/>
</implocal:ImpuestosLocales>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/TimbreFiscalDigital/TimbreFiscalDigital.xsd" version="1.0" UUID="F2298C2A-40F2-4889-B112-2B05437BBBEA" FechaTimbrado="2012-05-01T08:42:51" selloCFD="NVfIyB+5/C4MSJq76vlx3D2hn6RUYvPHqpEdk8JgtiFsMOWkS77TuBCq128 mCODplW0XydD2/IHOVN8ZmQsCX9xOGsAyV2Aw79vmBuUjp49Un3HXvxfTTJPCYWM oDTyTCs0cyucD/WV6vRiV3umHqv2nsuxRZcWw5mG/FDozkPc=" noCertificadoSAT="30001000000100000801" selloSAT="CKvN90X/5+BI2AlT1LKby8LvMcfqPzJsKn7OSy0Jq63Xqjq2xAwy5mBpex OokalzuFpNaup8ud/B8v+TKHM+v61gyUNrpfeJGW3PC7targgyN16g4MdDGjk5RX6PZ aEVTrxOzqWNzqnvHmyCyBdCrQ9V1jM764F9/8nEm4duipA="/>
</cfdi:Complemento>
</cfdi:Comprobante>
Este es el sincfdi.xml:
Cita:
<?xml version='1.0' encoding='UTF-8' ?>
<Comprobante xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:otro="http://www.sutanos.com.mx" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv22.xsd http://www.sutanos.com.mx http://www.walmartmexico.com.mx/AddendaKioscos.xsd" version="2.2" serie="BBCX" folio="834" fecha="2013-09-30T11:37:52" sello="iJkUxY5j+pV0fQvJ+HQf6VjD82GdxFMn3vDTpY41/iT/XnCnRtDaCZx4wNVtYLM3ttG0MMlR2+2iv7MK/CcZQJlckzWkCY/cTjDLNdnrIhy0zSBWLrmbO57E1u4JiBuiL9H2IzI+3PM0og78p 7iYjTZewn1LqCJyxsswW/Y+0yk=" noAprobacion="717321" anoAprobacion="2011" formaDePago="PAGO EN UNA SOLA EXHIBICION" noCertificado="00001000000300051202" certificado="uUcV3oSSf0AXI7QpZgqlsFZkAXEXtpL5vAKCd WwS5HYISgS4eaKJ4MwWCau9pGn2jBXQoh+77HatVw2h97hVhEk usZV95eRdwgKwl3oDVM8+eN8xpWNpFo96ILgK+EEH4hoD+ltXj 4htIu/4MLiwHI=" condicionesDePago="Inmediato" subTotal="147.66" total="171.30" metodoDePago="No Identificado" tipoDeComprobante="egreso" Moneda="MXN" TipoCambio="1.00" LugarExpedicion="RIO BLANCO, VERACRUZ" NumCtaPago="No identificado">
<Emisor rfc="NWM1234244W4" nombre="sutana tienda">
<DomicilioFiscal calle="nose" noExterior="78" localidad="adsds" municipio="sepasu" estado="nose" pais="MÉXICO" codigoPostal="02770" />
<ExpedidoEn calle="AVENIDA VERACRUZ" noExterior="26" localidad="LOS PINOS" referencia="CALLE 1 PINO Y CALLE 12" municipio="RIO BLANCO" estado="VERACRUZ" pais="MÉXICO" codigoPostal="234234" />
<RegimenFiscal Regimen="Régimen de Consolidación" />
</Emisor>
<Receptor rfc="SMe123311UT8" nombre="tiendita de la esquina">
<Domicilio calle="AVENIDA " noExterior="0" colonia="asd" localidad="asd" referencia="asd asd 11" municipio="asdasd" estado="asdasd" pais="MEXICO" codigoPostal="78567" />
</Receptor>
<Conceptos>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501058753100" descripcion="LUSTRADOR" valorUnitario="44.83" importe="44.83"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501071902950" descripcion="CLOROX 5.8" valorUnitario="32.67" importe="32.67"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501032903880" descripcion="MR M CRISTAL" valorUnitario="16.55" importe="16.55"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501026004600" descripcion="DETERGENTE" valorUnitario="16.29" importe="16.29"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501058754180" descripcion="750105875418" valorUnitario="12.93" importe="12.93"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501032915470" descripcion="MR M TIRAS" valorUnitario="10.26" importe="10.26"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7501032908660" descripcion="GLD MINIGEL" valorUnitario="8.53" importe="8.53"></Concepto>
<Concepto cantidad="1.00" unidad="PIEZA" noIdentificacion="7509546039150" descripcion="MFP 22ML" valorUnitario="5.60" importe="5.60"><Parte cantidad="0.00" descripcion="TICKET No: 515625824973273177759" /></Concepto>
</Conceptos>
<Impuestos totalImpuestosTrasladados="23.64">
<Traslados>
<Traslado impuesto="IVA" tasa="16.00" importe="23.64" />
</Traslados>
</Impuestos>
<Addenda>
<otro:InformacionAdicionalPuntoDeVenta />
</Addenda>
</Comprobante>
Espero me puedan ayudar y muchas gracias de antemano :).