Here is
Backend Code sample, because it is a complex function:
export async function calculTarif(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member) {
...
return await wixData.get("chalets", selChalet)
.then(rowChalet => {
if (rowChalet !== null) {
typeChalet = rowChalet.typeChalet;
return typeChalet;
}
return typeChalet
})
.then(async typeChalet => {
...
while (isPeriodLeft) {
await wixData.query("saison")
.le("fromNum", dateSelFromNum)
.gt("toNum", dateSelFromNum)
.find()
.then(async (saisons) => {
...
if (saisonCount > 0) {
rowsSaison = saisons.items[0];
...
if (dateSelTo <= saisonDateTo) {
...
let nbJours = await numberOfDays(lineDateFrom, lineDateTo);
if (isMember) {
...
let tarif = await wixData.query("tarif")
.eq("saison", saisons.items[0]._id)
.eq("typeChalet", typeChalet)
.eq("famille", selFamMbr)
.eq("group", groupSelected)
// .include("saison", "typeChalet", "group")
.find();
...
if (rowTarifCount > 0) {
subTotal = await calculateSubTotal(rowTarif.prixDay, rowTarif.prixHebdo, rowTarif.prixMensuel, nbJours);
...
periodTarif.push(tbl);
... }
}
...
return periodTarif;
})
.then(period => {
... return period;
})
.catch((err) => {
console.error(err);
const response = {
"isOK": false,
"total": 0,
"period": [{ "?????": "null" }]
};
return period;
})
})
.catch((error) => {
console.error(error);
return response;
});
})
.catch((error) => {
console.error(error);
return response;
});
}
And the front end code:
export async function displayTarif() {
let dollar = new Number();
dollar = 0;
if (selChalet !== null && selFrom !== null && selTo !== null && selFromNum !== null && selToNum !== null && isMember !== null && isInviter !== null && isVisiteur !== null && selFamMbr !== null && selFamInv !== null && selFamVis !== null && member !== null) {
//let response = await
return await calculTarif(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member)
// })
.then((period) => {
return period;
})
.then(zzz => {
return getTarifReserv(member)
.then(response => {
...
dollar = cout;
if (dollar === 0 || dollar === undefined || dollar === null) {
$w('#tarif').text = $w('#adminTarif').text = "?";
} else {
let tmp = dollar.toLocaleString();
$w('#adminTarif').text = $w('#tarif').text = tmp;
}
return response;
})
})
.then((period) => {
return SaveRqustTarifItems(selChalet, selFrom, selTo, selFromNum, selToNum, isMember, isInviter, isVisiteur, selFamMbr, selFamInv, selFamVis, member)
.then((period) => {
return period;
})
})
.catch((err) => {
console.error(err);
});
}
if (dollar === 0 || dollar === undefined || dollar === null) {
$w('#tarif').text = $w('#adminTarif').text = "?";
} else {
let tmp = dollar.toLocaleString();
$w('#adminTarif').text = $w('#tarif').text = tmp;
}
return;
}