Ejemplo n.º 1
0
        public static string DownloadXML(string Chave_acesso,
                                         TRegistro_CfgNfe rCfgNfe)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
            xml.Append("<downloadNFe xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"" + rCfgNfe.Cd_versaocondest.Trim() + "\">");
            xml.Append("<tpAmb>");
            xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2");
            xml.Append("</tpAmb>");
            xml.Append("<xServ>");
            xml.Append("DOWNLOAD NFE");
            xml.Append("</xServ>");
            xml.Append("<CNPJ>");
            xml.Append(rCfgNfe.Cnpj_empresa.SoNumero());
            xml.Append("</CNPJ>");
            xml.Append("<chNFe>");
            xml.Append(Chave_acesso.Trim());
            xml.Append("</chNFe>");
            xml.Append("</downloadNFe>");

            //Validar Schema XML
            Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                    rCfgNfe.Path_nfe_schemas.SeparadorDiretorio() + "downloadNFe_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd",
                                                    "NFE");
            if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
            {
                throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno.Trim());
            }
            //Enviar arquivo para Receita
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml.ToString());
            XmlNode retorno = ConectarWebService2(doc.DocumentElement, rCfgNfe);

            if (retorno != null)
            {
                if (retorno["cStat"].InnerText.Trim().Equals("139"))
                {
                    if (retorno["retNFe"]["cStat"].InnerText.Trim().Equals("140"))
                    {
                        return(Compact_Data.Descompactar(Convert.FromBase64String(retorno["retNFe"]["procNFeGrupoZip"]["NFeZip"].InnerText)));
                    }
                    else
                    {
                        throw new Exception(retorno["retNFe"]["cStat"].InnerText.Trim() + "-" + retorno["retNFe"]["xMotivo"].InnerText.Trim());
                    }
                }
                else
                {
                    throw new Exception(retorno["cStat"].InnerText.Trim() + "-" + retorno["xMotivo"].InnerText.Trim());
                }
            }
            else
            {
                throw new Exception("Erro executar WebService.");
            }
        }
