Ver la Versión Completa : C++Builder 6 CFDI Mexico ¿Como agregar Concepto ?
Hola
¿Alguien sabe como se puede generar el xml y agregar nodos del tipo concepto ?
importe el XSD http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd
no se como hacer el codigo
Cualquier ayuda es bienvenida.
Gracias.
juanelo
05-03-2016, 01:19:49
Pregunta: ¿estas de cero en CFDI o quieres agregar complementos concepto ?
Hola juanelo
Estoy en ceros por que no se si lo estoy haciendo bien. de xml no tengo ni idea
este es el codigo de el boton genera xml
//---------------------------------------------------------------------------
void __fastcall TForm1::BtnFacturaGenerarClick(TObject *Sender)
{
log("Iniciamos Generacion de XML");
TXMLDocument* fDocXML = new TXMLDocument("");
fDocXML->Active = true;
fDocXML->Version = "1.0";
fDocXML->Encoding = "UTF-8";
fDocXML->StandAlone = "yes";
Comprobante = GetComprobante(XMLDocument1);
_di_IXMLComprobante CFDI32 = GetComprobante(fDocXML);
CFDI32->version = "3.2";
CFDI32->certificado = EditCertNum->Text;
CFDI32->sello = "";
CFDI32->formaDePago = EditFormaDePago->Text;
CFDI32->condicionesDePago = EditCondicionesDePago->Text;
// CFDI32->fecha = FormatDateTime("yyyy-mm-dd""T""hh:nn:ss", Now() ); // no jala asi
CFDI32->fecha = FormatDateTime("yyyy-mm-dd", Now()) + "T" + FormatDateTime("hh:nn:ss", Now() );
CFDI32->folio = EditFolio->Text;
CFDI32->serie = EditSerie->Text;
CFDI32->LugarExpedicion = EditLugarDeExpedicion->Text;
CFDI32->subTotal = EditFacturaSubtotal->Text;
CFDI32->TipoCambio = "0.0";
CFDI32->Moneda = "Pesos";
// CFDI32->descuento = ;
// CFDI32->motivoDescuento = ;
CFDI32->total = EditFacturaTotalFinal->Text;
CFDI32->tipoDeComprobante = EditTipoDeCFDI->Text;
CFDI32->metodoDePago = EditMetodoDePago->Text;
CFDI32->LugarExpedicion = EditLugarDeExpedicion->Text;
CFDI32->DeclareNamespace("cfdi","http://www.sat.gob.mx/cfd/3") ;
CFDI32->SetAttribute("xsi:schemaLocation" , "http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd");
CFDI32->SetAttribute("xmlns:tfd" , "http://www.sat.gob.mx/TimbreFiscalDigital"); // no se respeta el texto solo pone TRUE
CFDI32->SetAttribute("xmlns:xs" , "http://www.w3.org/2001/XMLSchema"); // no se respeta el texto solo pone TRUE
CFDI32->SetAttribute("xmlns:xsi" , "http://www.w3.org/2001/XMLSchema-instance");// no se respeta el texto solo pone TRUE
CFDI32->Emisor->rfc = EditEmisorRFC->Text;
CFDI32->Emisor->nombre = EditEmisorNombre->Text;
CFDI32->Emisor->DomicilioFiscal->calle = EditEmisorCalle->Text ;
CFDI32->Emisor->DomicilioFiscal->noExterior = EditEmisorNumExt->Text;
CFDI32->Emisor->DomicilioFiscal->noInterior = EditEmisorNumInt->Text;
CFDI32->Emisor->DomicilioFiscal->colonia = EditEmisorColonia->Text;
CFDI32->Emisor->DomicilioFiscal->localidad = EditEmisorLocalidad->Text;
CFDI32->Emisor->DomicilioFiscal->municipio = EditEmisorMun->Text;
CFDI32->Emisor->DomicilioFiscal->estado = EditEmisorEstado->Text;
CFDI32->Emisor->DomicilioFiscal->pais = EditEmisorPais->Text;
CFDI32->Emisor->DomicilioFiscal->codigoPostal = EditEmisorCP->Text;
CFDI32->Emisor->ExpedidoEn->calle = EditEmisorExpedidoEnCalle->Text;
CFDI32->Emisor->ExpedidoEn->noExterior = EditEmisorExpedidoEnNumExt->Text;
CFDI32->Emisor->ExpedidoEn->noInterior = EditEmisorExpedidoEnNumInt->Text;
CFDI32->Emisor->ExpedidoEn->colonia = EditEmisorExpedidoEnColonia->Text;
CFDI32->Emisor->ExpedidoEn->localidad = EditEmisorExpedidoEnLocalidad->Text;
CFDI32->Emisor->ExpedidoEn->referencia = EditEmisorExpedidoEnRef->Text;
CFDI32->Emisor->ExpedidoEn->municipio = EditEmisorExpedidoEnMun->Text;
CFDI32->Emisor->ExpedidoEn->estado = EditEmisorExpedidoEnEstado->Text;
CFDI32->Emisor->ExpedidoEn->pais = EditEmisorExpedidoEnPais->Text;
CFDI32->Emisor->ExpedidoEn->codigoPostal = EditEmisorExpedidoEnCP->Text;
CFDI32->Emisor->RegimenFiscal->Add()->Regimen = EditEmisorRegimen->Text;
CFDI32->Receptor->rfc = EditReceptorRFC->Text;
CFDI32->Receptor->nombre = EditReceptorNombre->Text;
CFDI32->Receptor->Domicilio->calle = EditReceptorCalle->Text;
CFDI32->Receptor->Domicilio->noExterior = EditReceptorNumExt->Text;
CFDI32->Receptor->Domicilio->noInterior = EditReceptorNumInt->Text;
CFDI32->Receptor->Domicilio->colonia = EditReceptorColonia->Text ;
CFDI32->Receptor->Domicilio->localidad = EditReceptorLocalidad->Text;
CFDI32->Receptor->Domicilio->referencia = EditReceptorReferencia->Text;
CFDI32->Receptor->Domicilio->municipio = EditReceptorMun->Text;
CFDI32->Receptor->Domicilio->estado = EditReceptorEstado->Text;
CFDI32->Receptor->Domicilio->pais = EditReceptorPais->Text;
CFDI32->Receptor->Domicilio->codigoPostal = EditReceptorCP->Text;
CFDI32->Conceptos->Add();// me genera un nodo conceptos vacio
/* Me genera un nodo por cada Add() con solo un miembro.
CFDI32->Conceptos->Add()-> cantidad = EditConceptoCantidad->Text;
CFDI32->Conceptos->Add()->unidad = EditConceptoUnidad->Text;
CFDI32->Conceptos->Add()->descripcion = EditConceptoDescripcion->Text;
CFDI32->Conceptos->Add()->valorUnitario = EditConceptoValorUnitario->Text;
CFDI32->Conceptos->Add()->importe = EditConceptoTotal->Text;
*/
/* Me genera un nodo por cada Add() con solo un miembro.
CFDI32->Impuestos->Traslados->Add()->impuesto = EditFacturaImpuestoNombre->Text ;
CFDI32->Impuestos->Traslados->Add()->tasa = EditFacturaTasa->Text;
CFDI32->Impuestos->Traslados->Add()->importe = EditFacturaImporte->Text;
*/
/* no se como agregar el timbre*/
// CFDI32->Complemento-> ->Traslados->Add()->importe = ;
log("guardamos el XML CFDI en ");
fDocXML->SaveToFile( "Pruebna1.xml");
SynEdit1->Lines->LoadFromFile("Pruebna1.xml");
}
tmsanchez
07-03-2016, 22:39:18
Hola.
Hay un proyecto en Delphi para factura electrónica de México(CFDI) que probablemente te sirva como referencia acerca de los nodos:
https://github.com/bambucode/tfacturaelectronica
el código para crear un CFDI se encuentra aquí:
https://github.com/bambucode/tfacturaelectronica/blob/master/Ejemplo/EjemploFacturaElectronica.dpr
En cuanto al tema de XML hay una serie de artículos (también en delphi) que muestran el uso de los componentes para generar XML, no creo que sea muy complicado pasarlo a C++:
http://delphiallimite.blogspot.mx/2007/10/trabajando-con-documentos-xml.html
http://delphiallimite.blogspot.mx/2007/10/trabajando-con-documentos-xml-ii.html
http://delphiallimite.blogspot.mx/2007/10/trabajando-con-documentos-xml-y-iii.html
Saludos.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.