Hola amigos.
Hace algun tiempo inicié un hilo con el mismo tema (creo recordar), el tema -obviamente- no lo domino PERO NADA!, asi que cualquier error no sé como se resuelvoría. Bueno lo traigo de nuevo porque -ahora si- el cliente la va necesitar para REPROCESAR esa información en otros reportes.
Se trata de LEER un archivo XML y extraer datos, como: RFC RECEPTOR y EL DETALLE DE LA FACTURA
He consultado páginas, hilos y videos tutoriales:
Explicación de Neftali
https://neftali.clubdelphi.com/carga...r-a-los-datos/
No lo pude llevar acabo porque hay un campo con el detalle -quiero pensar q es eso- pero cuando yo lo hago con mi archivo, pues algo como eso a mi no me sale....entonces no sé que haría falta, talvez el XML de él tiene ciertas condiciones que detarminar q se debe generar el detalle en ese campo...no lo sé.
Video
https://www.youtube.com/watch?v=4D78MG4CaAI
en este video no lo puedo llevar acabo porque no llegó a compilar
ChatGPT (Por lo menos con esto obtengo el RFC del cliente a quien se le facturó)
Código Delphi
[-]uses
Xml.XMLDoc, Xml.XMLIntf;
procedure LeerDatosXML(const FileName: string);
var
XMLDoc: IXMLDocument;
NodeComprobante, NodeEmisor, NodeReceptor: IXMLNode;
begin
XMLDoc := TXMLDocument.Create(nil);
try
XMLDoc.LoadFromFile(FileName);
XMLDoc.Active := True;
NodeComprobante := XMLDoc.DocumentElement;
if Assigned(NodeComprobante) then
begin
Writeln('Serie: ', NodeComprobante.Attributes['Serie']);
Writeln('Folio: ', NodeComprobante.Attributes['Folio']);
Writeln('Fecha: ', NodeComprobante.Attributes['Fecha']);
NodeEmisor := NodeComprobante.ChildNodes.FindNode('cfdi:Emisor');
NodeReceptor := NodeComprobante.ChildNodes.FindNode('cfdi:Receptor');
if Assigned(NodeEmisor) and Assigned(NodeReceptor) then
begin
Writeln('Emisor RFC: ', NodeEmisor.Attributes['Rfc']);
Writeln('Emisor Nombre: ', NodeEmisor.Attributes['Nombre']);
Writeln('Receptor RFC: ', NodeReceptor.Attributes['Rfc']);
Writeln('Receptor Nombre: ', NodeReceptor.Attributes['Nombre']);
end;
end;
finally
XMLDoc := nil;
end;
end;
Otro video tutorial
https://www.youtube.com/watch?v=5QXf5zyGRi8
He usado XML Mapper que viene en la explicación de Neftalí, pero no logro ver el detalle de la factura "cfdi:Concepto"
Asi que, como le hago para obtener el detalle de la factura???. Interesa obtener esta sección:
Código:
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="50131700" NoIdentificacion="1546" Cantidad="1485.000000" ClaveUnidad="H87" Unidad="PZA"
Descripcion="LECHE SEMIDESCREMADA UHT PLUS SABOR FRESA" ValorUnitario="5.550000" Importe="8241.75" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="8241.75" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
<cfdi:Concepto ClaveProdServ="50131700" NoIdentificacion="1547" Cantidad="540.000000" ClaveUnidad="H87" Unidad="PZA"
Descripcion="LECHE SEMIDESCREMADA UHT PLUS SABOR VAINILLA" ValorUnitario="5.550000" Importe="2997.00" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="2997.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
Le paso el archivo XML (completo) para mayor referencia.
Código PHP:
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd" Version="4.0" Serie="NAY" Folio="50642" Fecha="2024-05-30T09:36:30" Sello="cRYzUP+XAg/cbjUf15ox/7wr8ngtInlUlQh4S6kqbfG09CZ7OvdrTREuoe7ye0RaOXSYJKOAidj2WoTCAti8ERHnB8eYUYMGGPA5iG8QfXYus1fm3ghjZOU8wWSI58sjgFQJ4CqReeRv7RfVCwFZB65rc2po3FVPYiRwH48zLJeuCk1ZD7NyTEguwnJgbIiMOGG+Wo00ff1ZXI29Uv3s8tB4v3NiKbx5aA13U8aAmhbXNfgTLO5flWuNUUanSycGnan98EbYFf1yXetgjqOkCTr3oCurqFmKKVWUrFydgjc5HpTZDAbgbab7V8x9PgTRqiboG+OBqy4rpGAQxnlsrQ==" FormaPago="99" NoCertificado="00001000000505378200" Certificado="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" CondicionesDePago="8 DIAS DESPUES DE LA PRESENTACION DE LA FACTURA" SubTotal="11238.75" Moneda="MXN" Total="11238.75" TipoDeComprobante="I" Exportacion="01" MetodoPago="PPD" LugarExpedicion="63195">
<cfdi:Emisor Rfc="CIL999999a9a" Nombre="CILINDRO" RegimenFiscal="601"/>
<cfdi:Receptor Rfc="CID999999a9a" Nombre="CID" DomicilioFiscalReceptor="14020" RegimenFiscalReceptor="601" UsoCFDI="G01"/>
<cfdi:Conceptos>
<cfdi:Concepto ClaveProdServ="50131700" NoIdentificacion="1546" Cantidad="1485.000000" ClaveUnidad="H87" Unidad="PZA" Descripcion="LECHE SEMIDESCREMADA UHT PLUS SABOR FRESA" ValorUnitario="5.550000" Importe="8241.75" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="8241.75" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
<cfdi:Concepto ClaveProdServ="50131700" NoIdentificacion="1547" Cantidad="540.000000" ClaveUnidad="H87" Unidad="PZA" Descripcion="LECHE SEMIDESCREMADA UHT PLUS SABOR VAINILLA" ValorUnitario="5.550000" Importe="2997.00" ObjetoImp="02">
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:Traslado Base="2997.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:Impuestos TotalImpuestosTrasladados="0.00">
<cfdi:Traslados>
<cfdi:Traslado Base="11238.75" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.000000" Importe="0.00"/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="66c97813-65c3-4eb2-9d4b-ab5efa69e025" FechaTimbrado="2024-05-30T10:51:04" RfcProvCertif="LSO1306189R5" SelloCFD="cRYzUP+XAg/cbjUf15ox/7wr8ngtInlUlQh4S6kqbfG09CZ7OvdrTREuoe7ye0RaOXSYJKOAidj2WoTCAti8ERHnB8eYUYMGGPA5iG8QfXYus1fm3ghjZOU8wWSI58sjgFQJ4CqReeRv7RfVCwFZB65rc2po3FVPYiRwH48zLJeuCk1ZD7NyTEguwnJgbIiMOGG+Wo00ff1ZXI29Uv3s8tB4v3NiKbx5aA13U8aAmhbXNfgTLO5flWuNUUanSycGnan98EbYFf1yXetgjqOkCTr3oCurqFmKKVWUrFydgjc5HpTZDAbgbab7V8x9PgTRqiboG+OBqy4rpGAQxnlsrQ==" NoCertificadoSAT="00001000000509846663" SelloSAT="RMOvjcfp8Iuv4kKkPRffvauaEn5Q81TCHYCsamguTYhSbHMppd7IeBzfZOhipT4is1snmJCOG6DHF2EYOFQ5NG+vzsq6wday6z++Jb5tzjKyyhlSPN0AQNf+yWGFXbfVp4nEkT03/wOBx4EK0+PEx7deIx9grqYLynSkV1JBLg9ol2uMZ3Zv18AKAh7ADCWTxjo1/m6NVK7WW6B3uRvsFTyxTtsRwRT2Qdtw+JzvZvSHib70EiHZ9Ioz0e/VoGT8p0GQQCRuT1iCTOoqpigeM9cFTVwhrlksDcsnbJH+wPrqqEGxBjbcnY5m4juHD4qBx2vJpd8RID2212lukdgfLA=="/>
</cfdi:Complemento>
</cfdi:Comprobante>
Alguien que me pueda orientar a como obtener el detalle (NoIdentificacion,Cantidad,Descripcion, ETC)
Gracias de antemano