/// <summary> /// Executa o download do arquivo /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnPropriedadeDownload_Click(object sender, EventArgs e) { this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; try { int idArquivo = Convert.ToInt32(((LinkButton)sender).CommandArgument); string link = GerenciamentoArquivo.ObtemLinkParaDownload(new List <int>() { idArquivo }); this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_DOWNLOAD; Response.Redirect(link, false); } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_DOWNLOAD; return; } }
/// <summary> /// Realiza o donwload do arquivo selecionado nas propriedades /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnPropriedadeDownloadArquivo_Click(object sender, EventArgs e) { try { string argumento = ((LinkButton)sender).CommandArgument; List <string> arquivos = argumento.Split(',').ToList(); List <int> idArquivos = new List <int>(); string link; foreach (string arquivo in arquivos) { idArquivos.Add(Convert.ToInt32(arquivo)); } link = GerenciamentoArquivo.ObtemLinkParaDownload(idArquivos); this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_DOWNLOAD; Response.Redirect(link, false); } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_DOWNLOAD; return; } }
/// <summary> /// Realiza o download dos arquivos selecionados /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnDownload_Click(object sender, EventArgs e) { List <int> arquivosSelecionados = (List <int>) this.ObtemArquivosSelecionados(); string link; this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; if (arquivosSelecionados == null || arquivosSelecionados.Count <= 0) { this.LblMensagem.Text = MENSAGEM_ERRO_NENHUM_ARQUIVO_SELECIONADO; return; } try { link = GerenciamentoArquivo.ObtemLinkParaDownload(arquivosSelecionados); this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_DOWNLOAD; Response.Redirect(link, false); } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_DOWNLOAD; return; } }
/// <summary> /// Solicita a assinatura dos arquivos selecionados /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnSolicitarAssinatura_Click(object sender, EventArgs e) { AssinaturaSped assinatura; List <int> arquivosRejeitados; List <int> arquivosSelecionados = (List <int>) this.ObtemArquivosSelecionados(); this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; if (arquivosSelecionados.Count <= 0) { this.LblMensagem.Text = MENSAGEM_ERRO_NENHUM_ARQUIVO_SELECIONADO; return; } if (!this.FuCertificadoDigital.HasFile || string.IsNullOrEmpty(this.TxtSenhaCertificadoDigital.Text)) { this.LblMensagem.Text = MENSAGEM_ERRO_CERTIFICADO_DIGITAL; return; } try { assinatura = new AssinaturaSped() { Speds = arquivosSelecionados, Certificado = GerenciamentoArquivo.ObtemChaveCertificadoDigital(this.FuCertificadoDigital.FileBytes), SenhaCertificado = this.TxtSenhaCertificadoDigital.Text }; arquivosRejeitados = (List <int>)GerenciamentoArquivo.AssinaSped(assinatura); if (arquivosRejeitados.Count <= 0) { this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_ASSINATURA; } else { string arquivos = string.Empty; foreach (int arquivo in arquivosRejeitados) { arquivos += string.IsNullOrEmpty(arquivos) ? arquivo.ToString() : ", " + arquivo.ToString(); } this.LblMensagem.Text = string.Format(MENSAGEM_ERRO_ASSINATURA_ARQUIVO_REJEITADO, arquivos); } } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_ASSINATURA; return; } }
/// <summary> /// Define os valores de cada controle de propriedades de arquivo para exibição /// </summary> /// <param name="propriedade">Propriedades do arquivo</param> private void DefineControlePropriedades(PropriedadeObjeto propriedade) { List <UsuarioApi> usuarios = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi(); UsuarioApi usuario = usuarios.Exists(u => u.Id == propriedade.IdUsuarioUpload) ? usuarios.First(u => u.Id == propriedade.IdUsuarioUpload) : null; List <AcaoArquivo> arquivos = new List <AcaoArquivo>(); GerenciamentoArquivo.ExtraiDocumentosObjeto(propriedade, ref arquivos); this.TxtPropriedadeNomeArquivo.Text = propriedade.NomeOriginal; this.TxtPropriedadeCompetenciaInicial.Text = propriedade.DetalheSped.CompetenciaInicial.HasValue ? propriedade.DetalheSped.CompetenciaInicial.Value.ToString("dd/MM/yyyy") : string.Empty; this.TxtPropriedadeCompetenciaFinal.Text = propriedade.DetalheSped.CompetenciaFinal.HasValue ? propriedade.DetalheSped.CompetenciaFinal.Value.ToString("dd/MM/yyyy") : string.Empty; this.TxtPropriedadeTipoEscrituracao.Text = Dominio.ValorTextoDe(propriedade.DetalheSped.TipoEscrituracao); this.TxtPropriedadeFinalidade.Text = propriedade.DetalheSped.FinalidadeArquivo.HasValue ? (byte)propriedade.DetalheSped.FinalidadeArquivo + " - " + Dominio.ValorTextoDe(propriedade.DetalheSped.FinalidadeArquivo) : string.Empty; this.TxtPropriedadeParticipanteCnpj.Text = Util.FormataCnpj(propriedade.DetalheSped.EntidadeCnpj); this.TxtPropriedadeParticipanteInscricaoEstadual.Text = propriedade.DetalheSped.EntidadeIe; this.TxtPropriedadeParticipanteRazaoSocial.Text = propriedade.DetalheSped.EntidadeRazaoSocial; this.TxtPropriedadeOrigem.Text = usuario != null ? usuario.Nome : USUARIO_NAO_ENCONTRADO; this.TxtPropriedadeDataRecepcao.Text = propriedade.DataUpload.ToString("dd/MM/yyyy HH:mm"); if (propriedade.DetalheSped.DataProcessamentoPva.HasValue) { this.TxtPropriedadeArquivoValidado.Text = Dominio.ValorTextoDe(propriedade.DetalheSped.StatusPva); this.TxtPropriedadeArquivoValidado.Visible = true; this.TxtPropriedadeDataArquivoValidado.Text = propriedade.DetalheSped.DataProcessamentoPva.Value.ToString("dd/MM/yyyy HH:mm"); this.TxtPropriedadeDataArquivoValidado.Visible = true; } if (propriedade.DetalheSped.DataAssinatura.HasValue) { this.TxtPropriedadeArquivoAssinadoSucesso.Visible = true; this.TxtPropriedadeDataArquivoAssinadoSucesso.Text = propriedade.DetalheSped.DataAssinatura.Value.ToString("dd/MM/yyyy HH:mm"); this.TxtPropriedadeDataArquivoAssinadoSucesso.Visible = true; } if (propriedade.DetalheSped.DataTransmissaoSefaz.HasValue) { this.TxtPropriedadeArquivoTransmitidoSucesso.Visible = true; this.TxtPropriedadeDataArquivoTransmitidoSucesso.Text = propriedade.DetalheSped.DataTransmissaoSefaz.Value.ToString("dd/MM/yyyy"); this.TxtPropriedadeDataArquivoTransmitidoSucesso.Visible = true; } /* * this.LblPropriedadeArquivoConciliadoIndiciosErro.Text = propriedade.DetalheSped; * this.LblPropriedadeDataArquivoConciliadoIndiciosErro.Text = propriedade.DetalheSped..ToString("dd/MM/yyyy"); */ ////this.LblPropriedadeUsuarioUltimoAcesso = ; ////this.LblPropriedadeDataUltimoAcesso = ; this.RptArquivo.DataSource = arquivos.OrderBy(a => a.DataExecucao); this.RptArquivo.DataBind(); }
/// <summary> /// Realiza a consulta dos arquivos selecionados junto a secretaria da fazenda /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void BtnConsultarSefaz_Click(object sender, EventArgs e) { List <int> arquivosSelecionados = (List <int>) this.ObtemArquivosSelecionados(); List <int> arquivosComProblema; this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; if (arquivosSelecionados.Count <= 0) { this.LblMensagem.Text = MENSAGEM_ERRO_NENHUM_ARQUIVO_SELECIONADO; return; } try { arquivosComProblema = (List <int>)GerenciamentoArquivo.ConsultaSefaz(arquivosSelecionados); if (arquivosComProblema.Count <= 0) { this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagem.Text = MENSAGEM_SUCESSO_CONSULTA_SEFAZ; } else { string arquivos = string.Empty; foreach (int arquivo in arquivosComProblema) { arquivos += string.IsNullOrEmpty(arquivos) ? arquivo.ToString() : "," + arquivo.ToString(); } this.LblMensagem.Text = string.Format(MENSAGEM_ERRO_CONSULTA_SEFAZ_ARQUIVO_PROBLEMA, arquivos); } } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.LblMensagem.Text = MENSAGEM_ERRO_CONSULTA_SEFAZ; return; } }
/// <summary> /// Executa a busca de arquivos, baseado nos filtros preenchidos /// </summary> /// <param name="pagina">Número da página que conterá os resultados da busca</param> private void ExecutaBusca(int pagina = 1) { FiltroBuscaSped filtro = this.ViewState[ConstantesGlobais.FILTRO_BUSCA] != null ? (FiltroBuscaSped)this.ViewState[ConstantesGlobais.FILTRO_BUSCA] : new FiltroBuscaSped(); int inicio = ((pagina - 1) * RESULTADOS_POR_PAGINA) + 1; ResultadoBuscaSped resultado = GerenciamentoArquivo.BuscaArquivosSped(filtro, inicio, RESULTADOS_POR_PAGINA); List <ArquivoSped> arquivos = (resultado != null && resultado.Resultados != null) ? (List <ArquivoSped>)resultado.Resultados : new List <ArquivoSped>(); List <int> paginas = new List <int>(); if (arquivos.Count > 0) { int quantidadePaginas = (int)Math.Ceiling((double)resultado.Quantidade / (double)RESULTADOS_POR_PAGINA); for (int i = 1; i <= quantidadePaginas; i++) { paginas.Add(i); } this.DivAcoes.Visible = true; this.pagina = 0; this.RptResultadoBusca.Visible = true; this.RptResultadoBusca.DataSource = arquivos; ////OrderByDescending(a => a.Competencia).ToList(); this.RptResultadoBusca.DataBind(); this.RptPaginacao.Visible = quantidadePaginas > 1; this.RptPaginacao.DataSource = paginas; this.RptPaginacao.DataBind(); } else { this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; this.LblMensagem.Text = MENSAGEM_ERRO_BUSCA_NENHUM_RESULTADO; this.DivAcoes.Visible = false; this.RptResultadoBusca.Visible = false; this.RptPaginacao.Visible = false; return; } }
/// <summary> /// Obtem as propriedades do objeto e exibe /// </summary> /// <param name="idObjeto">Identificador do objeto</param> private void ObtemPropriedadesObjeto(int idObjeto) { PropriedadeObjeto propriedade; try { propriedade = GerenciamentoArquivo.ObtemPropriedadesObjeto(idObjeto); this.DefineControlePropriedades(propriedade); ScriptManager.RegisterStartupScript(this, this.GetType(), "Propriedades", "openModal();", true); } catch (Exception ex) { Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString()); this.DivMensagem.Visible = true; this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; this.LblMensagem.Text = MENSAGEM_ERRO_OBTER_PROPRIEDADES; return; } }
/// <summary> /// Realiza o upload do arquivo selecionado /// </summary> private void ProcessaUpload() { Parametro parametroUpload; string enderecoCompleto; string nomeArquivo; try { nomeArquivo = this.FuArquivo.FileName; enderecoCompleto = GerenciamentoArquivo.ObtemEnderecoArquivo(this.usuario.Id.Value, nomeArquivo); parametroUpload = GerenciamentoArquivo.ObtemParametrosUpload(enderecoCompleto.Split('\\').Last()); if (parametroUpload != null && !string.IsNullOrEmpty(parametroUpload.Valor)) { this.FuArquivo.SaveAs(enderecoCompleto); GerenciamentoArquivo.ExecutaUploadApi(parametroUpload.Valor, enderecoCompleto); GerenciamentoArquivo.InformaUploadConcluido(parametroUpload.Id.Value); this.DivMensagemUpload.Visible = true; this.DivMensagemUpload.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO; this.LblMensagemUpload.Text = MENSAGEM_SUCESSO_UPLOAD; } else { throw new Exception(); } } catch (Exception e) { this.DivMensagemUpload.Visible = true; this.DivMensagemUpload.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO; this.LblMensagemUpload.Text = MENSAGEM_ERRO_UPLOAD; } }
/// <summary> /// Define os valores de cada controle de propriedades de arquivo para exibição /// </summary> /// <param name="propriedade">Propriedades do arquivo</param> private void DefineControlePropriedades(PropriedadeObjeto propriedade) { List <UsuarioApi> usuarios = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi(); string linkDownloadArquivo = GerenciamentoArquivo.ObtemLinkParaDownload(new List <int>() { propriedade.IdArquivo }); UsuarioApi usuario = usuarios.Exists(u => u.Id == propriedade.IdUsuarioUpload) ? usuarios.First(u => u.Id == propriedade.IdUsuarioUpload) : null; this.TxtPropriedadeChaveAcesso.Text = propriedade.DetalheDfe.Chave; this.TxtPropriedadeTipoDocumento.Text = Dominio.ValorTextoDe(propriedade.TipoArquivo); this.TxtPropriedadeNumeroDocumento.Text = propriedade.DetalheDfe.Numero.ToString(); this.TxtPropriedadeDataEmissao.Text = propriedade.DetalheDfe.DataEmissao.Value.ToString("dd/MM/yyyy"); this.TxtPropriedadeEmissorCnpj.Text = Util.FormataCnpj(propriedade.DetalheDfe.EmitenteCnpj); this.TxtPropriedadeEmissorInscricaoEstadual.Text = propriedade.DetalheDfe.EmitenteIe; this.TxtPropriedadeEmissorRazaoSocial.Text = propriedade.DetalheDfe.EmitenteRazaoSocial; this.TxtPropriedadeDestinatarioCnpj.Text = Util.FormataCnpj(propriedade.DetalheDfe.DestinatarioCnpj); this.TxtPropriedadeDestinatarioInscricaoEstadual.Text = propriedade.DetalheDfe.DestinatarioIe; this.TxtPropriedadeDestinatarioRazaoSocial.Text = propriedade.DetalheDfe.DestinatarioRazaoSocial; this.TxtPropriedadeOrigem.Text = usuario != null ? usuario.Nome : USUARIO_NAO_ENCONTRADO; this.TxtPropriedadeDataRecepcao.Text = propriedade.DataUpload.ToString("dd/MM/yyyy HH:mm"); this.TxtPropriedadeSituacaoSefaz.Text = propriedade.DetalheDfe.StatusSefaz; this.TxtPropriedadeDataSituacaoSefaz.Text = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty; this.TxtPropriedadeIntegridadeArquivoProtocoloAutorizacao.Text = (propriedade.DetalheDfe.EProtocoloPresente.HasValue && propriedade.DetalheDfe.EProtocoloPresente.Value) ? TEXTO_COM_PROTOCOLO_AUTORIZACAO : TEXTO_SEM_PROTOCOLO_AUTORIZACAO; this.TxtPropriedadeIntegridadeArquivoAssinaturaDigital.Text = (propriedade.DetalheDfe.EAssinaturaValida.HasValue && propriedade.DetalheDfe.EAssinaturaValida.Value) ? TEXTO_ASSINATURA_DIGITAL_VALIDA : TEXTO_ASSINATURA_DIGITAL_INVALIDA; this.TxtPropriedadeDataIntegridadeArquivoAssinaturaDigital.Text = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty; this.TxtPropriedadeDataIntegridadeArquivoProtocoloAutorizacao.Text = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty; ////TxtPropriedadeDataManifestacaoDestinatario.Text = ; ////TxtPropriedadeUsuarioUltimoAcesso.Text = ; ////TxtPropriedadeDataUltimoAcesso.Text = ; this.BtnPropriedadeDownload.CommandArgument = propriedade.IdArquivo.ToString(); }