Ejemplo n.º 2
0
        public bool Gera_Relatorio(string Documento,
                                   bool St_imprimir,
                                   bool St_visualizar,
                                   bool St_enviaremail,
                                   bool St_exportPdf,
                                   string Path_exportPdf,
                                   List <string> Destinatarios,
                                   List <string> Anexos,
                                   string Titulo,
                                   string Mensagem,
                                   bool St_enviarcomoanexo)
        {
            bool retorno = false;

            try
            {
                //VERIFICA SE JÁ TEM O ITEM LANÇADO
                if (string.IsNullOrEmpty(Cad_Report.DS_Report))
                {
                    Cad_Report.Modulo    = Modulo;
                    Cad_Report.NM_Classe = NM_Classe;
                    Cad_Report.DS_Report = NM_Classe;
                    Cad_Report.Ident     = Ident;
                }

                //Se nao existir relatorio no banco, baixar da net
                if (!BuscaRelatorio())
                {
                    if (AtualizarRDC.VerificarVersaoRDC(Cad_Report, false))
                    {
                        BuscaRelatorio();
                    }
                }

                XmlDocument docXMLRelatorio = new XmlDocument();
                if (Cad_Report.Code_Report != null)
                {
                    docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty)));
                }

                //CRIA O ARQUIVO PARA O RELATORIO
                InlineReportSlot ArquivoRelatorio = new InlineReportSlot();
                //ADICIONAR O NOME E OS PARAMETROS
                ArquivoRelatorio.GetReportParameter += new GetReportParameterEventHandler(Parametros);
                Nome_Relatorio = Nome_Relatorio.Replace(' ', '_');
                ArquivoRelatorio.ReportName = Nome_Relatorio;
                reportManager.DataSources.Add("DTS", DTS_Relatorio);

                if (Cad_Report.Code_Report != null)
                {
                    //ADICIONA O STREAM DO RELATORIO (XML)
                    ArquivoRelatorio.DocumentStream = docXMLRelatorio.InnerXml;
                    reportManager.Reports.Add(ArquivoRelatorio);

                    if (!Altera_Relatorio)
                    {
                        reportManager.Reports[0].LoadReport();
                        reportManager.Reports[0].Prepare();
                        reportManager.Reports[0].RenderDocument();

                        using (PerpetuumSoft.Reporting.View.PreviewForm view = new PerpetuumSoft.Reporting.View.PreviewForm(reportManager.Reports[0]))
                        {
                            if (St_imprimir)
                            {
                                object obj = new CamadaDados.Diversos.TCD_CadTerminal().BuscarEscalar(
                                    new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.cd_terminal",
                                        vOperador = "=",
                                        vVL_Busca = "'" + Utils.Parametros.pubTerminal.Trim() + "'"
                                    }
                                }, "a.impressorapadrao");
                                string print = obj == null ? string.Empty : obj.ToString();
                                if (!string.IsNullOrEmpty(print))
                                {
                                    bool existe = false;
                                    for (int i = 0; i < System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count; i++)
                                    {
                                        string teste = System.Drawing.Printing.PrinterSettings.InstalledPrinters[i];
                                        if (System.Drawing.Printing.PrinterSettings.InstalledPrinters[i].Trim().ToUpper().Equals(print.Trim().ToUpper()))
                                        {
                                            existe = true;
                                            break;
                                        }
                                    }
                                    if (!existe)
                                    {
                                        print = string.Empty;
                                    }
                                }

                                if (!string.IsNullOrEmpty(print))
                                {
                                    using (ReportPrintDocument rpd = new ReportPrintDocument())
                                    {
                                        decimal copias = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVlNumerico("QTD_VIA_DANFE", null);
                                        rpd.PrinterSettings.Copies      = copias == decimal.Zero ? (short)1 : (short)copias;
                                        rpd.PrinterSettings.PrinterName = print;
                                        rpd.Source = ArquivoRelatorio;
                                        rpd.Print();
                                    }
                                }
                                else
                                {
                                    using (System.Windows.Forms.PrintDialog pd = new PrintDialog())
                                    {
                                        pd.UseEXDialog = true;
                                        if (pd.ShowDialog() == DialogResult.OK)
                                        {
                                            using (ReportPrintDocument rpd = new ReportPrintDocument())
                                            {
                                                rpd.PrinterSettings = pd.PrinterSettings;
                                                rpd.Source          = ArquivoRelatorio;
                                                rpd.Print();
                                            }
                                        }
                                    }
                                }
                            }
                            else if (St_visualizar)
                            {
                                view.WindowState = FormWindowState.Maximized;
                                view.ShowDialog();
                                retorno = true;
                            }
                            else if (St_exportPdf && !string.IsNullOrEmpty(Path_exportPdf))
                            {
                                using (PdfExportFilter pdf = new PdfExportFilter())
                                {
                                    pdf.Export(this.reportManager.Reports[0].Document, Path_exportPdf, false);
                                    retorno = true;
                                }
                            }
                        }
                        if (St_enviaremail)
                        {
                            using (PdfExportFilter pdf = new PdfExportFilter())
                            {
                                string path_anexo = TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null);
                                if (string.IsNullOrEmpty(path_anexo))
                                {
                                    throw new Exception("Não existe path anexo cadastrado nas configurações gerais do sistema!");
                                }
                                if (!System.IO.Directory.Exists(path_anexo))
                                {
                                    System.IO.Directory.CreateDirectory(path_anexo);
                                }
                                if (!path_anexo.EndsWith("\\"))
                                {
                                    path_anexo += System.IO.Path.DirectorySeparatorChar.ToString();
                                }
                                path_anexo += "NFCE" + DateTime.Now.Date.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".pdf";
                                pdf.Export(this.reportManager.Reports[0].Document, path_anexo, false);
                                if (Anexos == null)
                                {
                                    Anexos = new List <string>();
                                }
                                Anexos.Add(path_anexo);
                                new Email(Destinatarios,
                                          Titulo,
                                          Mensagem,
                                          Anexos).EnviarEmail();
                                retorno = true;
                            }
                        }
                    }
                    else
                    {
                        Editar();
                    }
                }
                else
                {
                    Editar();
                }
            }
            catch (Exception erro)
            { MessageBox.Show(erro.Message, "Mensagem"); }
            return(retorno);
        }
