Esempio n. 1
0
        private void ExecutarEnviaArquivo()
        {
            try
            {
                if (pnlArquivo.Controls?.Cast <CheckBox>().Where(_check => _check.Checked)?.ToList().Any() ?? false)
                {
                    Custom = false;
                    gpbArquivos.Visible = false;
                    btnSel.Visible      = false;
                    btnDes.Visible      = false;

                    gpbEnviados.Visible = true;
                    btnVoltar.Visible   = true;

                    pnlArquivo.Controls?.Cast <CheckBox>().Where(_check => _check.Checked)?.ToList().ForEach(_check =>
                    {
                        TreeNode _nodeCheck = new TreeNode(_check.Text);

                        int _contador = 0;
                        while (true)
                        {
                            string _url = "https://www.irko.com.br/csp/prgdcn/esocial/arquivoXML.csp?CODEMP="
                                          + GetDesktop().GetEmpresa().Codigo.ToString();
                            _url += "&NOMEVT=" + ((SCI.ESocial.IRKO.DCTF.TipoEvento)_check.Tag).Codigo;
                            _url += "&GUID=" + Guid;

                            XmlDocument _xml = new XmlDocument
                            {
                                PreserveWhitespace = false
                            };
                            _xml.Load(_url);

                            if (_xml.DocumentElement.Name == "Fim")
                            {
                                break;
                            }
                            if (_xml.DocumentElement.Name == "Falha")
                            {
                                MessageBox.Show(_xml.DocumentElement.InnerText);
                                break;
                            }

                            XmlElement _xmlEsocial = _xml.DocumentElement;

                            string _cnpjTransmissao = _xmlEsocial.GetElementsByTagName("ideTransmissor").Cast <XmlElement>().FirstOrDefault()
                                                      .GetElementsByTagName("nrInsc").Cast <XmlElement>().FirstOrDefault().InnerText;
                            string _cnpjEmpregador = _xmlEsocial.GetElementsByTagName("ideEmpregador").Cast <XmlElement>().FirstOrDefault()
                                                     .GetElementsByTagName("nrInsc").Cast <XmlElement>().FirstOrDefault().InnerText;
                            Resultado _resultadoAssinar = AssinarXML(ref _xml, _cnpjTransmissao);

                            XmlNodeList _xmlData   = _xml.GetElementsByTagName("evento");
                            List <string> _listaId = _xmlData.Cast <XmlNode>().Where(_id => _id.Name == "evento")
                                                     .Select(_id => _id.Attributes["Id"].Value).ToList();

                            XmlElement _retorno = null;

                            string _tpAmb = _xmlEsocial.GetElementsByTagName("evento").Cast <XmlElement>().FirstOrDefault()
                                            .GetElementsByTagName("ideEvento").Cast <XmlElement>().FirstOrDefault()
                                            .GetElementsByTagName("tpAmb").Cast <XmlElement>().FirstOrDefault().InnerText;

                            SCI.Base.Resultado <System.Web.Services.Protocols.SoapHttpClientProtocol> _resultado = GetWrAssinado(_cnpjTransmissao, (TpAmb)int.Parse(_tpAmb));
                            if (_resultado.Sucesso)
                            {
                                System.Web.Services.Protocols.SoapHttpClientProtocol _wrAssinado = _resultado.Retorno;

                                try
                                {
                                    System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate(
                                        object sender,
                                        X509Certificate cert,
                                        X509Chain chain,
                                        SslPolicyErrors sslPolicyErrors)
                                    {
                                        if (sslPolicyErrors == SslPolicyErrors.None)
                                        {
                                            return(true);
                                        }

                                        if (cert.GetCertHashString() == "F947B2BF566DF881A4F52CDDB436BE522CB48A3F")
                                        {
                                            return(true);
                                        }

                                        return(false);
                                    };
                                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

                                    if ((TpAmb)int.Parse(_tpAmb) == TpAmb.Producão)
                                    {
                                        _retorno = ((SCI.ESocial.Producao.Envio.ServicoEnviarLoteEventos)_wrAssinado).EnviarLoteEventos(_xmlEsocial);
                                    }
                                    else
                                    {
                                        _retorno = ((SCI.ESocial.ProducaoRestrita.Envio.ServicoEnviarLoteEventos)_wrAssinado).EnviarLoteEventos(_xmlEsocial);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(ex.Message);
                                    break;
                                }
                                if (_retorno.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText == "301")
                                {
                                    TreeNode _node         = new TreeNode("Código de Resposta: " + _retorno.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText);
                                    String _textoDescricão = _retorno.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
                                    String[] _palavras     = _textoDescricão.Split(' ');
                                    if (_palavras.Length > 15)
                                    {
                                        string _NovotextoDescricão = "";
                                        for (int i = 0; i < _palavras.Length; i++)
                                        {
                                            if ((i % 15 == 0) && (i != 0))
                                            {
                                                _NovotextoDescricão = _NovotextoDescricão + " " + _palavras[i];
                                                _node.Nodes.AddRange(new TreeNode[]
                                                {
                                                    new TreeNode(_NovotextoDescricão)
                                                });
                                                _NovotextoDescricão = "";
                                            }
                                            else
                                            {
                                                _NovotextoDescricão = _NovotextoDescricão + " " + _palavras[i];
                                            }
                                        }

                                        if (_NovotextoDescricão != "")
                                        {
                                            _node.Nodes.AddRange(new TreeNode[]
                                            {
                                                new TreeNode(_NovotextoDescricão)
                                            });
                                        }

                                        _nodeCheck.Nodes.Add(_node);
                                        break;
                                    }
                                    else
                                    {
                                        _node.Nodes.AddRange(new TreeNode[]
                                        {
                                            new TreeNode("Descrição: " + _textoDescricão)
                                        });
                                    }
                                    _nodeCheck.Nodes.Add(_node);
                                    break;
                                }
                                else
                                {
                                    if (GravarEnvio(_retorno, _listaId, _cnpjTransmissao))
                                    {
                                        _contador++;
                                        TreeNode _node   = new TreeNode("Arquivo " + _contador.ToString());
                                        TreeNode _nodeId = new TreeNode("ID");
                                        _nodeId.Nodes.AddRange(_listaId.ConvertAll <TreeNode>(_id => new TreeNode(_id)).ToArray());
                                        _node.Nodes.Add(_nodeId);

                                        TreeNode _nodeRetorno = new TreeNode("Retorno");

                                        TreeNode _nodeResposta = new TreeNode(
                                            _retorno.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText);

                                        if (_retorno.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText == "201")
                                        {
                                            _nodeResposta.Nodes.Add(new TreeNode("Data: " +
                                                                                 _retorno.GetElementsByTagName("dhRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText));
                                            _nodeResposta.Nodes.Add(new TreeNode("Varsão: " +
                                                                                 _retorno.GetElementsByTagName("versaoAplicativoRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText));
                                            _nodeResposta.Nodes.Add(new TreeNode("Protocolo: " +
                                                                                 _retorno.GetElementsByTagName("protocoloEnvio").Cast <XmlElement>().FirstOrDefault().InnerText));
                                        }
                                        else
                                        {
                                            XmlNodeList _ocorrencias = _retorno.GetElementsByTagName("ocorrencia");

                                            _ocorrencias.Cast <XmlElement>().ToList().ForEach(_ocorrencia =>
                                            {
                                                TreeNode trnOcur = new TreeNode("Ocorrência");
                                                trnOcur.Nodes.AddRange(new TreeNode[]
                                                {
                                                    new TreeNode(_ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText)
                                                    , new TreeNode(_ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText)
                                                    , new TreeNode(_ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText)
                                                });
                                                _nodeResposta.Nodes.Add(trnOcur);
                                            }
                                                                                              );
                                        }
                                        _nodeRetorno.Nodes.Add(_nodeResposta);

                                        _node.Nodes.Add(_nodeRetorno);
                                        _nodeCheck.Nodes.Add(_node);
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show(_resultado.Mensagem);
                                break;
                            }
                        }
                        trvEnviado.Nodes.Add(_nodeCheck);
                    });
                    trvEnviado.ExpandAll();
                }
                else
                {
                    MessageBox.Show("Nenhum arquivo selecionado para envio.");
                }
            }
            catch (Exception _ex)
            {
                MessageBox.Show(_ex.Message);
            }
            GetDesktop().HideLoading();
        }
Esempio n. 2
0
        private void ExecutarEnviaArquivo()
        {
            Custom = false;
            gpbArquivos.Visible = false;
            btnSel.Visible      = false;
            btnDes.Visible      = false;

            gpbEnviados.Visible = true;
            btnVoltar.Visible   = true;
            btnEnviar.Visible   = false;

            try
            {
                pnlArquivo.Controls?.Cast <CheckBox>().Where(_check => _check.Checked)?.ToList().ForEach(_check =>
                {
                    Model.Report.DCTF.RetornoREINF.RetornoEvento _retornoEvento = new Model.Report.DCTF.RetornoREINF.RetornoEvento
                    {
                        Descricao = _check.Text
                    };
                    TreeNode _nodeCheck = new TreeNode(_check.Text);
                    int _contador       = 0;

                    string _url;

                    if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                    {
                        _url  = "https://www.irko.com.br/csp/prgdcn/reinf/retornoXML.csp?";
                        _url += "CODEMP=" + GetDesktop().GetEmpresa().Codigo.ToString();
                        _url += "&GUID=" + Guid;
                    }
                    else
                    {
                        _url  = "https://www.irko.com.br/csp/prgdcn/reinf/arquivoXML.csp?";
                        _url += "CODEMP=" + GetDesktop().GetEmpresa().Codigo.ToString();
                        _url += "&NOMREG=" + ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo;
                        _url += "&GUID=" + Guid;
                    }
                    XmlDocument _xml = new XmlDocument
                    {
                        PreserveWhitespace = false
                    };
                    _xml.Load(_url);

                    if (_xml.DocumentElement.Name == "Fim" || _xml.DocumentElement.Name == "Falha")
                    {
                    }
                    else
                    {
                        XmlNode _xmlReinf = _xml.DocumentElement;

                        string _cnpjTransmissao = "07074083000102";
                        string _cnpjContr       = string.Empty;

                        var resultadoCNPJ = wrReinf.RecuperaCNPJCPFCertificado(Guid);
                        if (resultadoCNPJ.Sucesso)
                        {
                            _cnpjContr = resultadoCNPJ.RetornoResultadoRecuperaCNPJCPFCertificado;
                        }

                        if (String.IsNullOrEmpty(_cnpjContr))
                        {
                            _cnpjContr = _xml.DocumentElement.GetElementsByTagName("ideContri")?.Cast <XmlElement>()
                                         .FirstOrDefault()?.GetElementsByTagName("nrInsc")?.Cast <XmlElement>().FirstOrDefault()?.InnerText;
                        }

                        String _tpAmb = _xml.DocumentElement.GetElementsByTagName("tpAmb")?.Cast <XmlElement>()?
                                        .FirstOrDefault()?.InnerText;

                        _cnpjTransmissao = _cnpjContr;
                        var _xmlElements = _xml.GetElementsByTagName("loteEventos").Cast <XmlElement>().FirstOrDefault();

                        List <string> _listaId = _xmlElements?.Cast <XmlNode>().Where(_node => _node.Name == "evento")?
                                                 .Select(_id => _id.Attributes["id"].Value)?.ToList();

                        Resultado _resultadoAssinar = new Resultado();
                        _resultadoAssinar.Sucesso   = true;
                        if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo != "R-5011")
                        {
                            _resultadoAssinar = AssinarXML(ref _xml, _cnpjContr);
                        }

                        if (_resultadoAssinar.Sucesso)
                        {
                            XmlNode _retorno = null;

                            SCI.Base.Resultado <System.Web.Services.Protocols.SoapHttpClientProtocol> _resultado = GetWrAssinado(_cnpjTransmissao, ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo, _tpAmb);
                            if (_resultado.Sucesso)
                            {
                                System.Web.Services.Protocols.SoapHttpClientProtocol _wrAssinado = _resultado.Retorno;
                                try
                                {
                                    System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate(
                                        object sender,
                                        X509Certificate cert,
                                        X509Chain chain,
                                        SslPolicyErrors sslPolicyErrors)
                                    {
                                        if (sslPolicyErrors == SslPolicyErrors.None)
                                        {
                                            return(true);
                                        }

                                        return(false);
                                    };
                                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

                                    if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                                    {
                                        XmlNodeList xnList = _xmlReinf.SelectNodes("/ConsultaInformacoesConsolidadas");
                                        byte _tipoInscricaoContribuinte     = Convert.ToByte(xnList.Item(0).ChildNodes.Item(0).InnerText);
                                        string _numeroInscricaoContribuinte = xnList.Item(0).ChildNodes.Item(1).InnerText;
                                        string _numeroProtocoloFechamento   = xnList.Item(0).ChildNodes.Item(2).InnerText;
                                        if (_tpAmb == "1")
                                        {
                                            _retorno = ((Reinf.Producao.Retorno.ConsultasReinf)_wrAssinado).ConsultaInformacoesConsolidadas(_tipoInscricaoContribuinte, _numeroInscricaoContribuinte, _numeroProtocoloFechamento);
                                        }
                                        else
                                        {
                                            _retorno = ((Reinf.ProducaoRestrita.Retorno.ConsultasReinf)_wrAssinado).ConsultaInformacoesConsolidadas(_tipoInscricaoContribuinte, _numeroInscricaoContribuinte, _numeroProtocoloFechamento);
                                        }
                                    }
                                    else
                                    {
                                        if (_tpAmb == "1")
                                        {
                                            _retorno = ((Reinf.Producao.Envio.RecepcaoLoteReinf)_wrAssinado).ReceberLoteEventos(_xmlReinf);
                                        }
                                        else
                                        {
                                            _retorno = ((Reinf.ProducaoRestrita.Envio.RecepcaoLoteReinf)_wrAssinado).ReceberLoteEventos(_xmlReinf);
                                        }
                                    }

                                    XmlDocument _docRetorno = new XmlDocument();
                                    _docRetorno.LoadXml(_retorno.OuterXml);

                                    XmlElement _retornoElement = _docRetorno.DocumentElement;

                                    Reinf.Irko.ResultadoGravarRetornoEvento _retornoWR = GravarEnvio(_retorno, _listaId, _cnpjTransmissao, ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo);

                                    if (_retornoWR.Sucesso)
                                    {
                                        if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                                        {
                                            if (_retornoWR.RetornoRetornoTotEvt10300 != null)
                                            {
                                                Reinf.Irko.evtTotalContrib _retornoLoteEventos = _retornoWR.RetornoRetornoTotEvt10300.evtTotalContrib;
                                                _contador++;

                                                TreeNode _nodeArquivo = new TreeNode("Arquivo " + _contador.ToString());

                                                TreeNode _nodeStatus = new TreeNode(_retornoLoteEventos.ideRecRetorno.ideStatus.descRetorno);

                                                TreeNode _nodeId = new TreeNode(_retornoLoteEventos.id);

                                                _retornoLoteEventos.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                                {
                                                    TreeNode _nodeTpOcorr = new TreeNode(_ocorr.tpOcorr.ToString());
                                                    _nodeId.Nodes.Add(_nodeTpOcorr);
                                                    TreeNode _nodeCodResp = new TreeNode(_ocorr.codResp);
                                                    _nodeId.Nodes.Add(_nodeCodResp);
                                                    TreeNode _nodeDscResp = new TreeNode(_ocorr.dscResp);
                                                    _nodeId.Nodes.Add(_nodeDscResp);
                                                });

                                                _nodeStatus.Nodes.Add(_nodeId);

                                                _nodeArquivo.Nodes.Add(_nodeStatus);
                                                _nodeCheck.Nodes.Add(_nodeArquivo);
                                            }
                                            else
                                            {
                                                Reinf.Irko.evtTotalContrib1 _retornoLoteEventos = _retornoWR.RetornoRetornoTotEvt10400.evtTotalContrib;
                                                _contador++;

                                                TreeNode _nodeArquivo = new TreeNode("Arquivo " + _contador.ToString());

                                                TreeNode _nodeStatus = new TreeNode(_retornoLoteEventos.ideRecRetorno.ideStatus.descRetorno);

                                                TreeNode _nodeId = new TreeNode(_retornoLoteEventos.id);

                                                _retornoLoteEventos.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                                {
                                                    TreeNode _nodeTpOcorr = new TreeNode(_ocorr.tpOcorr.ToString());
                                                    _nodeId.Nodes.Add(_nodeTpOcorr);
                                                    TreeNode _nodeCodResp = new TreeNode(_ocorr.codResp);
                                                    _nodeId.Nodes.Add(_nodeCodResp);
                                                    TreeNode _nodeDscResp = new TreeNode(_ocorr.dscResp);
                                                    _nodeId.Nodes.Add(_nodeDscResp);
                                                });

                                                _nodeStatus.Nodes.Add(_nodeId);

                                                _nodeArquivo.Nodes.Add(_nodeStatus);
                                                _nodeCheck.Nodes.Add(_nodeArquivo);
                                            }
                                        }
                                        else
                                        {
                                            if (_retornoWR.RetornoRetornoLote10300 != null)
                                            {
                                                Reinf.Irko.retornoLoteEventos _retornoLoteEventos = _retornoWR.RetornoRetornoLote10300.retornoLoteEventos;
                                                _contador++;

                                                TreeNode _nodeArquivo = new TreeNode("Arquivo " + _contador.ToString());

                                                TreeNode _nodeStatus = new TreeNode(_retornoLoteEventos.status.descRetorno);

                                                _retornoLoteEventos.retornoEventos?.ToList().ForEach(_evento =>
                                                {
                                                    TreeNode _nodeId = new TreeNode(_evento.id);

                                                    TreeNode _nodeStatusId = new TreeNode(_evento.Reinf.evtTotal.ideRecRetorno.ideStatus.descRetorno);
                                                    _evento.Reinf.evtTotal.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                                    {
                                                        TreeNode _nodeTpOcorr = new TreeNode(_ocorr.tpOcorr.ToString());
                                                        _nodeStatusId.Nodes.Add(_nodeTpOcorr);
                                                        TreeNode _nodeCodResp = new TreeNode(_ocorr.codResp);
                                                        _nodeStatusId.Nodes.Add(_nodeCodResp);
                                                        TreeNode _nodeDscResp = new TreeNode(_ocorr.dscResp);
                                                        _nodeStatusId.Nodes.Add(_nodeDscResp);
                                                    });

                                                    _nodeId.Nodes.Add(_nodeStatusId);
                                                    _nodeStatus.Nodes.Add(_nodeId);
                                                });

                                                _retornoLoteEventos.status.dadosRegistroOcorrenciaLote?.ToList().ForEach(_evento =>
                                                {
                                                    TreeNode _nodeCodigo    = new TreeNode(_evento.codigo);
                                                    TreeNode _nodeDescricao = new TreeNode(_evento.descricao);

                                                    _nodeCodigo.Nodes.Add(_nodeDescricao);
                                                    _nodeStatus.Nodes.Add(_nodeCodigo);
                                                });

                                                _nodeArquivo.Nodes.Add(_nodeStatus);
                                                _nodeCheck.Nodes.Add(_nodeArquivo);
                                            }
                                            else
                                            {
                                                Reinf.Irko.retornoLoteEventos1 _retornoLoteEventos = _retornoWR.RetornoRetornoLote10400.retornoLoteEventos;
                                                _contador++;

                                                TreeNode _nodeArquivo = new TreeNode("Arquivo " + _contador.ToString());

                                                TreeNode _nodeStatus = new TreeNode(_retornoLoteEventos.status.descRetorno);

                                                _retornoLoteEventos.retornoEventos?.ToList().ForEach(_evento =>
                                                {
                                                    TreeNode _nodeId = new TreeNode(_evento.id);

                                                    TreeNode _nodeStatusId = new TreeNode(_evento.Reinf.evtTotal.ideRecRetorno.ideStatus.descRetorno);
                                                    _evento.Reinf.evtTotal.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                                    {
                                                        TreeNode _nodeTpOcorr = new TreeNode(_ocorr.tpOcorr.ToString());
                                                        _nodeStatusId.Nodes.Add(_nodeTpOcorr);
                                                        TreeNode _nodeCodResp = new TreeNode(_ocorr.codResp);
                                                        _nodeStatusId.Nodes.Add(_nodeCodResp);
                                                        TreeNode _nodeDscResp = new TreeNode(_ocorr.dscResp);
                                                        _nodeStatusId.Nodes.Add(_nodeDscResp);
                                                    });

                                                    _nodeId.Nodes.Add(_nodeStatusId);
                                                    _nodeStatus.Nodes.Add(_nodeId);
                                                });

                                                _retornoLoteEventos.status.dadosRegistroOcorrenciaLote?.ToList().ForEach(_evento =>
                                                {
                                                    TreeNode _nodeCodigo    = new TreeNode(_evento.codigo);
                                                    TreeNode _nodeDescricao = new TreeNode(_evento.descricao);

                                                    _nodeCodigo.Nodes.Add(_nodeDescricao);
                                                    _nodeStatus.Nodes.Add(_nodeCodigo);
                                                });

                                                _nodeArquivo.Nodes.Add(_nodeStatus);
                                                _nodeCheck.Nodes.Add(_nodeArquivo);
                                            }



                                            /*Reinf.Irko.retornoLoteEventos1 _retornoLoteEventos = _retornoWR.RetornoRetornoLote10400.retornoLoteEventos;
                                             * _contador++;
                                             *
                                             * TreeNode _nodeArquivo = new TreeNode("Arquivo " + _contador.ToString());
                                             *
                                             * TreeNode _nodeStatus = new TreeNode(_retornoLoteEventos.status.descRetorno);
                                             *
                                             * _retornoLoteEventos.retornoEventos.ToList().ForEach(_evento =>
                                             * {
                                             * TreeNode _nodeId = new TreeNode(_evento.id);
                                             *
                                             * TreeNode _nodeStatusId = new TreeNode(_evento.Reinf.evtTotal.ideRecRetorno.ideStatus.descRetorno);
                                             * _evento.Reinf.evtTotal.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                             * {
                                             *          TreeNode _nodeTpOcorr = new TreeNode(_ocorr.tpOcorr.ToString());
                                             *          _nodeStatusId.Nodes.Add(_nodeTpOcorr);
                                             *          TreeNode _nodeCodResp = new TreeNode(_ocorr.codResp);
                                             *          _nodeStatusId.Nodes.Add(_nodeCodResp);
                                             *          TreeNode _nodeDscResp = new TreeNode(_ocorr.dscResp);
                                             *          _nodeStatusId.Nodes.Add(_nodeDscResp);
                                             *      });
                                             *
                                             * _nodeId.Nodes.Add(_nodeStatusId);
                                             * _nodeStatus.Nodes.Add(_nodeId);
                                             * });
                                             *
                                             * _nodeArquivo.Nodes.Add(_nodeStatus);
                                             * _nodeCheck.Nodes.Add(_nodeArquivo);*/
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show(_retornoWR.Mensagem);
                                    }
                                }
#pragma warning disable CS0168 // A variável foi declarada, mas nunca foi usada
                                catch (Exception ex)
#pragma warning restore CS0168 // A variável foi declarada, mas nunca foi usada
                                {
                                    MessageBox.Show(ex.Message);
                                    return;
                                }
                            }

                            //_retornReinf.Eventos.Add(_retornoEvento);
                            trvEnviado.Nodes.Add(_nodeCheck);
                        }
                        else
                        {
                            MessageBox.Show(_resultadoAssinar.Mensagem);
                        }
                    }
                });
            }
            catch (Exception _ex)
            {
                MessageBox.Show(_ex.Message);
            }
        }
Esempio n. 3
0
        private void ExecutarEnviaArquivo()
        {
            Custom = false;
            gpbArquivos.Visible = false;
            btnSel.Visible      = false;
            btnDes.Visible      = false;
            imgVoltar.Visible   = true;
            imgEnviar.Visible   = false;

            try
            {
                List <SCI.Model.Report.DCTF.Reinf.RetornoREINF> _listRetorno = new List <Model.Report.DCTF.Reinf.RetornoREINF>();

                pnlArquivo.Controls?.Cast <CheckBox>().Where(_check => _check.Checked)?.ToList().ForEach(_check =>
                {
                    Model.Report.DCTF.RetornoREINF.RetornoEvento _retornoEvento = new Model.Report.DCTF.RetornoREINF.RetornoEvento
                    {
                        Descricao = _check.Text
                    };

                    int _contador = 0;

                    string _url;

                    if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                    {
                        _url  = "https://www.irko.com.br/csp/prgdcn/reinf/retornoXML.csp?";
                        _url += "CODEMP=" + GetDesktop().GetEmpresa().Codigo.ToString();
                        _url += "&GUID=" + Guid;
                    }
                    else
                    {
                        _url  = "https://www.irko.com.br/csp/prgdcn/reinf/arquivoXML.csp?";
                        _url += "CODEMP=" + GetDesktop().GetEmpresa().Codigo.ToString();
                        _url += "&NOMREG=" + ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo;
                        _url += "&GUID=" + Guid;
                    }
                    XmlDocument _xml = new XmlDocument
                    {
                        PreserveWhitespace = false
                    };
                    _xml.Load(_url);

                    if (_xml.DocumentElement.Name == "Fim" || _xml.DocumentElement.Name == "Falha")
                    {
                    }
                    else
                    {
                        XmlNode _xmlReinf = _xml.DocumentElement;

                        string _cnpjTransmissao = "07074083000102";
                        string _cnpjContr       = string.Empty;

                        var resultadoCNPJ = wrReinf.RecuperaCNPJCPFCertificado(Guid);
                        if (resultadoCNPJ.Sucesso)
                        {
                            _cnpjContr = resultadoCNPJ.RetornoResultadoRecuperaCNPJCPFCertificado;
                        }

                        if (String.IsNullOrEmpty(_cnpjContr))
                        {
                            _cnpjContr = _xml.DocumentElement.GetElementsByTagName("ideContri")?.Cast <XmlElement>()
                                         .FirstOrDefault()?.GetElementsByTagName("nrInsc")?.Cast <XmlElement>().FirstOrDefault()?.InnerText;
                        }

                        String _tpAmb = _xml.DocumentElement.GetElementsByTagName("tpAmb")?.Cast <XmlElement>()?
                                        .FirstOrDefault()?.InnerText;

                        _cnpjTransmissao = _cnpjContr;
                        var _xmlElements = _xml.GetElementsByTagName("loteEventos").Cast <XmlElement>().FirstOrDefault();

                        List <string> _listaId = _xmlElements?.Cast <XmlNode>().Where(_node => _node.Name == "evento")?
                                                 .Select(_id => _id.Attributes["id"].Value)?.ToList();

                        Resultado _resultadoAssinar = new Resultado();
                        _resultadoAssinar.Sucesso   = true;
                        if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo != "R-5011")
                        {
                            _resultadoAssinar = AssinarXML(ref _xml, _cnpjContr);
                        }

                        if (_resultadoAssinar.Sucesso)
                        {
                            XmlNode _retorno = null;

                            SCI.Base.Resultado <System.Web.Services.Protocols.SoapHttpClientProtocol> _resultado = GetWrAssinado(_cnpjTransmissao, ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo, _tpAmb);
                            if (_resultado.Sucesso)
                            {
                                System.Web.Services.Protocols.SoapHttpClientProtocol _wrAssinado = _resultado.Retorno;
                                try
                                {
                                    System.Net.ServicePointManager.ServerCertificateValidationCallback += delegate(
                                        object sender,
                                        X509Certificate cert,
                                        X509Chain chain,
                                        SslPolicyErrors sslPolicyErrors)
                                    {
                                        if (sslPolicyErrors == SslPolicyErrors.None)
                                        {
                                            return(true);
                                        }

                                        return(false);
                                    };
                                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;

                                    if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                                    {
                                        XmlNodeList xnList = _xmlReinf.SelectNodes("/ConsultaInformacoesConsolidadas");
                                        byte _tipoInscricaoContribuinte     = Convert.ToByte(xnList.Item(0).ChildNodes.Item(0).InnerText);
                                        string _numeroInscricaoContribuinte = xnList.Item(0).ChildNodes.Item(1).InnerText;
                                        string _numeroProtocoloFechamento   = xnList.Item(0).ChildNodes.Item(2).InnerText;
                                        if (_tpAmb == "1")
                                        {
                                            _retorno = ((Reinf.Producao.Retorno.ConsultasReinf)_wrAssinado).ConsultaInformacoesConsolidadas(_tipoInscricaoContribuinte, _numeroInscricaoContribuinte, _numeroProtocoloFechamento);
                                        }
                                        else
                                        {
                                            _retorno = ((Reinf.ProducaoRestrita.Retorno.ConsultasReinf)_wrAssinado).ConsultaInformacoesConsolidadas(_tipoInscricaoContribuinte, _numeroInscricaoContribuinte, _numeroProtocoloFechamento);
                                        }
                                    }
                                    else
                                    {
                                        if (_tpAmb == "1")
                                        {
                                            _retorno = ((Reinf.Producao.Envio.RecepcaoLoteReinf)_wrAssinado).ReceberLoteEventos(_xmlReinf);
                                        }
                                        else
                                        {
                                            _retorno = ((Reinf.ProducaoRestrita.Envio.RecepcaoLoteReinf)_wrAssinado).ReceberLoteEventos(_xmlReinf);
                                        }
                                    }

                                    XmlDocument _docRetorno = new XmlDocument();
                                    _docRetorno.LoadXml(_retorno.OuterXml);
                                    XmlElement _retornoElement = _docRetorno.DocumentElement;

                                    Reinf.Irko.ResultadoGravarRetornoEvento _retornoWR = GravarEnvio(_retorno, _listaId, _cnpjTransmissao, ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo);

                                    if (_retornoWR.Sucesso)
                                    {
                                        if (((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo == "R-5011")
                                        {
                                            Reinf.Irko.evtTotalContrib _retornoLoteEventos = _retornoWR.RetornoRetornoTotEvt10300.evtTotalContrib;
                                            _contador++;

                                            _retornoLoteEventos.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                            {
                                                SCI.Model.Report.DCTF.Reinf.RetornoREINF _retReinf = new Model.Report.DCTF.Reinf.RetornoREINF();
                                                _retReinf.codEvt = ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo;
                                                _retReinf.dscEvt = ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Descricao;
                                                _retReinf.nomArq = _contador.ToString();
                                                _retReinf.idEVT  = _retornoLoteEventos.id;
                                                _retReinf.stsEvt = _retornoLoteEventos.ideRecRetorno.ideStatus.descRetorno;
                                                _retReinf.tipOco = _ocorr.tpOcorr.ToString();
                                                _retReinf.dscOco = _ocorr.codResp + " - " + _ocorr.dscResp;

                                                _listRetorno.Add(_retReinf);
                                            });
                                        }
                                        else
                                        {
                                            Reinf.Irko.retornoLoteEventos _retornoLoteEventos = _retornoWR.RetornoRetornoLote10300.retornoLoteEventos;
                                            _contador++;

                                            _retornoLoteEventos.retornoEventos.ToList().ForEach(_evento =>
                                            {
                                                _evento.Reinf.evtTotal.ideRecRetorno.ideStatus.regOcorrs?.ToList().ForEach(_ocorr =>
                                                {
                                                    SCI.Model.Report.DCTF.Reinf.RetornoREINF _retReinf = new Model.Report.DCTF.Reinf.RetornoREINF();
                                                    _retReinf.codEvt = ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Codigo;
                                                    _retReinf.dscEvt = ((SCI.Reinf.Irko.TipoEvento)_check.Tag).Descricao;
                                                    _retReinf.nomArq = "Arquivo " + _contador.ToString();
                                                    _retReinf.idEVT  = _retornoLoteEventos.id;
                                                    _retReinf.stsEvt = _evento.Reinf.evtTotal.ideRecRetorno.ideStatus.descRetorno;
                                                    _retReinf.tipOco = _ocorr.tpOcorr.ToString();
                                                    _retReinf.dscOco = _ocorr.codResp + " - " + _ocorr.dscResp;

                                                    _listRetorno.Add(_retReinf);
                                                });
                                            });
                                        }
                                    }
                                    else
                                    {
                                        MessageBox.Show(_retornoWR.Mensagem);
                                    }
                                }
                                catch (Exception ex)
                                {
                                    MessageBox.Show(ex.Message);
                                    return;
                                }
                            }

                            //_retornReinf.Eventos.Add(_retornoEvento);
                            //trvEnviado.Nodes.Add(_nodeCheck);
                        }
                        else
                        {
                            MessageBox.Show(_resultadoAssinar.Mensagem);
                        }
                    }
                });
                rptREINF.LocalReport.DataSources.Clear();

                ReportDataSource _source = new ReportDataSource("RetornoArquivoREINF", _listRetorno);
                rptREINF.LocalReport.DataSources.Add(_source);

                rptREINF.LocalReport.SetParameters(new ReportParameter[] { new ReportParameter("Agora", DateTime.Now.ToString()) });
                rptREINF.RefreshReport();

                gpbEnviados.Visible = true;
                pctLoad.Visible     = false;
                lblLoad.Visible     = false;
            }
            catch (Exception _ex)
            {
                MessageBox.Show(_ex.Message);
            }
        }