public static string ErroPreDefinido(ErroPadrao Erro, string ComplementoMensagem) { string Mensagem = string.Empty; switch (Erro) { case ErroPadrao.ErroNaoDetectado: goto default; case ErroPadrao.FalhaInternet: Mensagem = "Sem conexão com a internet."; break; case ErroPadrao.FalhaEnvioXmlNFeWS: Mensagem = "Não foi possível recuperar o número do recibo retornado pelo sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. " + "Não tendo o número do recibo, a única forma de finalizar a nota fiscal é através da consulta situação da NF-e (-ped-sit.xml)."; break; case ErroPadrao.FalhaEnvioXmlWS: Mensagem = "Não foi possível obter o retorno do sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. "; break; //danasa 21/10/2010 case ErroPadrao.FalhaEnvioXmlWSDPEC: Mensagem = "Não foi possível processar o DPEC, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. " + "A única forma de finalizar é através da consulta situação do DPEC (-consDPEC.xml)."; break; case ErroPadrao.CertificadoVencido: Mensagem = "Validade do certificado digital está vencida."; break; default: Mensagem = "Não foi possível identificar o erro."; break; } Mensagem = ((int)Erro).ToString("0000000000") + " - " + Mensagem; if (ComplementoMensagem != string.Empty) { Mensagem = Mensagem + " " + ComplementoMensagem; } return(Mensagem); }
public static string ErroPreDefinido(ErroPadrao Erro, string ComplementoMensagem) { string Mensagem = string.Empty; switch (Erro) { case ErroPadrao.ErroNaoDetectado: goto default; case ErroPadrao.FalhaInternet: Mensagem = "Sem conexão com a internet."; break; case ErroPadrao.FalhaEnvioXmlNFeWS: Mensagem = "Não foi possível recuperar o número do recibo retornado pelo sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. " + "Não tendo o número do recibo, a única forma de finalizar a nota fiscal é através da consulta situação da NF-e (-ped-sit.xml)."; break; case ErroPadrao.FalhaEnvioXmlWS: Mensagem = "Não foi possível obter o retorno do sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. "; break; case ErroPadrao.CertificadoVencido: Mensagem = "Validade do certificado digital está vencida."; break; case ErroPadrao.CertificadoNaoEncontrado: Mensagem = "Certificado digital não localizado! Ou não foi informado nas configurações do UniNfe ou o mesmo está com falha."; break; default: Mensagem = "Não foi possível identificar o erro."; break; } if (ComplementoMensagem != string.Empty) { Mensagem = Mensagem + " " + ComplementoMensagem; } return(Mensagem); }
public static string ErroPreDefinido(ErroPadrao Erro, string ComplementoMensagem) { string Mensagem = string.Empty; switch (Erro) { case ErroPadrao.ErroNaoDetectado: goto default; case ErroPadrao.FalhaInternet: Mensagem = "Sem conexão com a internet."; break; case ErroPadrao.FalhaEnvioXmlNFeWS: Mensagem = "Não foi possível recuperar o número do recibo retornado pelo sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. "+ "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. "+ "Não tendo o número do recibo, a única forma de finalizar a nota fiscal é através da consulta situação da NF-e (-ped-sit.xml)."; break; case ErroPadrao.FalhaEnvioXmlWS: Mensagem = "Não foi possível obter o retorno do sefaz, pois ocorreu uma falha no exato momento que o XML foi enviado. " + "Esta falha pode ter sido ocasionada por falha na internet ou erro no servidor do SEFAZ. "; break; case ErroPadrao.CertificadoVencido: Mensagem = "Validade do certificado digital está vencida."; break; default: Mensagem = "Não foi possível identificar o erro."; break; } if (ComplementoMensagem != string.Empty) { Mensagem = Mensagem + " " + ComplementoMensagem; } return Mensagem; }
/// <summary> /// Construtor que já define uma mensagem pré-definida de exceção /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 16/03/2010 /// </remarks> public ExceptionEnvioXML(ErroPadrao Erro) : base(MsgErro.ErroPreDefinido(Erro)) { this.ErrorCode = Erro; }
/// <summary> /// Construtor que já define uma mensagem pré-definida de exceção /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>24/11/2009</date> public ExceptionSemInternet(ErroPadrao Erro) : base(MsgErro.ErroPreDefinido(Erro)) { this.ErrorCode = Erro; }
public static string ErroPreDefinido(ErroPadrao Erro) { return MsgErro.ErroPreDefinido(Erro, string.Empty); }
/// <summary> /// Construtor que ´já define uma mensagem pré-definida de exceção com possibilidade de complemento da mensagem /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <param name="ComplementoMensagem">Complemento da mensagem de exceção</param> public ExceptionCertificadoDigital(ErroPadrao Erro, string ComplementoMensagem) : base(MsgErro.ErroPreDefinido(Erro, ComplementoMensagem)) { this.ErrorCode = Erro; }
/// <summary> /// Construtor que ´já define uma mensagem pré-definida de exceção com possibilidade de complemento da mensagem /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <param name="ComplementoMensagem">Complemento da mensagem de exceção</param> public ExceptionInvocarObjeto(ErroPadrao Erro, string ComplementoMensagem) : base(MsgErro.ErroPreDefinido(Erro, ComplementoMensagem)) { this.ErrorCode = Erro; }
/// <summary> /// Construtor que já define uma mensagem pré-definida de exceção /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>24/11/2009</date> public ExceptionCertificadoDigital(ErroPadrao Erro) : base(MsgErro.ErroPreDefinido(Erro)) { this.ErrorCode = Erro; }
public static string ErroPreDefinido(ErroPadrao Erro) { return(MsgErro.ErroPreDefinido(Erro, string.Empty)); }
/// <summary> /// Gravar o erro ocorrido para o ERP /// </summary> /// <param name="arquivo">Nome do arquivo que seria processado</param> /// <param name="extRet">Extensão do arquivo de erro a ser gravado</param> /// <param name="servico">Serviço que está sendo executado</param> /// <param name="ex">Exception gerada</param> protected void GravaErroERP(string arquivo, Servicos servico, Exception ex, ErroPadrao erroPadrao) { string extRetERR = string.Empty; string extRet = string.Empty; switch (servico) { #region NFe / CTe / MDFe case Servicos.CTeInutilizarNumeros: case Servicos.NFeInutilizarNumeros: extRet = Propriedade.ExtEnvio.PedInu_XML; extRetERR = Propriedade.ExtRetorno.Inu_ERR; break; case Servicos.CTePedidoConsultaSituacao: case Servicos.NFePedidoConsultaSituacao: case Servicos.MDFePedidoConsultaSituacao: extRet = Propriedade.ExtEnvio.PedSit_XML; extRetERR = Propriedade.ExtRetorno.Sit_ERR; break; case Servicos.CTeConsultaStatusServico: case Servicos.NFeConsultaStatusServico: case Servicos.MDFeConsultaStatusServico: extRet = Propriedade.ExtEnvio.PedSta_XML; extRetERR = Propriedade.ExtRetorno.Sta_ERR; break; case Servicos.CTePedidoSituacaoLote: case Servicos.MDFePedidoSituacaoLote: case Servicos.NFePedidoSituacaoLote: extRet = Propriedade.ExtEnvio.PedRec_XML; extRetERR = Propriedade.ExtRetorno.ProRec_ERR; break; case Servicos.ConsultaCadastroContribuinte: extRet = Propriedade.ExtEnvio.ConsCad_XML; extRetERR = Propriedade.ExtRetorno.ConsCad_ERR; break; case Servicos.CTeMontarLoteUm: extRet = Propriedade.ExtEnvio.Cte; extRetERR = Propriedade.ExtRetorno.Cte_ERR; break; case Servicos.NFeMontarLoteUma: extRet = Propriedade.ExtEnvio.Nfe; extRetERR = Propriedade.ExtRetorno.Nfe_ERR; break; case Servicos.MDFeMontarLoteUm: extRet = Propriedade.ExtEnvio.MDFe; extRetERR = Propriedade.ExtRetorno.MDFe_ERR; break; case Servicos.CTeMontarLoteVarios: case Servicos.NFeMontarLoteVarias: case Servicos.MDFeMontarLoteVarios: extRet = Propriedade.ExtEnvio.MontarLote; extRetERR = Propriedade.ExtRetorno.MontarLote_ERR; break; case Servicos.CTeEnviarLote: case Servicos.NFeEnviarLote: case Servicos.NFeEnviarLote2: case Servicos.MDFeEnviarLote: extRet = Propriedade.ExtEnvio.EnvLot; extRetERR = Propriedade.ExtRetorno.Rec_ERR; break; case Servicos.CTeAssinarValidarEnvioEmLote: extRet = Propriedade.ExtEnvio.Cte; extRetERR = Propriedade.ExtRetorno.Cte_ERR; break; case Servicos.MDFeAssinarValidarEnvioEmLote: extRet = Propriedade.ExtEnvio.MDFe; extRetERR = Propriedade.ExtRetorno.MDFe_ERR; break; case Servicos.NFeAssinarValidarEnvioEmLote: extRet = Propriedade.ExtEnvio.Nfe; extRetERR = Propriedade.ExtRetorno.Nfe_ERR; break; case Servicos.EventoRecepcao: case Servicos.CTeRecepcaoEvento: case Servicos.MDFeRecepcaoEvento: case Servicos.EventoEPEC: extRet = Propriedade.ExtEnvio.PedEve; extRetERR = Propriedade.ExtRetorno.Eve_ERR; break; case Servicos.EventoCCe: extRet = Propriedade.ExtEnvio.EnvCCe_XML; extRetERR = Propriedade.ExtRetorno.retEnvCCe_ERR; break; case Servicos.EventoManifestacaoDest: extRet = Propriedade.ExtEnvio.EnvManifestacao_XML; extRetERR = Propriedade.ExtRetorno.retManifestacao_ERR; break; case Servicos.EventoCancelamento: extRet = Propriedade.ExtEnvio.EnvCancelamento_XML; extRetERR = Propriedade.ExtRetorno.retCancelamento_ERR; break; case Servicos.NFeDownload: extRet = Propriedade.ExtEnvio.EnvDownload_XML; extRetERR = Propriedade.ExtRetorno.retDownload_ERR; break; case Servicos.NFeConsultaNFDest: extRet = Propriedade.ExtEnvio.ConsNFeDest_XML; extRetERR = Propriedade.ExtRetorno.retConsNFeDest_ERR; break; #endregion #region NFSe case Servicos.NFSeRecepcionarLoteRps: extRet = Propriedade.ExtEnvio.EnvLoteRps; extRetERR = Propriedade.ExtRetorno.RetLoteRps_ERR; break; case Servicos.NFSeConsultarSituacaoLoteRps: extRet = Propriedade.ExtEnvio.PedSitLoteRps; extRetERR = Propriedade.ExtRetorno.SitLoteRps_ERR; break; case Servicos.NFSeConsultarPorRps: extRet = Propriedade.ExtEnvio.PedSitNfseRps; extRetERR = Propriedade.ExtRetorno.SitNfseRps_ERR; break; case Servicos.NFSeConsultar: extRet = Propriedade.ExtEnvio.PedSitNfse; extRetERR = Propriedade.ExtRetorno.SitNfse_ERR; break; case Servicos.NFSeConsultarLoteRps: extRet = Propriedade.ExtEnvio.PedLoteRps; extRetERR = Propriedade.ExtRetorno.LoteRps_ERR; break; case Servicos.NFSeCancelar: extRet = Propriedade.ExtEnvio.PedCanNfse; extRetERR = Propriedade.ExtRetorno.CanNfse_ERR; break; #endregion #region Diversos case Servicos.UniNFeAlterarConfiguracoes: case Servicos.AssinarValidar: case Servicos.UniNFeConsultaInformacoes: case Servicos.NFeConverterTXTparaXML: case Servicos.EmProcessamento: case Servicos.NFeGerarChave: case Servicos.UniNFeLimpezaTemporario: //Não tem definição pois não gera arquivo .ERR break; #endregion default: if (arquivo.EndsWith(Propriedade.ExtEnvio.PedSit_XML)) { extRet = Propriedade.ExtEnvio.PedSit_XML; extRetERR = Propriedade.ExtRetorno.Sit_ERR; } else { //Como não foi possível identificar o tipo do servico vou mudar somente a extensão para .err pois isso pode acontecer caso exista erro na estrutura do XML. //Renan - 05/03/2014 extRet = ".xml"; extRetERR = ".err"; } break; } if (!string.IsNullOrEmpty(extRet)) try { //Gravar o arquivo de erro de retorno para o ERP, caso ocorra TFunctions.GravarArqErroServico(arquivo, extRet, extRetERR, ex, erroPadrao, true); } catch { //Se falhou algo na hora de gravar o retorno .ERR (de erro) para o ERP, infelizmente não posso fazer mais nada. //Wandrey 02/06/2011 } }
/// <summary> /// Grava um arquivo texto com um erros ocorridos durante as operações para que o ERP possa tratá-los /// </summary> /// <param name="arquivo">Nome do arquivo que está sendo processado</param> /// <param name="finalArqEnvio">string final do nome do arquivo que é para ser substituida na gravação do arquivo de Erro</param> /// <param name="finalArqErro">string final do nome do arquivo que é para ser utilizado no nome do arquivo de erro</param> /// <param name="exception">Exception gerada</param> /// <param name="errorCode">Código do erro</param> /// <param name="moveArqErro">Move o arquivo informado no parametro "arquivo" para a pasta de XML com ERRO</param> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 02/06/2011 /// </remarks> public static void GravarArqErroServico(string arquivo, string finalArqEnvio, string finalArqErro, Exception exception, ErroPadrao erroPadrao, bool moveArqErro) { int emp = Empresas.FindEmpresaByThread(); //Qualquer erro ocorrido o aplicativo vai mover o XML com falha da pasta de envio //para a pasta de XML´s com erros. Futuramente ele é excluido quando outro igual //for gerado corretamente. if (moveArqErro) MoveArqErro(arquivo); //Grava arquivo de ERRO para o ERP string pastaRetorno = Empresas.Configuracoes[emp].PastaXmlRetorno; FileInfo fi = new FileInfo(arquivo); if (fi.Directory.FullName.ToLower().EndsWith("geral\\temp")) pastaRetorno = Propriedade.PastaGeralRetorno; string arqErro = pastaRetorno + "\\" + Functions.ExtrairNomeArq(arquivo, finalArqEnvio) + finalArqErro; string erroMessage = string.Empty; erroMessage += "Versão|" + NFe.Components.Propriedade.Versao + "\r\n"; erroMessage += "ErrorCode|" + ((int)erroPadrao).ToString("0000000000"); erroMessage += "\r\n"; erroMessage += "Message|" + exception.Message; erroMessage += "\r\n"; erroMessage += "StackTrace|" + exception.StackTrace; erroMessage += "\r\n"; erroMessage += "Source|" + exception.Source; erroMessage += "\r\n"; erroMessage += "Type|" + exception.GetType(); erroMessage += "\r\n"; erroMessage += "TargetSite|" + exception.TargetSite; erroMessage += "\r\n"; erroMessage += "HashCode|" + exception.GetHashCode().ToString(); if (exception.InnerException != null) { erroMessage += "\r\n"; erroMessage += "\r\n"; erroMessage += "InnerException 1"; erroMessage += "\r\n"; erroMessage += "Message|" + exception.InnerException.Message; erroMessage += "\r\n"; erroMessage += "StackTrace|" + exception.InnerException.StackTrace; erroMessage += "\r\n"; erroMessage += "TargetSite|" + exception.InnerException.TargetSite; erroMessage += "\r\n"; erroMessage += "Source|" + exception.InnerException.Source; erroMessage += "\r\n"; erroMessage += "HashCode|" + exception.InnerException.GetHashCode().ToString(); if (exception.InnerException.InnerException != null) { erroMessage += "\r\n"; erroMessage += "\r\n"; erroMessage += "InnerException 2"; erroMessage += "\r\n"; erroMessage += "Message|" + exception.InnerException.InnerException.Message; erroMessage += "\r\n"; erroMessage += "StackTrace|" + exception.InnerException.InnerException.StackTrace; erroMessage += "\r\n"; erroMessage += "TargetSite|" + exception.InnerException.InnerException.TargetSite; erroMessage += "\r\n"; erroMessage += "Source|" + exception.InnerException.InnerException.Source; erroMessage += "\r\n"; erroMessage += "HashCode|" + exception.InnerException.InnerException.GetHashCode().ToString(); if (exception.InnerException.InnerException.InnerException != null) { erroMessage += "\r\n"; erroMessage += "\r\n"; erroMessage += "InnerException 3"; erroMessage += "\r\n"; erroMessage += "Message|" + exception.InnerException.InnerException.InnerException.Message; erroMessage += "\r\n"; erroMessage += "StackTrace|" + exception.InnerException.InnerException.InnerException.StackTrace; erroMessage += "\r\n"; erroMessage += "TargetSite|" + exception.InnerException.InnerException.InnerException.TargetSite; erroMessage += "\r\n"; erroMessage += "Source|" + exception.InnerException.InnerException.InnerException.Source; erroMessage += "\r\n"; erroMessage += "HashCode|" + exception.InnerException.InnerException.InnerException.GetHashCode().ToString(); } } } try { // Gerar log do erro Auxiliar.WriteLog(erroMessage, true); //TODO: (Marcelo) Este tratamento de erro não poderia ser feito diretamente no método? } catch { } File.WriteAllText(arqErro, erroMessage); /// /// grava o arquivo de erro no FTP new GerarXML(emp).XmlParaFTP(emp, arqErro); }
/// <summary> /// Construtor que ´já define uma mensagem pré-definida de exceção com possibilidade de complemento da mensagem /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <param name="ComplementoMensagem">Complemento da mensagem de exceção</param> /// <remarks> /// Autor: Wandrey Mundin Ferreira /// Data: 16/03/2010 /// </remarks> public ExceptionEnvioXML(ErroPadrao Erro, string ComplementoMensagem) : base(MsgErro.ErroPreDefinido(Erro, ComplementoMensagem)) { this.ErrorCode = Erro; }
/// <summary> /// Construtor que ´já define uma mensagem pré-definida de exceção com possibilidade de complemento da mensagem /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <param name="ComplementoMensagem">Complemento da mensagem de exceção</param> public ExceptionSemInternet(ErroPadrao Erro, string ComplementoMensagem) : base(MsgErro.ErroPreDefinido(Erro, ComplementoMensagem)) { this.ErrorCode = Erro; }
/// <summary> /// Construtor que já define uma mensagem pré-definida de exceção /// </summary> /// <param name="CodigoErro">Código da mensagem de erro (Classe MsgErro)</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>24/11/2009</date> public ExceptionInvocarObjeto(ErroPadrao Erro) : base(MsgErro.ErroPreDefinido(Erro)) { this.ErrorCode = Erro; }