Ver Mensaje Individual
  #3  
Antiguo 05-03-2016
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Reputación: 22
JXJ Va por buen camino
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

Código:


//---------------------------------------------------------------------------
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");

}
Responder Con Cita