# Relatórios >[color=#00796b]Funcionalidade que permite ao desenvolvedor criar relatórios sobre os procedimentos realizados pela Agrotis Plataforma. ![](https://i.imgur.com/2s2IaQr.png) ## Padrão de rotas * LIST: `/relatorios` * ITEM: `/relatorios/:nomeEntidade/:nomeRelatorio` >[color=#00796b]`:nomeRelatorio` é capturado como `this.props.match.params.nomeRelatorio` e é responsável por conectar as informações contidas em `RelatorioList` ao seu respectivo conteúdo em `RelatorioItem`. Ele é utilizado como chave dentro do arquivo de declaração de um relatório no frontend (arquivo `data.js` em `RelatorioItem`), e é buscado ao iniciar o processo de gerar um relatório, na função `componentDidMount` de `RelatorioItem`; ## Containers * `RelatorioList`: Arquivo da index que lista todas opções de relatórios; * `RelatorioItem`: Container que renderiza a parametrização através dos componentes e consultas realizadas; ## Components * `FilterData`: componente de filtro de data com parâmetros pré definidos; * `FilterSelect`: componente que renderiza opções requeridas pelo relatório já previamente selecionadas na aba filtros; * `Filtering`: componente de fieldarray permite adicionar filtros como parâmetros opcionais; * `Ordering`: componente de fieldarray permite adicionar agrupamentos e respectivas ordenações como parâmetros opcionais; ## Store * `actions`: setam informações da maneira correta em nossa store do Redux; * `reducers`: setam informações da maneira correta em nossa store do Redux * `actionTypes`: responsáveis por trafegar as actions corretas ao nosso reducer; * `thunks`: responsáveis por fazer as chamadas e invocar actions corretas passando informacoes a elas; * `initialState`: informações do estado inicial do formulário; ## Principais Arquivos * **Endpoints consultados para popular campos e gerar relatórios** [endpoints.js](https://bitbucket.org/agrotis/core-frontend-react/src/relatorios/src/components/Relatorio/endpoints.js) * Endpoints para popular campos * Endpoints para gerar um relatório * **Arquivos com os dados da Lista** [data.js](https://bitbucket.org/agrotis/core-frontend-react/src/relatorios/src/components/Relatorio/List/data.js) * Título de `nomeEntidade` * Título e função de `onCLick` de `nomeRelatorio` * **Arquivos com os dados dos Items** [data.js](https://bitbucket.org/agrotis/core-frontend-react/src/relatorios/src/components/Relatorio/Item/data.js) * `title`: título do relatório * `selectedFilters`: filtros previamente selecionados * `filterOpts`: filtros como opção em `[Adicionar Filtro]` * `groups`: opções de agrupamentos e suas respectivas ordenações * `geraRelatorio`: função que retorna objeto para gerar relatório * `thunkGeraRelatorio`: validação e chamada de thunk para gerar relatório <br> ## To Do List 1. Tratar chamadas nos selects para realizar buscas `onSearchChange` e popular campos a partir de parâmetro passado ao endpoint; 2. Separar dados de cada relatório em um arquivo separado, e importar todos em um index de dados; 3. Evitar a verificação `typeof === 'function'`; 4. Revisar internacionalizações de filtros e demais possíveis labels vindos das declarações de dados dos relatórios; --- ![](https://i.imgur.com/aQAwU0Q.jpg)