funcaoBuscarDadosDeCadaFiltro method
Future<void>
funcaoBuscarDadosDeCadaFiltro({
- required FiltrosWidgetModel valor,
- required bool isBuscarDropDown,
- required int index,
- bool pesquisa = false,
- bool isDataMensal = false,
Implementation
Future<void> funcaoBuscarDadosDeCadaFiltro({
required FiltrosWidgetModel valor,
required bool isBuscarDropDown,
required int index,
bool pesquisa = false,
bool isDataMensal = false,
}) async {
erroBuscarItensFiltro = false;
if (isBuscarDropDown == false) validarListaParaDropDown = isBuscarDropDown;
try {
validarListaParaDropDown = isBuscarDropDown;
loadingItensFiltros = true;
novoIndexFiltro = retornarIndexListaFiltrosCarregados(index: index,);
if (novoIndexFiltro == -1 || (!listaFiltrosCarregados[novoIndexFiltro].pesquisaFeita && !pesquisa)) {
try {
if(isDataMensal){
String mesinit = "";
mapaFiltrosWidget.forEach((key, value) {
if(value["tipo"] == "datapickermensal"){
mesinit = value["mesInicial"];
}
});
if (novoIndexFiltro == -1 || listaFiltrosCarregados[novoIndexFiltro].pesquisaFeita) {
listaFiltrosCarregados.add(
FiltrosCarrregados(
tipoFiltro: listaFiltrosParaConstruirTela[index].filtrosWidgetModel.tipoFiltro,
indexFiltros: index,
indexPagina: indexPagina,
tipoWidget: listaFiltrosParaConstruirTela[index].filtrosWidgetModel.tipoWidget,
listaFiltros: getDataMensal(mesInicial: mesinit),
),
);
} else {
listaFiltrosCarregados[novoIndexFiltro].listaFiltros = getDataMensal(mesInicial: mesinit);
}
}else{
bodyPesquisarFiltros.addAll(
{
"function": valor.funcaoPrincipal,
"database": valor.bancoBuscarFiltros,
"matricula": SettingsReports.matricula,
},
);
String response = await API().getDataReportApiJWT(dados: bodyPesquisarFiltros, url: "filtros/${valor.arquivoQuery}");
List dados = jsonDecode(response);
if (novoIndexFiltro == -1 || listaFiltrosCarregados[novoIndexFiltro].pesquisaFeita) {
listaFiltrosCarregados.add(
FiltrosCarrregados(
tipoFiltro: listaFiltrosParaConstruirTela[index].filtrosWidgetModel.tipoFiltro,
indexFiltros: index,
indexPagina: indexPagina,
tipoWidget: listaFiltrosParaConstruirTela[index].filtrosWidgetModel.tipoWidget,
listaFiltros: dados.map((e) => FiltrosModel.fromJson(e)).toList(),
),
);
} else {
listaFiltrosCarregados[novoIndexFiltro].listaFiltros = dados.map((e) => FiltrosModel.fromJson(e)).toList();
}
}
indexFiltro = index;
novoIndexFiltro = retornarIndexListaFiltrosCarregados();
} catch (e) {
erroBuscarItensFiltro = true;
} finally {
listaFiltrosCarregados[novoIndexFiltro].pesquisaFeita = true;
}
} else if (pesquisa) {
try {
bodyPesquisarFiltros.addAll({
"function": valor.funcaoPrincipal,
"database": valor.bancoBuscarFiltros,
"matricula": SettingsReports.matricula,
});
String response = await API().getDataReportApiJWT(dados: bodyPesquisarFiltros, url: "filtros/${valor.arquivoQuery}");
bodyPesquisarFiltros.remove('pesquisa');
List dados = jsonDecode(response);
listaFiltrosCarregados[novoIndexFiltro].listaFiltros = dados.map((e) => FiltrosModel.fromJson(e)).toList();
} catch (e) {
erroBuscarItensFiltro = true;
listaFiltrosCarregados[novoIndexFiltro].listaFiltros = [];
} finally {
listaFiltrosCarregados[novoIndexFiltro].pesquisaFeita = false;
}
}
indexFiltro = index;
for (FiltrosModel itens in getListFiltrosComputed) {
if (listaFiltrosParaConstruirTela[indexFiltro].qualPaginaFiltroPertence == indexPagina) {
for (FiltrosModel itensSelecionados in listaFiltrosParaConstruirTela[indexFiltro].filtrosWidgetModel.itensSelecionados!) {
if (itens.codigo == itensSelecionados.codigo) {
itens = itensSelecionados;
getListFiltrosComputed[listaFiltrosCarregados[novoIndexFiltro].listaFiltros.indexOf(itens)] = itens;
}
}
}
}
} finally {
loadingItensFiltros = false;
if (isBuscarDropDown) validarListaParaDropDown = isBuscarDropDown;
}
}