Ejemplo n.º 3
0
        public bool ImprimiGraficoReduzida(string Print,
                                           bool St_imprimir,
                                           bool St_visualizar,
                                           List <string> Destinatarios,
                                           string Titulo,
                                           string Mensagem,
                                           short copia)
        {
            bool retorno = false;

            try
            {
                //VERIFICA SE JÁ TEM O ITEM LANÇADO
                if (string.IsNullOrEmpty(Cad_Report.DS_Report))
                {
                    Cad_Report.Modulo    = Modulo;
                    Cad_Report.NM_Classe = NM_Classe;
                    Cad_Report.DS_Report = NM_Classe;
                    Cad_Report.Ident     = Ident;
                }

                //Se nao existir relatorio no banco, baixar da net
                if (!BuscaRelatorio())
                {
                    if (AtualizarRDC.VerificarVersaoRDC(Cad_Report, false))
                    {
                        BuscaRelatorio();
                    }
                }

                XmlDocument docXMLRelatorio = new XmlDocument();
                if (Cad_Report.Code_Report != null)
                {
                    docXMLRelatorio.LoadXml(System.Text.ASCIIEncoding.UTF8.GetString(Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty)));
                }

                //CRIA O ARQUIVO PARA O RELATORIO
                InlineReportSlot ArquivoRelatorio = new InlineReportSlot();
                //ADICIONAR O NOME E OS PARAMETROS
                ArquivoRelatorio.GetReportParameter += new GetReportParameterEventHandler(Parametros);
                Nome_Relatorio = Nome_Relatorio.Replace(' ', '_');
                ArquivoRelatorio.ReportName = Nome_Relatorio;
                reportManager.DataSources.Add("DTS", DTS_Relatorio);

                if (Cad_Report.Code_Report != null)
                {
                    //ADICIONA O STREAM DO RELATORIO (XML)
                    ArquivoRelatorio.DocumentStream = docXMLRelatorio.InnerXml;
                    reportManager.Reports.Add(ArquivoRelatorio);

                    if (!Altera_Relatorio)
                    {
                        reportManager.Reports[0].LoadReport();
                        reportManager.Reports[0].Prepare();
                        reportManager.Reports[0].RenderDocument();

                        using (PerpetuumSoft.Reporting.View.PreviewForm view = new PerpetuumSoft.Reporting.View.PreviewForm(reportManager.Reports[0]))
                        {
                            if (St_imprimir)
                            {
                                using (ReportPrintDocument rpd = new ReportPrintDocument())
                                {
                                    rpd.PrinterSettings.PrinterName = Print;
                                    rpd.Source = ArquivoRelatorio;
                                    for (int i = 0; i < copia; i++)
                                    {
                                        rpd.Print();
                                    }
                                }
                            }
                            else if (St_visualizar)
                            {
                                view.WindowState = FormWindowState.Maximized;
                                view.ShowDialog();
                                retorno = true;
                            }
                        }
                        if (Destinatarios == null ? false : Destinatarios.Count > 0)
                        {
                            using (PdfExportFilter pdf = new PdfExportFilter())
                            {
                                string path_anexo = TCN_CadParamGer.BuscaVlString("PATH_ANEXO_EMAIL", null);
                                if (string.IsNullOrEmpty(path_anexo))
                                {
                                    throw new Exception("Não existe path anexo cadastrado nas configurações gerais do sistema!");
                                }
                                if (!System.IO.Directory.Exists(path_anexo))
                                {
                                    System.IO.Directory.CreateDirectory(path_anexo);
                                }
                                if (!path_anexo.EndsWith("\\"))
                                {
                                    path_anexo += System.IO.Path.DirectorySeparatorChar.ToString();
                                }
                                path_anexo += "NFCE" + DateTime.Now.Date.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + ".pdf";
                                pdf.Export(this.reportManager.Reports[0].Document, path_anexo, false);
                                List <string> Anexos = new List <string>();
                                Anexos.Add(path_anexo);
                                new Email(Destinatarios,
                                          Titulo,
                                          Mensagem,
                                          Anexos).EnviarEmail();
                                retorno = true;
                            }
                        }
                    }
                    else
                    {
                        Editar();
                    }
                }
                else
                {
                    Editar();
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message, "Mensagem");
            }
            return(retorno);
        }
