Exemplo n.º 1
0
        private bool GravarEnvio(XmlElement _retorno, List <string> _listaId, string _cnpj)
        {
            SCI.ESocial.IRKO.DCTF.ParametroGravarEnvio _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarEnvio();

            XmlElement _status = _retorno.GetElementsByTagName("status").Cast <XmlElement>().FirstOrDefault();

            _parametro.CdResposta   = _status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
            _parametro.DescResposta = _status.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
            _parametro.CNPJTR       = _cnpj;
            _parametro.Ids          = _listaId.ToArray();
            _parametro.ArquivoXML   = _retorno.OuterXml;

            if (_parametro.CdResposta == "201")
            {
                XmlElement _dadosRecepcaoLote = _retorno.GetElementsByTagName("dadosRecepcaoLote").Cast <XmlElement>().FirstOrDefault();
                _parametro.DhRecepcao = _dadosRecepcaoLote.GetElementsByTagName("dhRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText;
                _parametro.VersaoAplicativoRecepcao = _dadosRecepcaoLote.GetElementsByTagName("versaoAplicativoRecepcao").Cast <XmlElement>().FirstOrDefault().InnerText;
                _parametro.ProtocoloEnvio           = _dadosRecepcaoLote.GetElementsByTagName("protocoloEnvio").Cast <XmlElement>().FirstOrDefault().InnerText;
            }
            else
            {
                XmlNodeList _ocorrencias = _retorno.GetElementsByTagName("ocorrencia");
                _parametro.Ocorrencias = _ocorrencias.Cast <XmlElement>().ToList()
                                         .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia
                {
                    Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText
                    ,
                    Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText
                    ,
                    Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText
                }).ToArray();
            }

            SCI.ESocial.IRKO.DCTF.Resultado _retornoIrko = wrESocial.GravarEnvio(Guid, _parametro);

            if (_retornoIrko.Sucesso)
            {
                return(true);
            }
            else
            {
                MessageBox.Show(_retornoIrko.Mensagem);
                return(false);
            }
        }
Exemplo n.º 2
0
        private bool GravarRetorno(XmlElement _retorno, string _protocoEnvio)
        {
            List <SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno> _parametros = new List <SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno>();
            XmlElement _status = _retorno.GetElementsByTagName("status").Cast <XmlElement>().FirstOrDefault();

            if (_status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText == "201")
            {
                XmlNodeList _eventos = _retorno.GetElementsByTagName("evento");

                _eventos.Cast <XmlElement>().ToList().ForEach(_evento =>
                {
                    SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno
                    {
                        Id = _evento.Attributes["Id"].Value
                    };

                    XmlElement _recepcao = _evento.GetElementsByTagName("recepcao").Cast <XmlElement>().FirstOrDefault();
                    _parametro.Protocolo = _recepcao.GetElementsByTagName("protocoloEnvioLote").Cast <XmlElement>().FirstOrDefault().InnerText;

                    XmlElement _processamento = _evento.GetElementsByTagName("processamento").Cast <XmlElement>().FirstOrDefault();

                    _parametro.CdResposta      = _processamento.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
                    _parametro.DescResposta    = _processamento.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
                    _parametro.DhProcessamento = _processamento.GetElementsByTagName("dhProcessamento").Cast <XmlElement>().FirstOrDefault().InnerText;
                    _parametro.VersaoAplicativoProcessamento = _processamento.GetElementsByTagName("versaoAppProcessamento").Cast <XmlElement>().FirstOrDefault().InnerText;
                    _parametro.NumeroRecibo = _evento.GetElementsByTagName("nrRecibo")?.Cast <XmlElement>().FirstOrDefault()?.InnerText;



                    _parametro.Ocorrencias = _processamento.GetElementsByTagName("ocorrencia")?.Cast <XmlElement>().ToList()
                                             .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia()
                    {
                        Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText
                        ,
                        Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText
                        ,
                        Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText
                    }).ToArray();
                    _parametros.Add(_parametro);
                });

                SCI.ESocial.IRKO.DCTF.Resultado _resultado = wrESocial.GravarRetorno(Guid, _parametros.ToArray(), _retorno.OuterXml);
                if (!_resultado.Sucesso)
                {
                    MessageBox.Show(_resultado.Mensagem);
                }

                return(_resultado.Sucesso);
            }
            else
            {
                SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno _parametro = new SCI.ESocial.IRKO.DCTF.ParametroGravarRetorno
                {
                    Protocolo = _protocoEnvio
                };

                _parametro.CdResposta   = _status.GetElementsByTagName("cdResposta").Cast <XmlElement>().FirstOrDefault().InnerText;
                _parametro.DescResposta = _status.GetElementsByTagName("descResposta").Cast <XmlElement>().FirstOrDefault().InnerText;

                _parametro.Ocorrencias = _status.GetElementsByTagName("ocorrencia")?.Cast <XmlElement>().ToList()
                                         .ConvertAll <SCI.ESocial.IRKO.DCTF.Ocorrencia>(_ocorrencia => new SCI.ESocial.IRKO.DCTF.Ocorrencia()
                {
                    Tipo = _ocorrencia.GetElementsByTagName("tipo").Cast <XmlElement>().FirstOrDefault().InnerText
                    ,
                    Codigo = _ocorrencia.GetElementsByTagName("codigo").Cast <XmlElement>().FirstOrDefault().InnerText
                    ,
                    Descricao = _ocorrencia.GetElementsByTagName("descricao").Cast <XmlElement>().FirstOrDefault().InnerText
                }).ToArray();
                _parametros.Add(_parametro);

                SCI.ESocial.IRKO.DCTF.Resultado _resultado = wrESocial.GravarRetorno(Guid, _parametros.ToArray(), _retorno.OuterXml);
                if (!_resultado.Sucesso)
                {
                    MessageBox.Show(_resultado.Mensagem);
                }

                return(_resultado.Sucesso);
            }
        }