Esempio n. 1
0
        private void button2_Click(object sender, EventArgs e)
        {
            this.Log().Info("Lendo Arquivos de: " + UriEnvio);
            var url = new UriBuilder(UriEnvio);
            var xml = XDocument.Parse(TWeb.FetchRps(url.Uri));

            acbrNFSe.Configuracoes.WebServices.Ambiente = cmbAmbiente.GetSelectedValue <DFeTipoAmbiente>();
            EnviarLoteRpsEnvio(xml);
        }
Esempio n. 2
0
        private void Processamento()
        {
            this.Log().Info("Lendo Arquivos de: " + UriEnvio);
            var    url  = new UriBuilder(UriEnvio);
            string html = TWeb.FetchRps(url.Uri);

            btnIniciarProc.Enabled = false;

            do
            {
                if (html.IsEmpty())
                {
                    this.Log().Info($"Não foram encontrados arquivos de Envio ou Consulta no caminho {UriEnvio}");
                    btnIniciarProc.Enabled = true;
                    break;
                }

                var xml = XDocument.Parse(html);

                var root = xml.Root;
                if (root.Name.ToString().Contains("EnviarLoteRps"))
                {
                    var    retorno    = EnviarLoteRpsEnvio(xml);
                    string numeroLote = "";
                    if (retorno.Sucesso)
                    {
                        this.Log().Info("Sucesso no processamento! Gravando no repositório de processamento: " + UriRetorno);
                        numeroLote = retorno.NumeroLote;
                        var xmlRetonro = RemoveAllNamespaces(XElement.Parse(retorno.XmlRetorno)).ToString();
                        ResultadoEnvioLoteRps(numeroLote, xmlRetonro, UriRetorno);
                    }
                    else
                    {
                        this.Log().Error($"Erro no envio do Lote {numeroLote}");
                        var xmlRetonro = RemoveAllNamespaces(XElement.Parse(retorno.XmlRetorno)).ToString();
                        ResultadoEnvioLoteRps(numeroLote, xmlRetonro, UriRetorno);
                    }
                }
                else if (root.Name.ToString().Contains("ConsultarLoteRps"))
                {
                    var protocoloConsulta = BuscaNumeroProtocolo(xml);
                    var retorno           = ConsultarLoteRps(xml, protocoloConsulta);
                    if (retorno.Sucesso)
                    {
                        this.Log().Info("Sucesso na Consulta! Gravando no repositório de processamento: " + UriRetorno);
                        var xmlRetonro = RemoveAllNamespaces(XElement.Parse(retorno.XmlRetorno)).ToString();
                        ResultadoConsultaLoteRps(protocoloConsulta, xmlRetonro, UriRetorno);
                    }
                    else
                    {
                        this.Log().Error($"Arquivo de consulta para protocolo {protocoloConsulta} retornou erros.");
                        var xmlRetonro = RemoveAllNamespaces(XElement.Parse(retorno.XmlRetorno)).ToString();
                        ResultadoConsultaLoteRps(protocoloConsulta, xmlRetonro, UriRetorno);
                    }
                }
                else
                {
                    MessageBox.Show("A operação requisita não pode ser processada. Ausência de Elemento EnviarLoteRps ou ConsultarLoteRps");
                    throw new ApplicationException("Processamento Interrompido");
                }
            } while (!(html = TWeb.FetchRps(url.Uri)).IsEmpty());
        }