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."); } }
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); }
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); }
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"); } }
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."); } }
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."); } }