Boa tarde.
Iniciei a fazer uma funcionalidade de relatório dinâmico em um projeto PHP com MVC e preciso de ajuda para finalizar devido ao tempo escasso.
A tela está pronta conforme print em anexo. A tabela já está criada também.
Projeto está com bootstrap 4, PHP 7.4 e MySQL 8.
--A funcionalidade é criação de relatórios dinâmicos com as escolhas de colunas e filtros feitas pelo usuário do sistema.
-Referente ao modal segue explicativo de cada campo
Nome do relatório: é um campo simples de texto
Base de dados: vai ser para escolher a entidade que vai ser criada o relatório. Ao escolher vai trazer as colunas pertinentes e alimentar o select de colunas. E vai trazer as colunas que podem ser filtradas e alimentar o select de filtros do relatório. Essa análise dos campos deve ser feita de acordo com as tabelas. A requisição AJAX de teste para trazer as colunas já está feita.
Colunas(atualmente está com o plugin bootstrap-select): combobox que vai ser alimentado baseado na escolha da base de dados acima. Deve ser possível selecionar várias opções e cada opção escolhida deve ser alimentada abaixo do texto ordenar(a estrutura está com sortable já implementada). Atualmente o ordenar sempre está pegando a ordem desse combobox, porém é necessário ficar na ordem de clique escolhido. E manter a ordenação já feita anteriormente. E ao desmarcar o item deve ser removido a coluna da ordenação também.
Filtros do relatório: paraticamente igual ao funcionamento de colunas, porém as colunas retornadas após escolha da base de dados podem ser diferentes
-Referente a lista dos relatórios
Pode excluir clicando no ícone de excluir
Pode editar no ícone de editar. Vai abrir o modal com os dados vindo da tabela
Ao clicar no nome do relatório vai abrir o mesmo. Que os filtros vão ser baseados no campo "report_filters" e as colunas que vai aparecer no datatables serão da coluna "report_columns"
Favor ler até o final para envio da proposta.
Observações:
Estou utilizando o plugin sortable para ordenar as colunas. Já está implementada a funcionalidade de ordenar as colunas.
Está sendo utilizado o bootstrap-select para escolher as colunas que serão utilizadas no relatório. Esse pode trocar caso ache necessário, mas deve atender e ser aprovado por mim devido a não ficar com o layout moderno.
Abaixo as colunas que vai cadastrar/editar as informações do modal
description VARCHAR(255) #Nome do relatório
entity VARCHAR(255) #Base de dados
report_columns VARCHAR(2000) #Aqui vai gravar em json. A ordem das colunas que vai constar no relatório
report_filters VARCHAR(2000) #Aqui vai gravar em json. As colunas que serão utilizadas como filtro
A estrutura do projeto é esse do link abaixo.
https://drive.google.com/file/d/1QaGl0-mCSEMyqVSooVenMJt1I55XINHZ/view?usp=sharing