// GerarNotaFiscal public string Gerar() { string msg = "Não encontrou arquivo para importação."; try { // Retornar uma coleção de RPs //List<Rps> lotesRps = Importacao.ObterDadosEnvio(); List <ArquivoRps> lotesRps = Importacao.SetValues(); if (lotesRps.Count > 0) { msg = "Encontrou " + lotesRps.Count.ToString() + " arquivo(s) para importação."; int i = 0; foreach (ArquivoRps dados in lotesRps) { string xmlCabecalho = GerarXMLCabecalho(); // Recepcionando o arquivo XML assinado string xmlDados = GerarXML(dados); xmlDados = AssinarXML(xmlDados, "Rps"); xmlDados = AssinarXML(xmlDados, "EnviarLoteRpsEnvio"); NfseWSServiceSoapClient servico = new NfseWSServiceSoapClient(); string xmlRetorno = servico.RecepcionarLoteRps(xmlCabecalho, xmlDados); //string consultLote = servico.ConsultarLoteRps(xmlCabecalho, xmlDados); // Gerando arquivos REM/RET nos respectivos diretorios Importacao.GerarArquivo(dados.NomeArquivoREM, "REM", xmlDados); Importacao.GerarArquivo(dados.NomeArquivoRET, "RET", xmlRetorno); string pathOrigemImportacao = ParametroDAL.GetValor("OrigemImportacaoPath"); string pathOrigemRemessa = ParametroDAL.GetValor("OrigemRemessaPath"); string pathOrigemRetorno = ParametroDAL.GetValor("OrigemRetornoPath"); string pathDestinoImportacao = ParametroDAL.GetValor("DestinoImportacaoPath"); string pathDestinoRemessa = ParametroDAL.GetValor("DestinoRemessaPath"); string pathDestinoRetorno = ParametroDAL.GetValor("DestinoRetornoPath"); string arquivoImportacao = @pathDestinoImportacao + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + dados.NomeArquivo; // Movendo arquivo de importacao da origem para destino com outro nome File.Move(@pathOrigemImportacao + dados.NomeArquivo, arquivoImportacao); string arquivoRemessa = @pathDestinoRemessa + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + dados.NomeArquivoREM; // Movendo arquivo de remessa da origem para destino com outro nome File.Move(@pathOrigemRemessa + dados.NomeArquivoREM, arquivoRemessa); string arquivoRetorno = @pathDestinoRetorno + DateTime.Now.ToString("yyyyMMdd_HHmmss") + "_" + dados.NomeArquivoRET; // Movendo arquivo de retorno da origem para destino com outro nome File.Move(@pathOrigemRetorno + dados.NomeArquivoRET, arquivoRetorno); // Lendo arquivo da pasta Backup string conteudoImportacao = Importacao.LerArquivoImportacao(arquivoImportacao); // Gravando na base o lote SalvarLote(dados.Rps, lotesRps.Count, i); // Gravando na base o resultado do envio SalvarDadosEnvio(dados.Rps, xmlDados, xmlRetorno, arquivoImportacao, conteudoImportacao, arquivoRemessa, arquivoRetorno); i++; System.Threading.Thread.Sleep(5000); //Delay de 5 segundos para chamada sincrona } } } catch (Exception ex) { msg = ex.Message; } return(msg); }
public NFseService() { _client = new NfseWSServiceSoapClient(); }