Ejemplo n.º 4
0
        public void Editar()
        {
            try
            {
                //CHAMA A CLASSE Q DEFINE O MODELO DO RELATORIO
                string modeloRelatorio = DefineDesigner();

                //GRAVA O REPORT
                if ((modeloRelatorio != "") && (!Homologacao))
                {
                    bool gravarRelatorio = false;
                    bool verificar       = false;

                    if (Cad_Report.Code_Report == null)
                    {
                        verificar = true;
                    }
                    else
                    if (System.Text.ASCIIEncoding.UTF8.GetString(Utils.Compact_Data.Descompactar(Cad_Report.Code_Report, string.Empty)) != modeloRelatorio)
                    {
                        verificar = true;
                    }

                    //VERIFICA SE FOR MASTER
                    if (verificar)
                    {
                        //GRAVA O REPORT JÁ
                        if (CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR ALTERAR RELATÓRIO", null))
                        {
                            gravarRelatorio = true;
                        }
                        else
                        {
                            if (MessageBox.Show("Deseja realmente salvar a alteração neste relatório?\nAtenção, ao salvar a alteração PERDERÁ o suporte de versão deste relatório!", "Mensagem",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                                System.Windows.Forms.DialogResult.Yes)
                            {
                                Cad_Report.ID_RDC = "";
                                gravarRelatorio   = true;
                            }
                            else
                            {
                                gravarRelatorio = false;
                            }
                        }

                        //GRAVA O REPORT
                        if (gravarRelatorio)
                        {
                            if (Cad_Report.DS_Report != "")
                            {
                                if (Cad_Report.Versao == 0)
                                {
                                    Cad_Report.Versao = 1;
                                }

                                Cad_Report.Code_Report = Utils.Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                                string ret_report = TCN_Cad_Report.GravarReport(Cad_Report, null);
                                Cad_Report.ID_Report = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_report, "@P_ID_REPORT"));
                            }
                        }

                        if ((Utils.Parametros.pubLogin == "MASTER") || (Utils.Parametros.pubLogin == "DESENV"))
                        {
                            if (MessageBox.Show("Deseja publicar esta versão?\nAtenção, ao publicar a versão já será homologada automaticamente!", "Mensagem",
                                                MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                            {
                                Cad_Report.Versao++;
                                Cad_Report.lConsulta = TCN_Cad_Consulta.Busca(decimal.Zero,
                                                                              string.Empty,
                                                                              string.Empty,
                                                                              Cad_Report.ID_Report);
                                AtualizarRDC.GravarRDC(Cad_Report, null, "P");
                            }
                        }
                    }
                }
                else
                {
                    Cad_Report.Code_Report = Compact_Data.Compactar(System.Text.ASCIIEncoding.UTF8.GetBytes(modeloRelatorio));
                }
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message, "Mensagem");
            }
        }
Ejemplo n.º 5
0
        public static TList_ConsultaDest DistribuicaoDFe(TRegistro_CfgNfe rCfgNfe,
                                                         TRegistro_CadEmpresa rEmp,
                                                         string NSU,
                                                         string UltimoNSU,
                                                         string ChaveAcesso)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
            xml.Append("<distDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\">\n");
            //Ambiente
            xml.Append("<tpAmb>");
            xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2");
            xml.Append("</tpAmb>\n");
            //UF Autor
            xml.Append("<cUFAutor>");
            xml.Append(rEmp.rEndereco.Cd_uf);
            xml.Append("</cUFAutor>\n");
            //CNPJ Destinatario
            xml.Append("<CNPJ>");
            xml.Append(rCfgNfe.Cnpj_empresa.SoNumero());
            xml.Append("</CNPJ>\n");
            if (!string.IsNullOrEmpty(NSU))
            {
                xml.Append("<consNSU>\n");
                xml.Append("<NSU>" + NSU.Trim() + "</NSU>\n");
                xml.Append("</consNSU>\n");
            }
            else if (!string.IsNullOrEmpty(ChaveAcesso) && ChaveAcesso.Trim().Length.Equals(44))
            {
                xml.Append("<consChNFe>\n");
                xml.Append("<chNFe>" + ChaveAcesso.Trim() + "</chNFe>\n");
                xml.Append("</consChNFe>\n");
            }
            else
            {
                xml.Append("<distNSU>\n");
                xml.Append("<ultNSU>" + (string.IsNullOrEmpty(UltimoNSU) ? "000000000000000": UltimoNSU.FormatStringEsquerda(15, '0')) + "</ultNSU>\n");
                xml.Append("</distNSU>\n");
            }
            xml.Append("</distDFeInt>\n");

            //Validar schema xml
            Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                    rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "distDFeInt_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd",
                                                    "MDFE");
            if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
            {
                throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno);
            }

            //Conectar Web Service
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml.ToString());
            XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe);

            //Tratar retorno
            if (retorno != null)
            {
                //para abrir o arquivo para o usuario
                if (retorno["cStat"].InnerText.Trim().Equals("138"))
                {
                    TList_ConsultaDest lRet = new TList_ConsultaDest();
                    foreach (XmlNode n in retorno["loteDistDFeInt"].ChildNodes)
                    {
                        TRegistro_ConsultaDest registro = new TRegistro_ConsultaDest();
                        registro.Cd_empresa    = rEmp.Cd_empresa;
                        registro.Loginconsulta = Parametros.pubLogin;
                        registro.Dt_consulta   = DateTime.Now;
                        registro.Nsu           = decimal.Parse(n.Attributes.GetNamedItem("NSU").InnerText);
                        if (!string.IsNullOrWhiteSpace(ChaveAcesso))
                        {
                            registro.St_nfe = "1";
                        }
                        XmlDocument d = new XmlDocument();
                        d.LoadXml(Compact_Data.Descompactar(Convert.FromBase64String(n.InnerText)));
                        if (d.GetElementsByTagName("chNFe").Count > 0)
                        {
                            registro.chave_acesso = d.GetElementsByTagName("chNFe")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("CNPJ").Count > 0)
                        {
                            registro.Cnpj_emitente = d.GetElementsByTagName("CNPJ")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("xNome").Count > 0)
                        {
                            registro.Nm_emitente = d.GetElementsByTagName("xNome")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("IE").Count > 0)
                        {
                            registro.Insc_Emitente = d.GetElementsByTagName("IE")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("dhEmi").Count > 0)
                        {
                            registro.Dt_eminfe = DateTime.Parse(d.GetElementsByTagName("dhEmi")[0].InnerText);
                        }
                        if (d.GetElementsByTagName("tpNF").Count > 0)
                        {
                            registro.Tp_movimento = d.GetElementsByTagName("tpNF")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("vNF").Count > 0)
                        {
                            registro.Vl_nfe = decimal.Parse(d.GetElementsByTagName("vNF")[0].InnerText, new System.Globalization.CultureInfo("en-US"));
                        }
                        if (d.GetElementsByTagName("digVal").Count > 0)
                        {
                            registro.digVal = d.GetElementsByTagName("digVal")[0].InnerText;
                        }
                        if (d.GetElementsByTagName("dhRecbto").Count > 0)
                        {
                            registro.Dh_recbto = DateTime.Parse(d.GetElementsByTagName("dhRecbto")[0].InnerText);
                        }
                        if (d.GetElementsByTagName("nProt").Count > 0)
                        {
                            registro.nProt = decimal.Parse(d.GetElementsByTagName("nProt")[0].InnerText);
                        }
                        if (d.GetElementsByTagName("cSitNFe").Count > 0)
                        {
                            registro.St_nfe = d.GetElementsByTagName("cSitNFe")[0].InnerText;
                        }
                        lRet.Add(registro);
                    }
                    return(lRet);
                }
                else
                {
                    throw new Exception(retorno["xMotivo"].InnerText);
                }
            }
            else
            {
                throw new Exception("Erro executar WebService.");
            }
        }
