示例#1
0
        void Lee_XML_En_Directorio(string path)
        {
            try
            {
                ArchivosXML.Clear();
                string[] filePaths = Directory.GetFiles(path, "*.xml");
                lblStatus.Text = "Leyendo directorio...";
                statusStrip1.Refresh();
                int cont = 0;
                foreach (string filename in filePaths)
                {
                    XMLRow nuevoElemento = new XMLRow();
                    StreamReader reader = new StreamReader(filename);
                    string xmlstring = reader.ReadToEnd();
                    Comprobante comprobante = new Comprobante();

                    nuevoElemento.XML_Nombre_Archivo = Path.GetFileName(filename);
                    try
                    {
                        var serializer = new XmlSerializer(typeof(Comprobante));
                        cont++;
                        using (TextReader lector = new StringReader(xmlstring))
                        {
                            lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Serializando " + nuevoElemento.XML_Nombre_Archivo + " a Comprobante CFDI...";
                            statusStrip1.Refresh();
                            comprobante = (Comprobante)serializer.Deserialize(lector);
                        }
                        nuevoElemento.XML_RFC_Emisor = comprobante.Emisor.rfc;
                        nuevoElemento.XML_RFC_Receptor = comprobante.Receptor.rfc;
                        nuevoElemento.XML_Total = comprobante.total;
                        nuevoElemento.XML_Esquema_CFDI = "Esquema Valido";
                    }
                    catch
                    {
                        nuevoElemento.XML_Esquema_CFDI = "Esquema Invalido";
                        nuevoElemento.XML_RFC_Emisor = "";
                        nuevoElemento.XML_RFC_Receptor = "";
                        nuevoElemento.XML_Status = "INVALIDO!!!";
                        nuevoElemento.XML_Total = 0.00m;
                        nuevoElemento.XML_UUID = "";
                    }
                    try
                    {
                        var xdoc = XDocument.Parse(xmlstring);
                        var timbreFiscal = (from item in xdoc.Descendants()
                                            where item.Name.LocalName == "TimbreFiscalDigital"
                                            select item).First();
                        lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Extrayendo Comprobante CFDI de " + nuevoElemento.XML_Nombre_Archivo + "...";
                        statusStrip1.Refresh();
                        TimbreFiscalDigital timbreXMLComplemento = new TimbreFiscalDigital();
                        timbreXMLComplemento.FechaTimbrado = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value);
                        timbreXMLComplemento.UUID = timbreFiscal.Attribute("UUID").Value;
                        timbreXMLComplemento.noCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value;
                        timbreXMLComplemento.selloCFD = timbreFiscal.Attribute("selloCFD").Value;
                        timbreXMLComplemento.selloSAT = timbreFiscal.Attribute("selloSAT").Value;
                        timbreXMLComplemento.version = timbreFiscal.Attribute("version").Value;
                        nuevoElemento.XML_UUID = timbreXMLComplemento.UUID.ToLower();
                        nuevoElemento.XML_Complemento_TFD = "Complemento Valido";
                        reader.Close();
                    }
                    catch
                    {
                        nuevoElemento.XML_Complemento_TFD = "Complemento Invalido";
                    }
                    ArchivosXML.Add(nuevoElemento);

                }
                ActualizaGrid();
            }
            catch(Exception ex)
            {
                MessageBox.Show("Error :"+ex.ToString());
            }
        }
示例#2
0
        void Lee_XML_En_Directorio(string path)
        {
            try
            {
                ArchivosXML.Clear();
                string[] filePaths = Directory.GetFiles(path, "*.xml");
                lblStatus.Text = "Leyendo directorio...";
                statusStrip1.Refresh();
                int cont = 0;
                foreach (string filename in filePaths)
                {
                    XMLRow       nuevoElemento = new XMLRow();
                    StreamReader reader        = new StreamReader(filename);
                    string       xmlstring     = reader.ReadToEnd();
                    Comprobante  comprobante   = new Comprobante();

                    nuevoElemento.XML_Nombre_Archivo = Path.GetFileName(filename);
                    try
                    {
                        var serializer = new XmlSerializer(typeof(Comprobante));
                        cont++;
                        using (TextReader lector = new StringReader(xmlstring))
                        {
                            lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Serializando " + nuevoElemento.XML_Nombre_Archivo + " a Comprobante CFDI...";
                            statusStrip1.Refresh();
                            comprobante = (Comprobante)serializer.Deserialize(lector);
                        }
                        nuevoElemento.XML_RFC_Emisor   = comprobante.Emisor.rfc;
                        nuevoElemento.XML_RFC_Receptor = comprobante.Receptor.rfc;
                        nuevoElemento.XML_Total        = comprobante.total;
                        nuevoElemento.XML_Esquema_CFDI = "Esquema Valido";
                    }
                    catch
                    {
                        nuevoElemento.XML_Esquema_CFDI = "Esquema Invalido";
                        nuevoElemento.XML_RFC_Emisor   = "";
                        nuevoElemento.XML_RFC_Receptor = "";
                        nuevoElemento.XML_Status       = "INVALIDO!!!";
                        nuevoElemento.XML_Total        = 0.00m;
                        nuevoElemento.XML_UUID         = "";
                    }
                    try
                    {
                        var xdoc         = XDocument.Parse(xmlstring);
                        var timbreFiscal = (from item in xdoc.Descendants()
                                            where item.Name.LocalName == "TimbreFiscalDigital"
                                            select item).First();
                        lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Extrayendo Comprobante CFDI de " + nuevoElemento.XML_Nombre_Archivo + "...";
                        statusStrip1.Refresh();
                        TimbreFiscalDigital timbreXMLComplemento = new TimbreFiscalDigital();
                        timbreXMLComplemento.FechaTimbrado    = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value);
                        timbreXMLComplemento.UUID             = timbreFiscal.Attribute("UUID").Value;
                        timbreXMLComplemento.noCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value;
                        timbreXMLComplemento.selloCFD         = timbreFiscal.Attribute("selloCFD").Value;
                        timbreXMLComplemento.selloSAT         = timbreFiscal.Attribute("selloSAT").Value;
                        timbreXMLComplemento.version          = timbreFiscal.Attribute("version").Value;
                        nuevoElemento.XML_UUID            = timbreXMLComplemento.UUID.ToLower();
                        nuevoElemento.XML_Complemento_TFD = "Complemento Valido";
                        reader.Close();
                    }
                    catch
                    {
                        nuevoElemento.XML_Complemento_TFD = "Complemento Invalido";
                    }
                    ArchivosXML.Add(nuevoElemento);
                }
                ActualizaGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error :" + ex.ToString());
            }
        }