/// <summary> /// Move arquivos com a extensão informada e que está com erro para uma pasta de xml´s/arquivos com erro configurados no UniNFe. /// </summary> /// <param name="cArquivo">Nome do arquivo a ser movido para a pasta de XML´s com erro</param> /// <param name="ExtensaoArq">Extensão do arquivo que vai ser movido. Ex: .xml</param> /// <example>this.MoveArqErro(this.vXmlNfeDadosMsg, ".xml")</example> public void MoveArqErro(string Arquivo, string ExtensaoArq) { int emp = Empresas.FindEmpresaByThread(); if (File.Exists(Arquivo)) { FileInfo oArquivo = new FileInfo(Arquivo); if (!string.IsNullOrEmpty(Empresas.Configuracoes[emp].PastaXmlErro) && Directory.Exists(Empresas.Configuracoes[emp].PastaXmlErro)) { string vNomeArquivo = Empresas.Configuracoes[emp].PastaXmlErro + "\\" + Functions.ExtrairNomeArq(Arquivo, ExtensaoArq) + ExtensaoArq; Functions.Move(Arquivo, vNomeArquivo); Auxiliar.WriteLog("O arquivo " + Arquivo + " foi movido para " + vNomeArquivo, true); /* * //Deletar o arquivo da pasta de XML com erro se o mesmo existir lá para evitar erros na hora de mover. Wandrey * if (File.Exists(vNomeArquivo)) * this.DeletarArquivo(vNomeArquivo); * * //Mover o arquivo da nota fiscal para a pasta do XML com erro * oArquivo.MoveTo(vNomeArquivo); */ } else { //Antes estava deletando o arquivo, agora vou retornar uma mensagem de erro //pois não podemos excluir, pode ser coisa importante. Wandrey 25/02/2011 throw new Exception("A pasta de XML´s com erro informada nas configurações não existe, por favor verifique."); //oArquivo.Delete(); } } }
/// <summary> /// grava um arquivo de erro ao ERP /// </summary> /// <param name="Arquivo"></param> /// <param name="Erro"></param> public void GravarArqErroERP(string Arquivo, string Erro) { if (!string.IsNullOrEmpty(Arquivo) && !string.IsNullOrEmpty(Erro)) { try { /// /// grava o erro na pasta de retorno geral do UniNFe caso a pasta de retorno da empresa nao exista /// string fFolder = Propriedade.PastaGeralRetorno; int emp = Empresas.FindEmpresaByThread(); if (emp >= 0) { if (!string.IsNullOrEmpty(Empresas.Configuracoes[emp].PastaXmlRetorno)) { fFolder = Empresas.Configuracoes[emp].PastaXmlRetorno; } } if (Directory.Exists(fFolder)) { //Grava arquivo de ERRO para o ERP string cArqErro = Path.Combine(fFolder, Path.GetFileName(Arquivo)); File.WriteAllText(cArqErro, Erro);//, Encoding.Default); } } catch (Exception ex) { WriteLog(ex.Message, true); } } }
/// <summary> /// Verifica se o XML da nota fiscal já está na pasta de Notas Denegadas /// </summary> /// <param name="Arquivo">Arquivo XML a ser verificado</param> /// <param name="Emissao">Data de emissão da NFe</param> /// <returns>Se está na pasta de XML´s denegados</returns> public bool EstaDenegada(string Arquivo, DateTime Emissao) { int emp = Empresas.FindEmpresaByThread(); string strNomePastaEnviado = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.Denegados.ToString() + "\\" + Empresas.Configuracoes[emp].DiretorioSalvarComo.ToString(Emissao); return(File.Exists(strNomePastaEnviado + "\\" + Functions.ExtrairNomeArq(Arquivo, Propriedade.ExtEnvio.Nfe) + Propriedade.ExtRetorno.Den)); }
/// <summary> /// Verifica se o XML da nota fiscal já está na pasta de Notas Denegadas /// </summary> /// <param name="Arquivo">Arquivo XML a ser verificado</param> /// <param name="Emissao">Data de emissão da NFe</param> /// <returns>Se está na pasta de XML´s denegados</returns> public bool EstaDenegada(string Arquivo, DateTime Emissao, string extNFe, string extArqProtNfe) { int emp = Empresas.FindEmpresaByThread(); string strNomePastaEnviado = Empresas.Configuracoes[emp].PastaXmlEnviado + "\\" + PastaEnviados.Denegados.ToString() + "\\" + Empresas.Configuracoes[emp].DiretorioSalvarComo.ToString(Emissao); return(File.Exists(strNomePastaEnviado + Functions.ExtrairNomeArq(Arquivo, extNFe) + extArqProtNfe)); }
public static void WriteLog(string msg, bool gravarStackTrace) { #if DEBUG System.Diagnostics.Debug.WriteLine(msg); #endif if (ConfiguracaoApp.GravarLogOperacoesRealizadas) { int emp = -1; if (Empresas.Configuracoes.Count != 0) //Tive que comparar aqui se tem empresas, pois quando não tem nenhuma empresa e tento consultar os certificados pela pasta geral, retorna um erro. Wandrey 02/02/2015 { try { emp = Empresas.FindEmpresaByThread(); } catch { } } NFe.Components.Functions.WriteLog(msg, gravarStackTrace, true, emp >= 0 ? Empresas.Configuracoes[emp].CNPJ + "_" + Empresas.Configuracoes[emp].Servico.ToString() : ""); } }
/// <summary> /// grava um arquivo de erro ao ERP /// </summary> /// <param name="Arquivo"></param> /// <param name="Erro"></param> public void GravarArqErroERP(string Arquivo, string Erro) { if (!string.IsNullOrEmpty(Arquivo)) { try { int emp = Empresas.FindEmpresaByThread(); if (!string.IsNullOrEmpty(Empresas.Configuracoes[emp].PastaXmlRetorno)) { //Grava arquivo de ERRO para o ERP string cArqErro = Empresas.Configuracoes[emp].PastaXmlRetorno + "\\" + Path.GetFileName(Arquivo); File.WriteAllText(cArqErro, Erro, Encoding.Default); } } catch (Exception ex) { WriteLog(ex.Message, true); } } }