Ejemplo n.º 1
0
        /// <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();
                }
            }
        }
Ejemplo n.º 2
0
        /// <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");
            }
        }
Ejemplo n.º 3
0
        /// <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;
            }
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
        /// <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));
        }
Ejemplo n.º 6
0
        /// <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);
        }