preserveWhiteSpace = FALSE; $DOM->loadXML($xml); $params = $DOM->getElementsByTagName('TimbreFiscalDigital'); foreach ($params as $param) { $UUID = $param->getAttribute('UUID'); $noCertificadoSAT = $param->getAttribute('NoCertificadoSAT'); $selloCFD = $param->getAttribute('SelloCFD'); $selloSAT = $param->getAttribute('SelloSAT'); } $params = $DOM->getElementsByTagName('Emisor'); $i=0; foreach ($params as $param) { if ($i==0){ $Emisor_Nom = $param->getAttribute('Nombre'); $Emisor_RFC = $param->getAttribute('Rfc'); $Emisor_Regimen = $param->getAttribute('RegimenFiscal'); } $i++; } $params = $DOM->getElementsByTagName('Receptor'); $i=0; foreach ($params as $param) { if ($i==0){ $Receptor_Nom = $param->getAttribute('Nombre'); $Receptor_RFC = $param->getAttribute('Rfc'); $Receptor_UsoCFDI = $param->getAttribute('UsoCFDI'); } $i++; } $params = $DOM->getElementsByTagName('Comprobante'); foreach ($params as $param) { $Fact_Fecha = $param->getAttribute('Fecha'); $Fact_Serie = $param->getAttribute('Serie'); $Fact_Folio = $param->getAttribute('Folio'); $Fact_NoCFDI = $Fact_Serie.$Fact_Folio; $version = $param->getAttribute('Version'); $noCertificado = $param->getAttribute('NoCertificado'); $LugarExpedicion = $param->getAttribute('LugarExpedicion'); $subTotal = $param->getAttribute('SubTotal'); $total = $param->getAttribute('Total'); $formaDePago = $param->getAttribute('FormaPago'); $metodoDePago = $param->getAttribute('MetodoPago'); $moneda = $param->getAttribute('Moneda'); } if (strlen($Fact_NoFact)==0){ $Fact_NoFact = "S/N"; } $i=0; $ImpTot = 0; $params = $DOM->getElementsByTagName('Concepto'); foreach ($params as $param) { $ArrayClaveProdServ[$i] = $param->getAttribute('ClaveProdServ'); $ArrayClaveUnidad[$i] = $param->getAttribute('ClaveUnidad'); $ArrayUnidad[$i] = $param->getAttribute('Unidad'); $ArrayCant[$i] = $param->getAttribute('Cantidad'); $ArrayUniMed[$i] = $param->getAttribute('Unidad'); $ArrayArtSer[$i] = $param->getAttribute('Descripcion'); $ArrayPreUni[$i] = $param->getAttribute('ValorUnitario'); $ArrayImporte[$i] = $param->getAttribute('Importe'); $SumaImportes = $SumaImportes + $ArrayImporte[$i]; $i++; } // Obteniendo datos del complemento Carta Porte ============================= $params = $DOM->getElementsByTagName('CartaPorte'); foreach ($params as $param) { $TotalDistRec = $param->getAttribute('TotalDistRec'); $Version = $param->getAttribute('Version'); $TranspInternac = $param->getAttribute('TranspInternac'); } $ind = 0; $params = $DOM->getElementsByTagName('Ubicacion'); foreach ($params as $param) { if ($ind==0){ $Ori_TipoUbicacion = $param->getAttribute('TipoUbicacion'); $Ori_RFCRemitenteDestinatario = $param->getAttribute('RFCRemitenteDestinatario'); $Ori_FechaHoraSalidaLlegada = $param->getAttribute('FechaHoraSalidaLlegada'); } if ($ind==1){ $Dest_TipoUbicacion = $param->getAttribute('TipoUbicacion'); $Dest_RFCRemitenteDestinatario = $param->getAttribute('RFCRemitenteDestinatario'); $Dest_FechaHoraSalidaLlegada = $param->getAttribute('FechaHoraSalidaLlegada'); $Dest_DistanciaRecorrida = $param->getAttribute('DistanciaRecorrida'); } $ind++; } $ind = 0; $params = $DOM->getElementsByTagName('Domicilio'); foreach ($params as $param) { if ($ind==0){ $Ori_Calle = $param->getAttribute('Calle'); $Ori_NumeroExterior = $param->getAttribute('NumeroExterior'); $Ori_Colonia = $param->getAttribute('Colonia'); $Ori_Municipio = $param->getAttribute('Municipio'); $Ori_Estado = $param->getAttribute('Estado'); $Ori_Pais = $param->getAttribute('Pais'); $Ori_CodigoPostal = $param->getAttribute('CodigoPostal'); } if ($ind==1){ $Dest_Calle = $param->getAttribute('Calle'); $Dest_NumeroExterior = $param->getAttribute('NumeroExterior'); $Dest_Colonia = $param->getAttribute('Colonia'); $Dest_Localidad = $param->getAttribute('Localidad'); $Dest_Municipio = $param->getAttribute('Municipio'); $Dest_Estado = $param->getAttribute('Estado'); $Dest_Pais = $param->getAttribute('Pais'); $Dest_CodigoPostal = $param->getAttribute('CodigoPostal'); } $ind++; } $params = $DOM->getElementsByTagName('Mercancias'); foreach ($params as $param) { $PesoBrutoTotal = $param->getAttribute('PesoBrutoTotal'); $UnidadPeso = $param->getAttribute('UnidadPeso'); $NumTotalMercancias = $param->getAttribute('NumTotalMercancias'); } $params = $DOM->getElementsByTagName('Mercancia'); foreach ($params as $param) { $BienesTransp = $param->getAttribute('BienesTransp'); $Descripcion = $param->getAttribute('Descripcion'); $Cantidad = $param->getAttribute('Cantidad'); $ClaveUnidad = $param->getAttribute('ClaveUnidad'); $PesoEnKg = $param->getAttribute('PesoEnKg'); $ValorMercancia = $param->getAttribute('ValorMercancia'); $Moneda = $param->getAttribute('Moneda'); } $params = $DOM->getElementsByTagName('Autotransporte'); foreach ($params as $param) { $PermSCT = $param->getAttribute('PermSCT'); $NumPermisoSCT = $param->getAttribute('NumPermisoSCT'); } $params = $DOM->getElementsByTagName('IdentificacionVehicular'); foreach ($params as $param) { $ConfigVehicular = $param->getAttribute('ConfigVehicular'); $PlacaVM = $param->getAttribute('PlacaVM'); $AnioModeloVM = $param->getAttribute('AnioModeloVM'); } $params = $DOM->getElementsByTagName('Seguros'); foreach ($params as $param) { $AseguraRespCivil = $param->getAttribute('AseguraRespCivil'); $PolizaRespCivil = $param->getAttribute('PolizaRespCivil'); } $params = $DOM->getElementsByTagName('Remolque'); foreach ($params as $param) { $SubTipoRem = $param->getAttribute('SubTipoRem'); $Placa = $param->getAttribute('Placa'); } $params = $DOM->getElementsByTagName('TiposFigura'); foreach ($params as $param) { $TipoFigura = $param->getAttribute('TipoFigura'); $RFCFigura = $param->getAttribute('RFCFigura'); $NumLicencia = $param->getAttribute('NumLicencia'); } //####################################################################################################################################################### echo '
'; echo 'DATOS OBTENIDOS DE UN CFDI 4.0, CARTA PORTE DE INGRESO.'; echo '
'; echo '
'; echo 'DATOS DEL COMPROBANTE:'; echo '
'; echo '
'; echo '
UUID: ' . $UUID . '
'; echo '
No. de Certificado del SAT: ' . $noCertificadoSAT . '
'; echo '
Sello CFD: ' . $selloCFD . '
'; echo '
Sello SAT: ' . $selloSAT . '
'; echo '
Emisor - Razón Social: ' . $Emisor_Nom . '
'; echo '
Emisor - RFC: ' . $Emisor_RFC . '
'; echo '
Emisor - Régimen: ' . $Emisor_Regimen . '
'; echo '
Receptor - Razón Social: ' . $Receptor_Nom . '
'; echo '
Receptor - RFC: ' . $Receptor_RFC . '
'; echo '
Uso CFDI: ' . $Receptor_UsoCFDI . '
'; echo '
CFDI - Fecha: ' . $Fact_Fecha . '
'; echo '
CFDI - Serie: ' . $Fact_Serie . '
'; echo '
CFDI - Folio: ' . $Fact_Folio . '
'; echo '
CFDI - Versión: ' . $version . '
'; echo '
CFDI - No. de certificado: ' . $noCertificado . '
'; echo '
CFDI - Lugar de expedición: ' . $LugarExpedicion . '
'; echo '
CFDI - Sub total: ' . number_format($subTotal,2,'.',',') . '
'; echo '
CFDI - Total: ' . number_format($total,2,'.',',') . '
'; echo '
CFDI - Forma de pago: ' . $formaDePago . '
'; echo '
CFDI - Método de pago: ' . $metodoDePago . '
'; echo '
CFDI - Moneda: ' . $moneda . '
'; $TotRegs = count($ArrayCant); for ($i=0; $i<$TotRegs; $i++){ echo '
Clave producto: ' . $ArrayClaveProdServ[$i] . '
'; echo '
Clave unidad: ' . $ArrayClaveUnidad[$i] . '
'; echo '
Cantidad: ' . $ArrayCant[$i] . '
'; echo '
Unidad de medida: ' . $ArrayUnidad[$i] . '
'; echo '
Artículo o servicio: ' . $ArrayArtSer[$i] . '
'; echo '
Precio unitario: ' . number_format($ArrayPreUni[$i],2) . '
'; echo '
Importe: ' . number_format($ArrayImporte[$i],2) . '
'; } echo '
'; echo '
'; echo 'DATOS DEL COMPLEMENTO CARTA PORTE DE TRASLADO:'; echo '
'; echo '
'; echo '
Versión: ' . $Version . '
'; echo '
Transporte internacional: ' . $TranspInternac . '
'; echo '
Total de distancia recorrida: ' . $TotalDistRec . '
'; echo '
Origen - Tipo ubicación: ' . $Ori_TipoUbicacion . '
'; echo '
Origen - RFC remitente destinatario: ' . $Ori_RFCRemitenteDestinatario . '
'; echo '
Origen - Fecha hora salida llegada: ' . $Ori_FechaHoraSalidaLlegada . '
'; echo '
Origen - Calle: ' . $Ori_Calle . '
'; echo '
Origen - Número exterior: ' . $Ori_NumeroExterior . '
'; echo '
Origen - Colonia: ' . $Ori_Colonia . '
'; echo '
Origen - Municipio: ' . $Ori_Municipio . '
'; echo '
Origen - Estado: ' . $Ori_Estado . '
'; echo '
Origen - País: ' . $Ori_Pais . '
'; echo '
Origen - Código postal: ' . $Ori_CodigoPostal . '
'; echo '
Destino - Tipo ubicación: ' . $Dest_TipoUbicacion . '
'; echo '
Destino - RFC remitente destinatario: ' . $Dest_RFCRemitenteDestinatario . '
'; echo '
Destino - Fecha hora salida llegada: ' . $Dest_FechaHoraSalidaLlegada . '
'; echo '
Destino - Distancia recorrida: ' . $Dest_DistanciaRecorrida . '
'; echo '
Destino - Calle: ' . $Dest_Calle . '
'; echo '
Destino - Número exterior: ' . $Dest_NumeroExterior . '
'; echo '
Destino - Colonia: ' . $Dest_Colonia . '
'; echo '
Destino - Localidad: ' . $Dest_Localidad . '
'; echo '
Destino - Municipio: ' . $Dest_Municipio . '
'; echo '
Destino - Estado: ' . $Dest_Estado . '
'; echo '
Destino - País: ' . $Dest_Pais . '
'; echo '
Destino - Código postal: ' . $Dest_CodigoPostal . '
'; echo '
Peso bruto total: ' . $PesoBrutoTotal . '
'; echo '
Unidad peso: ' . $UnidadPeso . '
'; echo '
Número total de mercancías: ' . $NumTotalMercancias . '
'; echo '
Clave del producto de los bienes: ' . $BienesTransp . '
'; echo '
Características de los bienes: ' . $Descripcion . '
'; echo '
Número de bienes: ' . $Cantidad . '
'; echo '
Clave unidad de medida: ' . $ClaveUnidad . '
'; echo '
Kilogramos el peso estimado de los bienes: ' . $PesoEnKg . '
'; echo '
Monto del valor de los bienes y/o mercancías: ' . $ValorMercancia . '
'; echo '
Moneda utilizada para expresar el valor de los bienes: ' . $Moneda . '
'; echo '
Clave del tipo de permiso proporcionado por la SCT: ' . $PermSCT . '
'; echo '
Número del permiso otorgado por la SCT: ' . $NumPermisoSCT . '
'; echo '
Clave de nomenclatura del autotransporte: ' . $ConfigVehicular . '
'; echo '
Solo los caracteres alfanuméricos, sin guiones ni espacios de la placa vehicular: ' . $PlacaVM . '
'; echo '
Año del autotransporte que es utilizado para transportar los bienes: ' . $AnioModeloVM . '
'; echo '
Nombre de la aseguradora que cubre los riesgos por responsabilidad civil del autotransporte utilizado: ' . $AseguraRespCivil . '
'; echo '
Número de póliza asignado por la aseguradora: ' . $PolizaRespCivil . '
'; echo '
Clave del subtipo de remolque o semirremolques: ' . $SubTipoRem . '
'; echo '
Solo los caracteres alfanuméricos, sin guiones ni espacios de la placa vehicular del autotransporte: ' . $Placa . '
'; echo '
Clave de la figura de transporte que interviene en el traslado de los bienes y/o mercancías: ' . $TipoFigura . '
'; echo '
RFC de la figura de transporte que interviene en el traslado de los bienes y/o mercancías: ' . $RFCFigura . '
'; echo '
Número de la licencia o el permiso otorgado al operador del autotransporte de carga: ' . $NumLicencia . '
'; echo '
'; echo '
';