Ejemplo n.º 6
0
        public static string DownloadXML(TRegistro_CfgNfe rCfgNfe,
                                         TRegistro_CadEmpresa rEmp,
                                         string Chave)
        {
            StringBuilder xml = new StringBuilder();

            xml.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
            xml.Append("<distDFeInt xmlns=\"http://www.portalfiscal.inf.br/nfe\" versao=\"1.01\">\n");
            //Ambiente
            xml.Append("<tpAmb>");
            xml.Append(rCfgNfe.Tp_ambiente.Trim().ToUpper().Equals("P") ? "1" : "2");
            xml.Append("</tpAmb>\n");
            //UF Autor
            xml.Append("<cUFAutor>");
            xml.Append(rEmp.rEndereco.Cd_uf);
            xml.Append("</cUFAutor>\n");
            //CNPJ Destinatario
            xml.Append("<CNPJ>");
            xml.Append(rCfgNfe.Cnpj_empresa.SoNumero());
            xml.Append("</CNPJ>\n");
            xml.Append("<consChNFe>\n");
            xml.Append("<chNFe>" + Chave.Trim() + "</chNFe>\n");
            xml.Append("</consChNFe>\n");
            xml.Append("</distDFeInt>\n");

            //Validar schema xml
            Utils.ValidaSchema.ValidaXML2.validaXML(xml.ToString(),
                                                    rCfgNfe.Path_nfe_schemas.Trim().SeparadorDiretorio() + "distDFeInt_v" + rCfgNfe.Cd_versaocondest.Trim() + ".xsd",
                                                    "MDFE");
            if (!string.IsNullOrEmpty(Utils.ValidaSchema.ValidaXML2.Retorno))
            {
                throw new Exception(Utils.ValidaSchema.ValidaXML2.Retorno);
            }

            //Conectar Web Service
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml.ToString());
            XmlNode retorno = ConectarWebService(doc.DocumentElement, rCfgNfe);

            //Tratar retorno
            if (retorno != null)
            {
                //para abrir o arquivo para o usuario
                if (retorno["cStat"].InnerText.Trim().Equals("138"))
                {
                    if (retorno["loteDistDFeInt"].ChildNodes.Count > 0)
                    {
                        return(Compact_Data.Descompactar(Convert.FromBase64String(retorno["loteDistDFeInt"].ChildNodes[0].InnerText)));
                    }
                    else
                    {
                        return(string.Empty);
                    }
                }
                else
                {
                    throw new Exception(retorno["xMotivo"].InnerText);
                }
            }
            else
            {
                throw new Exception("Erro executar WebService.");
            }
        }