Te muestro como crear el xml según la documentación del SAT establecida en el anexo 20.
Clase para crear el XML: clic aquí
Video 1: https://www.youtube.com/watch?v=XlTz0NRQLm4
Video 2: https://www.youtube.com/watch?v=HjfqdTspnio
Catálogos SAT mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | class Program { static void Main( string [] args) { //Llenamos la clase COMPROBANTE-------------------------------------------------------- Comprobante oComprobante = new Comprobante(); oComprobante.Version = "3.3" ; oComprobante.Serie = "H" ; oComprobante.Folio = "1" ; oComprobante.Fecha = DateTime.Now; oComprobante.Sello = "faltante" ; //sig video oComprobante.FormaPago = "99" ; oComprobante.NoCertificado = "12312312313112121212" ; //sig video oComprobante.Certificado = "" ; //sig video oComprobante.SubTotal = 10m; oComprobante.Descuento =1; oComprobante.Moneda = "MXN" ; oComprobante.Total =9; oComprobante.TipoDeComprobante = "I" ; oComprobante.MetodoPago = "PUE" ; oComprobante.LugarExpedicion = "20131" ; ComprobanteEmisor oEmisor = new ComprobanteEmisor(); oEmisor.Rfc = "POWE870601DM7" ; oEmisor.Nombre = "Una razón rh de cv" ; oEmisor.RegimenFiscal = "605" ; ComprobanteReceptor oReceptor = new ComprobanteReceptor(); oReceptor.Nombre = "Pepe SA DE CV" ; oReceptor.Rfc = "PEPE080801JH1" ; oReceptor.UsoCFDI = "P01" ; //asigno emisor y receptor oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor; List<ComprobanteConcepto> lstConceptos = new List<ComprobanteConcepto>(); ComprobanteConcepto oConcepto = new ComprobanteConcepto(); oConcepto.Importe = 10m; oConcepto.ClaveProdServ = "92111704" ; oConcepto.Cantidad = 1; oConcepto.ClaveUnidad = "C81" ; oConcepto.Descripcion = "Un misil para la guerra" ; oConcepto.ValorUnitario = 10m; oConcepto.Descuento = 1; lstConceptos.Add(oConcepto); oComprobante.Conceptos = lstConceptos.ToArray(); //SERIALIZAMOS.------------------------------------------------- string pathXML = @"C:\Users\Bioxor\source\repos\XSDToXML\miPrimerXML.xml" ; XmlSerializer oXmlSerializar = new XmlSerializer( typeof (Comprobante)); string sXml = "" ; using ( var sww= new StringWriter()) { using (XmlWriter writter = XmlWriter.Create(sww)) { oXmlSerializar.Serialize(writter,oComprobante); sXml = sww.ToString(); } } //guardamos el string en un archivo System.IO.File.WriteAllText(pathXML,sXml); } } |