/// <summary> /// Evento de carregamento da página "BuscaDfe" /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void Page_Load(object sender, EventArgs e) { this.DivMensagem.Visible = false; if (!this.IsPostBack) { FiltroBusca filtroBusca = (FiltroBusca)this.Session[ConstantesGlobais.FILTRO_BUSCA]; this.DefineControles(); if (filtroBusca != null) { this.TxtCnpj.Text = Util.FormataCnpj(filtroBusca.Participante.Cnpj); if (filtroBusca.OperacaoFiscal != null && filtroBusca.OperacaoFiscal.TipoEmissao.HasValue) { this.RblTipoEmissao.SelectedValue = ((byte)filtroBusca.OperacaoFiscal.TipoEmissao.Value).ToString(); } if (filtroBusca.DocumentoFiscal != null && filtroBusca.DocumentoFiscal.JuridicamenteValido.HasValue) { this.RblSituacaoDocumento.SelectedValue = filtroBusca.DocumentoFiscal.JuridicamenteValido.Value ? ((byte)StatusArquivo.Valido).ToString() : ((byte)StatusArquivo.Invalido).ToString(); } this.Session[ConstantesGlobais.FILTRO_BUSCA] = null; this.ViewState[ConstantesGlobais.FILTRO_BUSCA] = filtroBusca; this.ExecutaBusca(); } } }
/// <summary> /// Evento de execução dos comandos advindos de uma das linhas do controle "RptMapa" /// </summary> /// <param name="sender">Objeto que disparou esse evento</param> /// <param name="e">Contém os argumentos fornecidos nesse evento</param> protected void RptMapa_ItemCommand(object sender, RepeaterCommandEventArgs e) { if (e != null) { LinkButton btnEmpresa = (LinkButton)e.Item.FindControl("BtnEmpresa"); LinkButton btnTipoProprios = (LinkButton)e.Item.FindControl("BtnTipoProprios"); LinkButton btnTipoTerceiros = (LinkButton)e.Item.FindControl("BtnTipoTerceiros"); FiltroBusca filtroMapa = new FiltroBusca(); int month = DateTime.Now.Month; int year = DateTime.Now.Year; filtroMapa.Recepcionado = new DataIntervalo() { De = Convert.ToDateTime("1/" + month + "/" + year), Ate = Convert.ToDateTime(DateTime.DaysInMonth(year, month) + "/" + month + "/" + year) }; filtroMapa.Participante = new Participante() { Cnpj = btnEmpresa.CommandArgument }; if (e.CommandName == "SelecaoTipoProprios" || e.CommandName == "SelecaoTipoTerceiros") { filtroMapa.OperacaoFiscal = new OperacaoFiscal() { TipoEmissao = e.CommandName == "SelecaoTipoProprios" ? TipoEmissao.Propria : TipoEmissao.Terceiros }; } if (e.CommandName == "SelecaoInvalido" || e.CommandName == "SelecaoValido") { filtroMapa.OperacaoFiscal = new OperacaoFiscal() { TipoEmissao = btnTipoProprios != null ? TipoEmissao.Propria : TipoEmissao.Terceiros }; filtroMapa.DocumentoFiscal = new DocumentoFiscal() { JuridicamenteValido = e.CommandName == "SelecaoValido" }; } this.Session[ConstantesGlobais.FILTRO_BUSCA] = filtroMapa; Response.Redirect("Busca.aspx"); } }
/// <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) { FiltroBusca filtro = this.ViewState[ConstantesGlobais.FILTRO_BUSCA] != null ? (FiltroBusca)this.ViewState[ConstantesGlobais.FILTRO_BUSCA] : new FiltroBusca(); int inicio = ((pagina - 1) * RESULTADOS_POR_PAGINA) + 1; ResultadoBusca resultado = GerenciamentoArquivo.BuscaArquivosDfe(filtro, inicio, RESULTADOS_POR_PAGINA); List <Arquivo> arquivos = (resultado != null && resultado.Resultados != null) ? (List <Arquivo>)resultado.Resultados : new List <Arquivo>(); 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.DataEmissao).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 os valores digitados nos campos da pesquisa e monta um objeto FiltroBusca /// </summary> /// <returns>Objeto filtro da busca</returns> private FiltroBusca MontaFiltroBuscaSimples() { FiltroBusca filtro = new FiltroBusca(); var recepcionado = Util.MontaDataIntervaloOpcao(this.DdRecepcionado.SelectedValue); if (!string.IsNullOrEmpty(this.TxtBusca.Text)) { filtro.TextoLivre = this.TxtBusca.Text; } filtro.Participante = new Participante() { Cnpj = Util.ObtemSomenteDigitos(this.TxtCnpj.Text), Ie = Util.ObtemSomenteDigitos(this.TxtInscricaoEstadual.Text) }; if (this.RblTipoEmissao.SelectedItem != null) { filtro.OperacaoFiscal = new OperacaoFiscal() { TipoEmissao = (TipoEmissao)Convert.ToByte(this.RblTipoEmissao.SelectedValue) }; } if (this.RblSituacaoDocumento.SelectedItem != null) { filtro.DocumentoFiscal = new DocumentoFiscal() { JuridicamenteValido = (StatusArquivo)Convert.ToByte(this.RblSituacaoDocumento.SelectedValue) == StatusArquivo.Valido }; } filtro.Recepcionado = recepcionado != null ? (DataIntervalo)recepcionado : null; this.ViewState[ConstantesGlobais.FILTRO_BUSCA] = filtro; return(filtro); }
/// <summary> /// Realiza a busca de arquivos Dfe na API, dados os filtros escolhidos pelo usuário /// </summary> /// <param name="filtro">Objeto filtro com todos os critérios da pesquisa</param> /// <param name="inicio">Índice do primeiro registro a ser retornado</param> /// <param name="quantidade">Quantidade máxima de registros que deverá retornar</param> /// <returns>Lista de arquivos encontrados</returns> public static ResultadoBusca BuscaArquivosDfe(FiltroBusca filtro, int inicio, int quantidade) { string json = AuxiliarJson.Posta(filtro, EnderecosApi.BuscaDfe + "/" + inicio + "/" + quantidade); return((ResultadoBusca)AuxiliarJson.Desserializa <ResultadoBusca>(json)); }
/// <summary> /// Obtem os valores digitados nos campos da pesquisa e monta um objeto FiltroBusca /// </summary> /// <returns>Objeto filtro da busca</returns> private FiltroBusca MontaFiltroBuscaAvancada() { FiltroBusca filtro = new FiltroBusca(); var numeroDocumento = Util.MontaValorIntervalo(this.TxtNumeroDocumentoInicio.Text, this.TxtNumeroDocumentoFim.Text); var serieDocumento = Util.MontaValorIntervalo(this.TxtSerieDocumentoInicio.Text, this.TxtSerieDocumentoFim.Text); var valorDocumento = Util.MontaValorIntervalo(this.TxtValorDocumentoInicio.Text, this.TxtValorDocumentoFim.Text); var dataEmissao = Util.MontaDataIntervalo(this.TxtDataEmissaoInicio.Text, this.TxtDataEmissaoFim.Text); var dataEntradaSaida = Util.MontaDataIntervalo(this.TxtDataEntradaSaidaInicio.Text, this.TxtDataEntradaSaidaFim.Text); var recepcionado = Util.MontaDataIntervalo(this.TxtDocumentoRecepcionadoInicio.Text, this.TxtDocumentoRecepcionadoFim.Text); var ultimaConsultaSefaz = Util.MontaDataIntervalo(this.TxtDataUltimaConsultaInicio.Text, this.TxtDataUltimaConsultaFim.Text); filtro.OperacaoFiscal = new OperacaoFiscal() { ChaveAcesso = this.TxtChaveAcesso.Text, FinalidadeOperacao = this.RblFinalidadeOperacao.SelectedValue != null ? this.RblFinalidadeOperacao.SelectedValue : null, Numero = numeroDocumento != null ? (ValorIntervalo)numeroDocumento : null, Serie = serieDocumento != null ? (ValorIntervalo)serieDocumento : null, ValorTotal = valorDocumento != null ? (ValorIntervalo)valorDocumento : null, DataEmissao = dataEmissao != null ? (DataIntervalo)dataEmissao : null, DataSaidaEntrada = dataEntradaSaida != null ? (DataIntervalo)dataEntradaSaida : null, NaturezaOperacao = this.TxtNaturezaOperacao.Text, }; if (this.RblTipoOperacaoAvancada.SelectedItem != null && string.IsNullOrEmpty(this.RblTipoOperacaoAvancada.SelectedValue)) { filtro.OperacaoFiscal.TipoOperacao = (TipoOperacaoDfe)Convert.ToByte(this.RblTipoOperacaoAvancada.SelectedValue); } if (this.RblTipoEmissaoAvancada.SelectedItem != null && string.IsNullOrEmpty(this.RblTipoEmissaoAvancada.SelectedValue)) { filtro.OperacaoFiscal.TipoEmissao = (TipoEmissao)Convert.ToByte(this.RblTipoEmissaoAvancada.SelectedValue); } filtro.Emitente = new Participante() { Cnpj = Util.ObtemSomenteDigitos(this.TxtCnpjEmissor.Text), RazaoSocial = this.TxtRazaoSocialEmissor.Text, Ie = Util.ObtemSomenteDigitos(this.TxtInscricaoEstadualEmissor.Text), Uf = this.DdUnidadeFederativaEmissor.SelectedItem != null ? this.DdUnidadeFederativaEmissor.SelectedItem.Text : null }; filtro.Destinatario = new Participante() { Cnpj = Util.ObtemSomenteDigitos(this.TxtCnpjDestinatario.Text), RazaoSocial = this.TxtRazaoSocialDestinatario.Text, Ie = Util.ObtemSomenteDigitos(this.TxtInscricaoEstadualDestinatario.Text), Uf = this.DdUnidadeFederativaDestinatario.SelectedItem != null ? this.DdUnidadeFederativaDestinatario.SelectedItem.Text : null }; filtro.DocumentoFiscal = new DocumentoFiscal(); filtro.DocumentoFiscal.TemCartaCorrecao = this.TvSituacaoDocumentoSefaz.Nodes[0].ChildNodes[0].Checked; filtro.DocumentoFiscal.CodigoStatusSefaz = this.ObtemStatusSefazSelecionados(); if (this.TvIntegridadeXml.Nodes[0].Checked ^ this.TvIntegridadeXml.Nodes[1].Checked) { filtro.DocumentoFiscal.JuridicamenteValido = this.TvIntegridadeXml.Nodes[1].Checked; } if (this.TvIntegridadeXml.Nodes[0].ChildNodes[0].Checked) { filtro.DocumentoFiscal.ProtocoloAutorizacaoPresente = false; } if (this.TvIntegridadeXml.Nodes[0].ChildNodes[1].Checked) { filtro.DocumentoFiscal.AssinaturaValida = false; } filtro.Produto = new ProdutoServico() { CodigoInterno = this.TxtCodigoProdutoServico.Text, Descricao = this.TxtDescricaoProdutoServico.Text, Ncm = this.TxtCodigoNcmNbs.Text, Ean = this.TxtCodigoEan.Text, Nfci = this.TxtControleFci.Text, Cfop = this.TxtCfop.Text }; filtro.Recepcionado = recepcionado != null ? (DataIntervalo)recepcionado : null; filtro.UltimaConsultaSefaz = ultimaConsultaSefaz != null ? (DataIntervalo)ultimaConsultaSefaz : null; this.ViewState[ConstantesGlobais.FILTRO_BUSCA] = filtro; return(filtro); }