Exemple #1
0
        public void TransmitirLote(string sPathLote, List <belPesquisaNotas> lPesquisa)
        {
            string sRet = string.Empty;

            string       sXmlLote = string.Empty;
            StreamReader reader   = new StreamReader(sPathLote);

            sXmlLote = reader.ReadToEnd();


            try
            {
                if (Acesso.TP_EMIS == 1)
                {
                    switch (Acesso.xUFtoWS)
                    {
                    case "SP":
                    {
                        #region Regiao_SP
                        if (Acesso.TP_AMB == 2)
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.LoadXml(sXmlLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.LoadXml(sXmlLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        #endregion
                    }
                    break;

                    case "RS":
                    {
                        #region Regiao_RS
                        if (Acesso.TP_AMB == 2)
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        #endregion
                    }
                    break;

                    case "MS":
                    {
                        #region Regiao_MS
                        if (Acesso.TP_AMB == 2)
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.LoadXml(sXmlLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.LoadXml(sXmlLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        #endregion
                    }
                    break;

                    case "SVRS":
                    {
                        #region Regiao_RJ
                        if (Acesso.TP_AMB == 2)
                        {
                            HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.nfeCabecMsg();
                            HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.NfeRecepcao2();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        #endregion
                    }
                    break;

                    case "MG":
                    {
                        #region Regiao_MG
                        if (Acesso.TP_AMB == 2)
                        {
                            HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.NfeRecepcao2();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        else
                        {
                            HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.nfeCabecMsg();
                            HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.NfeRecepcao2();
                            belUF objbelUf = new belUF();
                            cabec.cUF            = Acesso.cUF.ToString();
                            cabec.versaoDados    = Acesso.versaoNFe;
                            ws2.nfeCabecMsgValue = cabec;
                            ws2.ClientCertificates.Add(Acesso.cert_NFe);
                            XmlDocument _xmlxelem = new XmlDocument();
                            _xmlxelem.PreserveWhitespace = true;
                            _xmlxelem.Load(sPathLote);
                            XmlNode xNelem = null;
                            xNelem = _xmlxelem.DocumentElement;
                            sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                        }
                        #endregion
                    }
                    break;
                    }
                }
                else if (Acesso.TP_EMIS == 3)
                {
                    #region SCAN
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.NfeRecepcao2();
                        cabec.cUF            = Acesso.cUF.ToString();
                        cabec.versaoDados    = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF            = Acesso.cUF.ToString();
                        cabec.versaoDados    = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    #endregion
                }
                else if (Acesso.TP_EMIS == 6)
                {
                    #region SCAN
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF            = Acesso.cUF.ToString();
                        cabec.versaoDados    = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.nfeCabecMsg  cabec = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.NfeRecepcao2 ws2   = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF            = Acesso.cUF.ToString();
                        cabec.versaoDados    = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet   = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    #endregion
                }

                if (sRet != null)
                {
                    int lugar = sRet.IndexOf("<nRec>");
                    pRec = sRet.Substring(lugar + 6, 15);
                    if (pRec.ToUpper().Contains("VERSAO"))
                    {
                        throw new Exception("Ocorreu uma exceção com o webservice de Recepção. Favor verificar se os serviços estão estáveis.");
                    }

                    foreach (belPesquisaNotas nota in lPesquisa)
                    {
                        gravaRecibo(pRec, nota.sCD_NFSEQ);
                        nota.sRECIBO_NF = pRec;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public void TransmitirLote(string sPathLote, List<belPesquisaNotas> lPesquisa)
        {
            string sRet = string.Empty;

            string sXmlLote = string.Empty;
            StreamReader reader = new StreamReader(sPathLote);
            sXmlLote = reader.ReadToEnd();


            try
            {
                if (Acesso.TP_EMIS == 1)
                {
                    switch (Acesso.xUFtoWS)
                    {
                        case "SP":
                            {
                                #region Regiao_SP
                                if (Acesso.TP_AMB == 2)
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_SP.NfeRecepcao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(sXmlLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SP.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(sXmlLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                #endregion
                            }
                            break;
                        case "RS":
                            {
                                #region Regiao_RS
                                if (Acesso.TP_AMB == 2)
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_RS.NfeRecepcao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_RS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                #endregion
                            }
                            break;
                        case "MS":
                            {
                                #region Regiao_MS
                                if (Acesso.TP_AMB == 2)
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NFeRecepcao_MS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(sXmlLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                else
                                {
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_MS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.LoadXml(sXmlLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                #endregion
                            }
                            break;
                        case "SVRS":
                            {
                                #region Regiao_RJ
                                if (Acesso.TP_AMB == 2)
                                {
                                    HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.V2_Homologacao_Recepcao_SVRS.NfeRecepcao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                else
                                {

                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NFeRecepcao_SVRS.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                #endregion
                            }
                            break;
                        case "MG":
                            {
                                #region Regiao_MG
                                if (Acesso.TP_AMB == 2)
                                {
                                    HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Homologacao_NfeRecepcao_MG.NfeRecepcao2();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                else
                                {

                                    HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.nfeCabecMsg();
                                    HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_Producao_NfeRecepcao_MG.NfeRecepcao2();
                                    belUF objbelUf = new belUF();
                                    cabec.cUF = Acesso.cUF.ToString();
                                    cabec.versaoDados = Acesso.versaoNFe;
                                    ws2.nfeCabecMsgValue = cabec;
                                    ws2.ClientCertificates.Add(Acesso.cert_NFe);
                                    XmlDocument _xmlxelem = new XmlDocument();
                                    _xmlxelem.PreserveWhitespace = true;
                                    _xmlxelem.Load(sPathLote);
                                    XmlNode xNelem = null;
                                    xNelem = _xmlxelem.DocumentElement;
                                    sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                                }
                                #endregion
                            }
                            break;
                    }
                }
                else if (Acesso.TP_EMIS == 3)
                {
                    #region SCAN
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Homologacao_NFeRecepcao.NfeRecepcao2();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_SCAN_Producao_NFeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    #endregion
                }
                else if (Acesso.TP_EMIS == 6)
                {
                    #region SCAN
                    if (Acesso.TP_AMB == 2)
                    {
                        HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_SVC_Homologacao_NfeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    else
                    {
                        HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.nfeCabecMsg cabec = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.nfeCabecMsg();
                        HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.NfeRecepcao2 ws2 = new HLP.GeraXml.WebService.v2_SVC_Producao_NfeRecepcao.NfeRecepcao2();
                        belUF objbelUf = new belUF();
                        cabec.cUF = Acesso.cUF.ToString();
                        cabec.versaoDados = Acesso.versaoNFe;
                        ws2.nfeCabecMsgValue = cabec;
                        ws2.ClientCertificates.Add(Acesso.cert_NFe);
                        XmlDocument _xmlxelem = new XmlDocument();
                        _xmlxelem.PreserveWhitespace = true;
                        _xmlxelem.Load(sPathLote);
                        XmlNode xNelem = null;
                        xNelem = _xmlxelem.DocumentElement;
                        sRet = ws2.nfeRecepcaoLote2(xNelem).OuterXml;
                    }
                    #endregion
                }

                if (sRet != null)
                {
                    int lugar = sRet.IndexOf("<nRec>");
                    pRec = sRet.Substring(lugar + 6, 15);
                    if (pRec.ToUpper().Contains("VERSAO"))
                    {
                        throw new Exception("Ocorreu uma exceção com o webservice de Recepção. Favor verificar se os serviços estão estáveis.");
                    }

                    foreach (belPesquisaNotas nota in lPesquisa)
                    {
                        gravaRecibo(pRec, nota.sCD_NFSEQ);
                        nota.sRECIBO_NF = pRec;
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }