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); }