Try this one and also use some more CONSOLE-LOGS inside your code!
import wixData from 'wix-data';
$w.onReady(function () {
$w("#remoCheckRepeater").onItemReady(($item, itemData, index)=> {
$item("#nameData").text = itemData.title;
$item("#balanceData").text = itemData.borrowingAmount.toString();
$item("#remoDateData").text = itemData.remortgageDate.toLocaleDateString();
$item("#ercData").text = itemData.currentErc.toString();
$item('#outcomeData').text = itemData.dataTest.toString();
});
wixData.query("CriteriaCheck")
.ascending("remortgageDate")
.eq("type","rate checker")
.find()
.then((results)=> {
let dataArray = results.items;
loopResults(dataArray);
});
});
async function loopResults(dataArray) {
for (let i = 0; i < dataArray.length; i++) {
let date1 = new Date();
let remoDate = dataArray[i].remortgageDate;
let remoBalance = dataArray[i].borrowingAmount;
let remoRepaymentMethod = dataArray[i].currentRepaymentMethod;
let remoTerm = dataArray[i].term;
let remoPaying = dataArray[i].currentPayment;
let remoErc = dataArray[i].currentErc;
let remoLtv = dataArray[i].ltvPc;
//-------------------------------------------
let currentTimeLeft = remoDate.getTime() - date1.getTime();
let currentMonthsLeft = Math.round(currentTimeLeft / 2629746000);
//-----------------------------------------------
let remoTotalCost = await sortTotalCost(remoLtv, currentMonthsLeft, remoBalance, remoRepaymentMethod, remoTerm); console.log('this is the loopResults '+ remoTotalCost);
let currentTotalCost = remoPaying * currentMonthsLeft;
let costDifference = currentTotalCost - remoTotalCost;
if (costDifference > remoErc) {ataArray[i].dataTest = "yes we can save you money";}
else if (costDifference < remoErc && currentMonthsLeft <= 6) {
dataArray[i].dataTest ="no we cant save you money but you're within 6 months";
}
else {dataArray[i].dataTest = "no we cant save you money";}
if(i === dataArray.length-1) {console.log('this is the totalCostLoop '+ lowestTotalCost);
return $w("#remoCheckRepeater").data = dataArray;
}
}
}
async function sortTotalCost(ltv, mthsLeft, balance, method, term) {
return wixData.query("CurrentRates")
.ge("ltv", ltv)
.ascending("ltv", "fees")
.find()
.then(async(results) => {
let items;
if(results.items.length > 0) {
items = results.items; console.log("Found ITEMS: ", items)
} else {console.log("NOTHING MATCHES THIS SEARCH");}
let remoCost = await totalCostLoop(items, mthsLeft, balance, method, term); console.log('this is the sortTotalCost '+ remoCost)
return remoCost;
});
}
function totalCostLoop(item, mths, bal, mthd, term) {
let lowestTotalCost=0;
if (mthd !== "repayment") {
for (let i = 0; i < item.length; i++) {
let monthlyCost = 0;
monthlyCost = item[i].interestRate / 100 / 12 * bal;
let totalCost = monthlyCost * mths + item[i].fees - item[i].cashBack;
if (i === 0) {lowestTotalCost = totalCost;}
else if (i > 0 && totalCost < lowestTotalCost){lowestTotalCost = totalCost;}
if(i === item.length-1) {console.log('this is the totalCostLoop '+ lowestTotalCost);
return lowestTotalCost;
}
}
} else {
for (let i = 0; i < item.length; i++) {
let monthlyCost = 0;
let monthlyRate = item[i].interestRate / 100 / 12;
monthlyCost = (bal * monthlyRate * (Math.pow(1 + monthlyRate, (term*12))) / (Math.pow(1 + monthlyRate, (term*12)) - 1));
let totalCost = monthlyCost * mths + item[i].fees - item[i].cashBack;
if (i === 0) {lowestTotalCost = totalCost;}
else if (i > 0 && totalCost < lowestTotalCost){lowestTotalCost = totalCost;}
if(i === item.length-1) {console.log('this is the totalCostLoop '+ lowestTotalCost);
return lowestTotalCost;
}
}
}
}
Also use CODE-BLOCKS to present your code inside your post → like i do!
Also try to pay more attention onto the formating of your code-syntax.
Alsways try to write your code clearly, as short as possible giving it a good overview.