[QUOTE=Mike_Rodriguez_J;3615541]Avances - Espero les sirva, yo necesito ayuda con la generación del XML,
a traves de openssl ya genero todo, sin embargo para limpiar el codigo decidi hacerlo con las clases y me resulta mucho mas facil, solo que ahora estoy atorado con la obtención del xml desde la clase CFD
Cita:
Iniciado por Mike_Rodriguez_J Que tal buena tarde.
Ayuda con Visual Studio 2010
Alguien programando CFD con la generación de clases del archivo
QUOTE]
OJO, este codigo ya genera un archivo xml, el tema que tengo es el de los name spaces, no me esta arrojando lo mismo, alguna sugerencia:
Do While RecXML.EOF <> True
Dim FacturaProcesada As Integer
FacturaProcesada = RecXML.Fields("Invoice").Value
Dim CFD As Comprobante.Comprobante
CFD = New Comprobante.Comprobante
CFD.version = "2.0"
CFD.serie = "A"
CFD.folio = "1"
CFD.noCertificado = LeeCertificado("SerialNumber")
CFD.certificado = LeeCertificado("Base64")
CFD.subTotal = ComprobanteSubTotal(FacturaProcesada)
CFD.descuento = ComprobanteDescuento(FacturaProcesada)
CFD.motivoDescuento = "Descuento Cliente"
CFD.total = RecXML.Fields("Total").Value
CFD.metodoDePago = "Depósito en Cuenta, Tarjeta de Credito o Debito"
CFD.tipoDeComprobante = 1 'ComprobanteTipo(FacturaProcesada)
CFD.Emisor = New Comprobante.ComprobanteEmisor 'Aqui esta el tema de como crear el comprobante emisor dentro del CFD.Emisor (Asi es con los demas nodos)
CFD.Emisor.rfc = F_Emisor("RFC")
CFD.Emisor.nombre = F_Emisor("name")
CFD.Emisor.DomicilioFiscal = New Comprobante.t_UbicacionFiscal
CFD.Emisor.DomicilioFiscal.calle = DomicilioFiscalC("calle")
CFD.Emisor.DomicilioFiscal.noExterior = DomicilioFiscalC("noExterior")
CFD.Emisor.DomicilioFiscal.noInterior = DomicilioFiscalC("noInterior")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("Colonia")
CFD.Emisor.DomicilioFiscal.localidad = DomicilioFiscalC("localidad")
CFD.Emisor.DomicilioFiscal.referencia = DomicilioFiscalC("referencia")
CFD.Emisor.DomicilioFiscal.municipio = DomicilioFiscalC("municipio")
CFD.Emisor.DomicilioFiscal.estado = DomicilioFiscalC("estado")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("pais")
CFD.Emisor.DomicilioFiscal.pais = DomicilioFiscalC("CodigoPostal")
CFD.Receptor = New Comprobante.ComprobanteReceptor
CFD.Receptor.rfc = "RfcCliente"
CFD.Receptor.nombre = "NombreCliente"
CFD.Receptor.Domicilio = New Comprobante.t_Ubicacion
CFD.Receptor.Domicilio.calle = "CalleCliente"
CFD.Receptor.Domicilio.noExterior = "noExterior"
'Conceptos
'OJO aqui esta el tema de como utilizar la parte de conceptos
Dim concepto As New Comprobante.ComprobanteConcepto
CFD.Conceptos = Array.CreateInstance(concepto.GetType, 10)
CFD.Conceptos(0) = New Comprobante.ComprobanteConcepto
CFD.Conceptos(0).cantidad = 1
'al solucionar lo anterior, se que me falta impuesto y lo demas pero me quise
'enfocar a generar el xml con esos datos para visualizarlo y hago este codigo, '
pero me sigue saliendo el (XMLNS)<?xml version="1.0" encoding="utf-8"?>
'<Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '
xmlns:schemalocation="http://www.sat.gob.mx/cfd/2 'http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd" version="2.0"
Dim xmlNameSpace = New XmlSerializerNamespaces()
xmlNameSpace.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance")
xmlNameSpace.Add("schemalocation", "http://www.sat.gob.mx/cfd/2" & " " & "http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd")
Dim objStreamWriter As New StreamWriter("C:\CFD.xml", False)
Dim prueba As New XmlSerializerNamespaces
prueba.Add(String.Empty, String.Empty)
Dim x1 As New XmlSerializer(CFD.GetType, "http://www.sat.gob.mx/cfd/2")
x1.Serialize(objStreamWriter, CFD, xmlNameSpace)
objStreamWriter.Close()
Toda ayuda sera agradecida.
Estoy programando en visual studio 2010 en windows.forms
Hola oye mike como pudiste instanciar los items para los conceptos tengo algo así pero no se genera mi xml
ComprobanteConceptoCuentaPredial predial = new ComprobanteConceptoCuentaPredial();
t_InformacionAduanera[] infaduanera = new t_InformacionAduanera[1];
ComprobanteConceptoParte[] conParte = new ComprobanteConceptoParte[1];
conParte[0] = new ComprobanteConceptoParte();
conParte[0].cantidad = 412.52M;
conParte[0].descripcion = "descripcion";
infaduanera[0] = new t_InformacionAduanera();
infaduanera[0].aduana="aduana";
predial.numero="1";
comprobanteConcepto2[0].Items = new object[3];
comprobanteConcepto2[0].Items[0] = predial;
comprobanteConcepto2[0].Items[1] = infaduanera;
comprobanteConcepto2[0].Items[2] = conParte;