Example #1
0
        public List<Despesa> Pesquisar(DespesaPesquisa parametroPesquisa, Paging paging)
        {
            var unidadeRepositorio = new UnidadeRepositorio();
            var despesaRepositorio = new DespesaRepositorio();

            var unidade = unidadeRepositorio.Fetch(Account.Current.Usuario.Unidade.Id);

            return despesaRepositorio.Fetch(parametroPesquisa, unidade, paging);
        }
        public List<Despesa> Fetch(DespesaPesquisa parametro, Unidade unidade, Paging paging)
        {
            var sql = PetaPoco.Sql.Builder.Append("SELECT SQL_CALC_FOUND_ROWS Despesa.*, Fornecedor.*, Usuario.*, Unidade.*")
                                          .Append("FROM Despesa")
                                          .Append("INNER JOIN Fornecedor ON Fornecedor.Id = Despesa.FornecedorId")
                                          .Append("INNER JOIN Usuario ON Usuario.Id = Despesa.UsuarioId")
                                          .Append("INNER JOIN Unidade ON Unidade.Id = Despesa.UnidadeId")
                                          .Append("WHERE (Unidade.Hierarquia LIKE @0 OR Unidade.Id = @1)", unidade.GetFullLevelHierarquia() + "%", unidade.Id);

            //5 TODOS
            if (parametro.Status != 5) {
                sql.Append(" AND Despesa.Status = @0", parametro.Status);
            }

            if (parametro.Usuario != null) {
                sql.Append(" AND Despesa.UsuarioId = @0", parametro.Usuario.Id);
            }

            if (parametro.Unidade != null) {
                sql.Append(" AND Despesa.UnidadeId = @0", parametro.Unidade.Id);
            }

            if (parametro.Fornecedor != null) {
                sql.Append(" AND Despesa.FornecedorId = @0", parametro.Fornecedor.Id);
            }

            if (parametro.Numero != null)
            {
                sql.Append(" AND Despesa.Numero = @0", parametro.Numero);
            }

            if (parametro.ValorMenor > 0 && parametro.ValorMaior > 0) {
                sql.Append(" AND Despesa.Total >= @0 AND Despesa.Total <= @1", parametro.ValorMenor, parametro.ValorMaior);
            } else if (parametro.ValorMenor > 0){
                sql.Append(" AND Despesa.Total >= @0", parametro.ValorMenor);
            } else if (parametro.ValorMaior > 0){
                sql.Append(" AND Despesa.Total <= @0", parametro.ValorMaior);
            }

            var dataNull = new DateTime(1, 1, 1, 0, 0, 0);
            if (parametro.DataInicio > dataNull && parametro.DataFim > dataNull) {
                sql.Append(" AND Despesa.Data >= @0 AND Despesa.Data <= @1", parametro.DataInicio, parametro.DataFim);
            } else if (parametro.DataInicio > dataNull)
            {
                sql.Append(" AND Despesa.Data >= @0", parametro.DataInicio);
            } else if (parametro.DataFim > dataNull)
            {
                sql.Append(" AND Despesa.Data <= @0", parametro.DataFim);
            }

            sql.Append("ORDER BY Despesa.Data DESC");
            sql.Append("LIMIT @0, @1", paging.LimitDown, paging.LimitUp);

            this.Db.BeginTransaction();

            var despesas = this.Db.Fetch<Despesa, Fornecedor, Usuario, Unidade, Despesa>((d, f, us, un) =>
            {

                d.Fornecedor = f;
                d.Usuario = us;
                d.Unidade = un;

                return d;
            }, sql);

            paging.total = this.Db.ExecuteScalar<int>("SELECT FOUND_ROWS()");

            this.Db.CompleteTransaction();

            return despesas;
        }
        public string Pesquisar(DespesaPesquisa parametrosPesquisa, int totalPerPage, int page)
        {
            var despesaRules = new DespesaRules();
            var paging = new Paging(){
                totalPerPage = totalPerPage,
                page = page
            };

            return Success(despesaRules.Pesquisar(parametrosPesquisa, paging), paging);
        }