Preciso que quando chamar a função btnPesquisa_click traga apenas os resultados já filtrados no repetidor pela filterReferenced ou mostarDados
import { local, session } from 'wix-storage';
import wixData from 'wix-data';
import { displayErro } from 'public/util.js';
let obra
let user //Declarar estas variáveis acima do onReady
let nome
$w.onReady(function () {
user = JSON.parse(session.getItem("user")) //Lembrar de deixar sel o LET
nome = JSON.parse(session.getItem("nome"))
$w('#dataset1').onReady(async () => {
await $w('#dataset1').setFilter(wixData.filter().eq('email', user.email))
$w('#txtNome').text = nome
$w('#txtNome').show()
})
detectarObra();
mostarDados();
});
//////////////////////////////////////////////////////////////////////////////
async function detectarObra() {
await wixData.queryReferenced("Clientes", user.empresa, "Obra-2")
.then(async (results) => {
$w("#dataset2").setFilter(wixData.filter().eq('_id', results))
let options = [];
results.items.forEach((obra) => {
options.push({ "value": obra._id, "label": obra.descricao });
});
$w('#ddObra').options = options;
})
.catch((err) => {
let errorMsg = err;
});
}
export function ddObra_change(event) {
let selectObra = $w('#ddObra').value
filterReferenced(selectObra)
}
async function filterReferenced(ob) {
//buscar obra do item referenciado
let newSelection = (await wixData.query('Obra')
.eq('_id', ob)
.find()).items[0]._id;
console.log(newSelection)
//buscar itens do banco principal que tenham o item referenciado
await wixData.query("Diarios").contains("idObra", newSelection).include("idObra")
.find()
.then((result) => {
if (result.items.length > 0) {
let items = result.items
console.log(items)
$w('#repeater1').expand()
$w('#repeater1').data = items;
displayErro($w('#txtAlerta'), "")
} else {
$w('#repeater1').collapse()
displayErro($w('#txtAlerta'), "Não foram encontrados resultados")
}
});
}
async function mostarDados() {
await wixData.queryReferenced("Clientes", user.empresa, "Obra-2")
.then(async (results) => {
obra = await results.items[0]._id
await wixData.query("Diarios").contains("idObra", obra).include("idObra")
.find()
.then((result) => {
if (result.items.length > 0) {
let items = result.items
console.log(items)
// $w('#repeater1').expand()
$w('#repeater1').data = items;
displayErro($w('#txtAlerta'), "")
} else {
$w('#repeater1').collapse()
displayErro($w('#txtAlerta'), "Não foram encontrados resultados")
}
});
})
.catch((err) => {
let errorMsg = err;
});
}
export async function btnPesquisa_click(event) {
let obra = $w('#ddObra').value
const initDate = $w("#dtInicio").value;
const endDate = $w("#dtFim").value;
endDate.setDate(endDate.getDate() + 1);
$w('#button14').show()
if (endDate > initDate) {
await wixData.query("Diarios").between("data", initDate, endDate).contains("idObra", obra).include("idObra")
.find()
.then((result) => {
if (result.items.length > 0) {
let items = result.items
console.log(items)
$w('#repeater1').expand()
$w('#repeater1').data = items;
displayErro($w('#txtAlerta'), "")
displayErro($w('#textAlerta'), "")
} else {
$w('#repeater1').collapse()
displayErro($w('#txtAlerta'), "Não foram encontrados resultados")
}
});
} else {
displayErro($w('#textAlerta'), "A data final deve ser maior que a inicial.")
}
}
export async function button14_click(event) {
$w("#dtInicio").value = null;
$w("#dtFim").value = null;
let obra = $w('#ddObra').value
console.log(obra)
await wixData.query("Diarios").contains("idObra", obra).include("idObra")
.find()
.then((result) => {
if (result.items.length > 0) {
let items = result.items
console.log(items)
$w('#repeater1').expand()
$w('#repeater1').data = items;
displayErro($w('#txtAlerta'), "")
displayErro($w('#textAlerta'), "")
} else {
$w('#repeater1').collapse()
displayErro($w('#txtAlerta'), "Não foram encontrados resultados")
}
});
}