Exemplo n.º 1
0
        // 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);
        }
Exemplo n.º 2
0
 public NFseService()
 {
     _client = new NfseWSServiceSoapClient();
 }