Пример #1
0
        //=============/ METODOS MANUAIS /===============//

        private void atualizarTabela()
        {
            if (this.user_control.User_logado != null)
            {
                List <ESocial> ultimos = ESocialApp.getDocumentosUltimosDocumentos(this.user_control.User_logado.Id_servidor, 30);

                eSocialDataGrid.Rows.Clear();

                foreach (ESocial documento in ultimos)
                {
                    var index = eSocialDataGrid.Rows.Add();
                    eSocialDataGrid.Rows[index].Cells["id"].Value   = documento.Id_servidor;
                    eSocialDataGrid.Rows[index].Cells["data"].Value = documento.Data.ToString();

                    switch (documento.Status)
                    {
                    case 0:
                        eSocialDataGrid.Rows[index].Cells["status"].Value = "nao assinada";
                        break;

                    case 1:
                        eSocialDataGrid.Rows[index].Cells["status"].Value = "processada";
                        break;

                    case 2:
                        eSocialDataGrid.Rows[index].Cells["status"].Value = "em nuvem";
                        break;

                    default:
                        eSocialDataGrid.Rows[index].Cells["status"].Value = "indefinido";
                        break;
                    }
                }
            }
        }
Пример #2
0
        private void subirDocumentosESocial(List <ESocial> documentos_processados)
        {
            int count = 1;
            int max   = documentos_processados.Count;

            foreach (ESocial documento in documentos_processados)
            {
                this.log.log("Subindo " + count + " de " + max + "...");

                //envia informações do documento à nuvem
                string retorno_servidor = contanto_wb.enviarXmlAssinado(this.user.Id_servidor, this.user.Hash,
                                                                        documento.Id_servidor, documento.Xml_base64, documento.Resposta_xml_base64, documento.Ambiente, this.user.Educont);

                JObject json = JObject.Parse(retorno_servidor);

                int    erro    = (int)json["erro"];
                string retorno = (string)json["retorno"];

                this.log.log("Retorno do WB Contando: " + erro + " - " + retorno);

                if (erro == 0)
                {
                    ESocialApp.marcarComoArmazenadoEmNuvem(documento.id);
                }
                count++;
            }
        }
Пример #3
0
        /// <summary>
        /// Processa os documentos assinando-os e enviando a receita
        /// </summary>
        private int processarDocumentosESocial(List <ESocial> documentos)
        {
            int count          = 1;
            int max            = documentos.Count;
            int doc_processado = 0;

            foreach (ESocial documento in documentos)
            {
                this.log.log("Processando " + count + " de " + max + "...");
                XmlDocument resposta = new XmlDocument();
                //assina e envia documento
                XmlDocument xml_assinado      = ESocialControl.assinarXML(this.user.Certificado, documento.Xml_base64);
                string      resposta_servidor = ConexaoEsocial.processar_eventos(xml_assinado, this.user.Certificado, documento.Ambiente);
                resposta.LoadXml(resposta_servidor);

                string cdResposta   = resposta.GetElementsByTagName("cdResposta").Item(0).InnerText;
                string descResposta = resposta.GetElementsByTagName("descResposta").Item(0).InnerText;
                this.log.log("Resposta do servidor: " + cdResposta + " - " + descResposta);
                ESocialApp.novoDocumentoProcessado(documento, xml_assinado, resposta, this.user.Id);
                doc_processado++;
                count++;
            }

            return(doc_processado);
        }
Пример #4
0
        public override void run()
        {
            try
            {
                while (true)
                {
                    try
                    {
                        log.log("Iniciando verificação no webservice");
                        string retorno_servidor = contanto_wb.consultarXmls(user.Id_servidor, user.Hash, user.Educont);

                        //teste
                        //string xml_str = File.ReadAllText(@"D:\projetos\leitorESocial\esocial_documentos\assinado-contando.xml");
                        //xml_str = xml_str.Replace("<v1:", "<");
                        //xml_str = xml_str.Replace("</v1:", "</");
                        //xml_str = xml_str.Replace("<V1:", "<");
                        //xml_str = xml_str.Replace("</V1:", "</");
                        //XmlDocument xml = new XmlDocument();
                        //xml.LoadXml(xml_str);
                        //xml = ESocialControl.retirarAssinaturaAntiga(xml);
                        //fim teste

                        //salva os documentos no banco
                        List <ESocial> documentos_nao_processados = extrairXmlsRetornoServidor(retorno_servidor);

                        if (documentos_nao_processados.Count > 0)
                        {
                            log.log(documentos_nao_processados.Count + " não processados encontrados. Iniciando processamento");
                            int doc_processados = processarDocumentosESocial(documentos_nao_processados);
                            if (doc_processados > 0)
                            {
                                notificao_info(doc_processados + " novos documentos processados");
                            }
                        }
                        else
                        {
                            log.log("nenhum documento novo encontrado");
                        }

                        //pega no máximo 10 xmls processados no banco para envio ao servidor
                        List <ESocial> documentos_processados = ESocialApp.getDocumentosProcessados(10, user.Id_servidor);
                        if (documentos_processados.Count > 0)
                        {
                            log.log(documentos_processados.Count + " processados encontrados. Iniciando envio à nuvem");
                            subirDocumentosESocial(documentos_processados);
                            notificao_info(documentos_processados.Count + " novos documentos enviados ao servidor");
                        }
                        else
                        {
                            log.log("nenhum novo documento processado encontrado");
                        }
                    }
                    catch (Exception ex)
                    {
                        this.log.log("Erro no processo de sicronização: " + ex.Message);
                        notificao_erro(ex.Message);
                    }

                    //inicia espera
                    this.log.log("Iniciando aguardo de " + this.Intervalo_minutos + " antes de iniciar um novo upload" +
                                 "\n====================//======================");
                    try
                    {
                        Thread.Sleep(this.Intervalo_minutos);
                    }
                    catch (ThreadAbortException)
                    {
                        this.log.log("Processo de " + this.log.Processo + " foi finalizada pelo usuário");
                        notificao_info("Processo de " + this.log.Processo + " foi finalizada pelo usuário");
                        return;
                    }
                }
            }
            catch (ThreadAbortException)
            {
                this.log.log("Processo abortado");
            }
            catch (Exception ex)
            {
                log.log("ERRO CRÍTICO: " + ex.Message);
                notificao_erro("ERRO CRÍTICO: " + ex.Message);
            }
        }
Пример #5
0
 public void limparNotasUser(int user_id)
 {
     ESocialApp.limparNotasUser(user_id);
 }