public IActionResult Relatorio([FromQuery] FiltroServicoPrestadoDto filtroServicoPrestadoDto) { var idFornecedor = _userContext.ObterIdFornecedorLogado(HttpContext.User); if (!idFornecedor.HasValue || idFornecedor == default(long)) { return(StatusCode(StatusCodes.Status405MethodNotAllowed, "Usuário não encontrado ou não é fornecedor!")); } filtroServicoPrestadoDto.Fornecedor = idFornecedor.Value; return(Ok(_servicoPrestadoService.ObterRelatorio(filtroServicoPrestadoDto))); }
public IEnumerable <RelatorioServicoPrestadoDto> ObterRelatorio(FiltroServicoPrestadoDto parametroFiltroRelatorio) { var queryServicoPrestado = _repository .ReadOnlyQuery <ServicoPrestado>() .Include(x => x.Fornecedor) .Include(x => x.Cliente) .Where(servico => servico.IdFornecedor == parametroFiltroRelatorio.Fornecedor); return(_filtroBuilderFactory .CriarServicoPrestadoFiltroBuilder(queryServicoPrestado, parametroFiltroRelatorio) .AplicarTodosFiltros() .GetQueryable() .AsEnumerable() .Select(servico => new RelatorioServicoPrestadoDto { Bairro = servico.Cliente.Bairro, Cliente = $"{servico.IdCliente} - {servico.Cliente.Nome}", Cidade = servico.Cliente.Cidade, Estado = servico.Cliente.Estado, TipoServico = $"{(int)servico.TipoServico} - {servico.TipoServico.GetDescription()}", DataAtendimento = servico.DataAtendimento.ToString("dd/MM/yyyy"), Valor = $"R$ {string.Format("{0:0.00}", servico.ValorServico)}" })); }
public IServicoPrestadoFiltroBuilder CriarServicoPrestadoFiltroBuilder(IQueryable <ServicoPrestado> query, FiltroServicoPrestadoDto parametroFiltroRelatorio) => new ServicoPrestadoFiltroBuilder(query, parametroFiltroRelatorio);
public ServicoPrestadoFiltroBuilder(IQueryable <ServicoPrestado> query, FiltroServicoPrestadoDto parametroFiltroRelatorio) { _parametroFiltroRelatorio = parametroFiltroRelatorio; _query = query; }