Пример #1
0
        public static ResAcc <TimbreXml> LeerXmlTimbrado(string sXmlFactura)
        {
            var Res = new ResAcc <TimbreXml>();

            XmlDocument oXml = new XmlDocument();

            oXml.LoadXml(sXmlFactura);
            var oTfds = oXml.GetElementsByTagName("tfd:TimbreFiscalDigital");

            if (oTfds.Count <= 0)
            {
                Res.Mensaje = "El Xml no contiene la información de timbrado.";
                return(Res);
            }
            try
            {
                var oTimbreXml = new TimbreXml();
                var oTfd       = oTfds[0];
                oTimbreXml.FolioFiscal        = oTfd.Attributes["UUID"].Value;
                oTimbreXml.SelloSat           = oTfd.Attributes["selloSAT"].Value;
                oTimbreXml.CertificadoSat     = oTfd.Attributes["noCertificadoSAT"].Value;
                oTimbreXml.FechaCertificacion = Convert.ToDateTime(oTfd.Attributes["FechaTimbrado"].Value);

                // Se genera la cadena original del timbre fiscal
                var oFacturaComps = oXml.GetElementsByTagName("cfdi:Comprobante");
                if (oFacturaComps.Count <= 0)
                {
                    Res.Mensaje = "El Xml no contiene la información del comprobante o está mal formado.";
                    return(Res);
                }
                var    oFacturaComp  = oFacturaComps[0];
                string sVersion      = oFacturaComp.Attributes["version"].Value;
                string sSelloFactura = oFacturaComp.Attributes["sello"].Value;
                oTimbreXml.CadenaOriginal = FacturaXml.GenerarCadenaOriginalTimbre(sVersion, sSelloFactura, oTimbreXml);

                Res.Respuesta = oTimbreXml;
            }
            catch (Exception e)
            {
                Res.Mensaje = e.Message;
                return(Res);
            }

            Res.Exito = true;
            return(Res);
        }
Пример #2
0
        public static ResAcc<TimbreXml> LeerXmlTimbrado(string sXmlFactura)
        {
            var Res = new ResAcc<TimbreXml>();

            XmlDocument oXml = new XmlDocument();
            oXml.LoadXml(sXmlFactura);
            var oTfds = oXml.GetElementsByTagName("tfd:TimbreFiscalDigital");
            if (oTfds.Count <= 0)
            {
                Res.Mensaje = "El Xml no contiene la información de timbrado.";
                return Res;
            }
            try
            {
                var oTimbreXml = new TimbreXml();
                var oTfd = oTfds[0];
                oTimbreXml.FolioFiscal = oTfd.Attributes["UUID"].Value;
                oTimbreXml.SelloSat = oTfd.Attributes["selloSAT"].Value;
                oTimbreXml.CertificadoSat = oTfd.Attributes["noCertificadoSAT"].Value;
                oTimbreXml.FechaCertificacion = Convert.ToDateTime(oTfd.Attributes["FechaTimbrado"].Value);

                // Se genera la cadena original del timbre fiscal
                var oFacturaComps = oXml.GetElementsByTagName("cfdi:Comprobante");
                if (oFacturaComps.Count <= 0) {
                    Res.Mensaje = "El Xml no contiene la información del comprobante o está mal formado.";
                    return Res;
                }
                var oFacturaComp = oFacturaComps[0];
                string sVersion = oFacturaComp.Attributes["version"].Value;
                string sSelloFactura = oFacturaComp.Attributes["sello"].Value;
                oTimbreXml.CadenaOriginal = FacturaXml.GenerarCadenaOriginalTimbre(sVersion, sSelloFactura, oTimbreXml);

                Res.Respuesta = oTimbreXml;
            }
            catch (Exception e)
            {
                Res.Mensaje = e.Message;
                return Res;
            }

            Res.Exito = true;
            return Res;
        }
Пример #3
0
 private static string GenerarCadenaOriginalTimbre(string sVersion, string sSelloFactura, TimbreXml oTimbre)
 {
     return
         "||"
         + sVersion
         + "|" + oTimbre.FolioFiscal
         + "|" + oTimbre.FechaCertificacion.ToString("yyyy-MM-ddTHH:mm:ss")
         + "|" + sSelloFactura
         + "|" + oTimbre.CertificadoSat
         + "||";
 }
Пример #4
0
 private static string GenerarCadenaOriginalTimbre(string sVersion, string sSelloFactura, TimbreXml oTimbre)
 {
     return
         ("||"
          + sVersion
          + "|" + oTimbre.FolioFiscal
          + "|" + oTimbre.FechaCertificacion.ToString("yyyy-MM-ddTHH:mm:ss")
          + "|" + sSelloFactura
          + "|" + oTimbre.CertificadoSat
          + "||");
 }