Exemple #1
0
        public List<ComprobanteXML> ArchivosXmlaProcesarObtener(String sCarpeta)
        {


            facturasGrid = new List<ComprobanteXML>();


            extraccionXML = new List<string>();
            FileInfo existencia = null;


            extraccionXML = iterarDirectorio(sCarpeta);

            foreach (String xmlCurrent in extraccionXML)
            {
                ComprobanteXML xmlAgregar = new ComprobanteXML();

                try
                {
                    existencia = new FileInfo(xmlCurrent);

                    xmlAgregar = XMLExtraerInformacion(xmlCurrent);
                }
                catch (Exception e)
                {
                    String error;
                    error = String.Format("{0} Error:{1}", existencia.Name, e.Message);
                    xmlAgregar.nombreEmisor = error;
                }
                facturasGrid.Add(xmlAgregar);
            }


            return facturasGrid;
        }
Exemple #2
0
        public ComprobanteXML XMLExtraerInformacion(String xml)
        {


            FileInfo existenciaArchivo = new FileInfo(xml);
            ComprobanteXML oXml = new ComprobanteXML();

            var XMLBase = XDocument.Load(xml);
            IEnumerable<XElement> nElementos = XMLBase.Document.Root.Elements();



            oXml.nombreArchivo = existenciaArchivo.Name;

            IEnumerable<XElement> xEmisor = (from emisor in nElementos
                                             where emisor.Name.LocalName == "Emisor"
                                             select emisor
                        ).ToList();


            IEnumerable<XElement> xReceptor = (from emisor in nElementos
                                               where emisor.Name.LocalName == "Receptor"
                                               select emisor
                        ).ToList();


            var xComplemento = (from emisor in nElementos
                                where emisor.Name.LocalName == "Complemento"
                                select emisor
                        ).Descendants();





            oXml.version = "3.0"; //predeterminada


            if (null != XMLBase.Document.Root.Attribute("version"))
            {
                oXml.version = (String)XMLBase.Document.Root.Attribute("version").Value;
            }

            if (null != XMLBase.Document.Root.Attribute("Version"))
            {
                oXml.version = (String)XMLBase.Document.Root.Attribute("Version").Value;
            }


            //oXml.version = (String)XMLBase.Document.Root.Attribute("version").Value;


            switch (oXml.version)
            {


                case "3.2":


                    oXml.tipodeComprobante = (String)XMLBase.Document.Root.Attribute("tipoDeComprobante").Value;
                    oXml.total = Double.Parse(XMLBase.Document.Root.Attribute("total").Value);
                    oXml.subTotal = Double.Parse(XMLBase.Document.Root.Attribute("subTotal").Value);
                    oXml.fechaExpedido = DateTime.Parse(XMLBase.Document.Root.Attribute("fecha").Value);

                    oXml.folio = "";
                    if (null != XMLBase.Document.Root.Attribute("folio"))
                    {
                        if (!String.IsNullOrEmpty(XMLBase.Document.Root.Attribute("folio").Value))
                        {

                            oXml.folio = XMLBase.Document.Root.Attribute("folio").Value;
                        }
                    }
                    oXml.metodoDePago = XMLBase.Document.Root.Attribute("metodoDePago").Value;

                    oXml.rfcEmisor = xEmisor.Attributes("rfc").FirstOrDefault().Value;
                    oXml.nombreEmisor = xEmisor.Attributes("nombre").FirstOrDefault().Value;
                    oXml.rfcReceptor = xReceptor.Attributes("rfc").FirstOrDefault().Value;

                    oXml.nombreReceptor = "";
                    if (null != xReceptor.Attributes("nombre").FirstOrDefault())
                    {
                        oXml.nombreReceptor = xReceptor.Attributes("nombre").FirstOrDefault().Value;
                    }

                    break;

                case "3.3":



                    oXml.tipodeComprobante = (String)XMLBase.Document.Root.Attribute("TipoDeComprobante").Value;
                    oXml.total = Double.Parse(XMLBase.Document.Root.Attribute("Total").Value);
                    oXml.subTotal = Double.Parse(XMLBase.Document.Root.Attribute("SubTotal").Value);
                    oXml.fechaExpedido = DateTime.Parse(XMLBase.Document.Root.Attribute("Fecha").Value);

                    oXml.folio = String.Empty;
                    if (null != XMLBase.Document.Root.Attribute("Folio"))
                    {
                        if (!String.IsNullOrEmpty(XMLBase.Document.Root.Attribute("Folio").Value))
                        {

                            oXml.folio = XMLBase.Document.Root.Attribute("Folio").Value;
                        }
                    }

                    if (null != XMLBase.Document.Root.Attribute("MetodoPago"))
                    {
                        oXml.metodoDePago = XMLBase.Document.Root.Attribute("MetodoPago").Value;
                    }

                    oXml.rfcEmisor = xEmisor.Attributes("Rfc").FirstOrDefault().Value;
                    if (null != xEmisor.Attributes("Nombre").FirstOrDefault())
                    {
                        oXml.nombreEmisor = xEmisor.Attributes("Nombre").FirstOrDefault().Value;
                    }

                    oXml.rfcReceptor = xReceptor.Attributes("Rfc").FirstOrDefault().Value;

                    oXml.nombreReceptor = String.Empty;
                    if (null != xReceptor.Attributes("Nombre").FirstOrDefault())
                    {
                        oXml.nombreReceptor = xReceptor.Attributes("Nombre").FirstOrDefault().Value;
                    }


                    break;


                default:

                    break;

            }




            DateTime _fechaTimbrado = DateTime.Now;

            DateTime.TryParse(xComplemento.Attributes("FechaTimbrado").FirstOrDefault().Value, out _fechaTimbrado);
            oXml.fechaTimbrado = _fechaTimbrado;
            oXml.UUId = xComplemento.Attributes("UUID").FirstOrDefault().Value.ToString();

            return oXml;

        }