Página 1 de 1

Problema con XML de CFDI.

Publicado: Mié Ene 15, 2014 4:30 pm
por ranaya
Hola.

El Problema es básicamente que al generar el XML para CFDI Version 3.2.
Los nodos interiores se generan sin el prefijo "cfdi:"


<cfdi:Conceptos>
<Concepto xmlns="http://www.sat.gob.mx/cfd/3" unidad="No aplica" importe="0" valorUnitario="0" descripcion="ESTE CFDI ES UN COMPLEMENTO DEL CFD EXPEDIDO" cantidad="1.00"/>
</cfdi:Conceptos>
<cfdi:Impuestos totalImpuestosTrasladados="166.87">
<cfdi:Traslados>
<Traslado xmlns="http://www.sat.gob.mx/cfd/3" importe="166.87" tasa="5" impuesto="IVA"/>
</cfdi:Traslados>

En lugar de que sea:

<cfdi:Conceptos>
<cfdi:Concepto unidad="No aplica" importe="0" valorUnitario="0" descripcion="ESTE CFDI ES UN COMPLEMENTO DEL CFD EXPEDIDO " cantidad="1.00"/>
</cfdi:Conceptos>
<cfdi:Impuestos totalImpuestosTrasladados="166.87">
<cfdi:Traslados>
<cfdi:Traslado importe="166.87" tasa="5" impuesto="IVA"/>
</cfdi:Traslados>

Como Puedo resolver este Problema.

Saludos.


P.D.

Creo el XML de la siguiente manera.

CFD := TCFD.Create(cfdV32);
With CFD.Datos do Begin
Serie := DaFact.NoFactura.Serie; // 'C';
Folio := IntToStr(DaFact.NoFactura.FolioFactura);
For i := 0 to DaFact.NoRegDetalles-1 do begin
With Conceptos.Add do begin
Cantidad := '1.00';
Descripcion := DaFact.DetalleFactura_.Descripcion; // Revisar esta madre bien.
ValorUnitario := floattostr(DaFact.DetalleFactura_.Importe.Subtotal);
Importe := floattostr(DaFAct.DetalleFactura_.Importe.Subtotal);
Unidad:='No aplica';
if length( DaFact.cliente_factura_especial ) > 0 then begin
Cantidad := altera_cfd_cantidad(Cantidad, DaFact, i);
ValorUnitario := altera_cfd_ValorUnitario( ValorUnitario, DaFact, i);
if alterar_cfd_NoIdentificacion( DaFact ) then
NoIdentificacion := altera_cfd_NoIdentificacion('', DaFact );
end;

End;
End; // fin de Detalles.

With Impuestos do Begin {[TRASLADOS]}
TotalImpuestosTrasladados:=floattostr(DaFact.TotalFactura_.Iva); {opc}
with Traslados.Add do begin
Impuesto := 'IVA';
Tasa:=floattostr(DaFact.Iva);
importe:=floattostr(DaFact.TotalFactura_.Iva);
end;

End; {CFD.Impuestos}
End; {with CFD}

Re: Problema con XML de CFDI.

Publicado: Mié Ene 15, 2014 6:47 pm
por Dado
Eso solo pasa en Delphi XE o mayor

Aqui publicaron informacion de como resolverlo

Re: Problema con XML de CFDI.

Publicado: Jue Ene 16, 2014 4:32 pm
por ranaya
Muchas Gracias por la Información.

Abrí el Archivo cfdv2030.pas y modifique en cada uno de los metodos ".Add" y ".Insert" la llamada en la forma que se menciona,en el post que me mandaste, de la siguiente manera:


function TXMLConceptos.Add: IXMLConcepto;
begin
//Result := AddItem(-1) as IXMLConcepto;
Result := AddChild(ItemTag, ItemNS, True, -1) as IXMLConcepto; //Nueva forma para versiones de delphi XE?
end;

function TXMLConceptos.Insert(const Index: Integer): IXMLConcepto;
begin
//Result := AddItem(Index) as IXMLConcepto;
Result := AddChild(ItemTag, ItemNS, True, Index) as IXMLConcepto;
end;

y efectivamente se soluciono el problema.

Gracias por tu apoyo.

Saludos.