Good Morning, Thanks for the information & this also helps me in future. But I’ve few more questions.
- I’ve update the code & remove the second dataset to avoid confliction. Is this right now.
- Problem is still existing. Did you find some obvious mistakes?
- I feel code is too lengthy for what I need. Could you please provide the suggestion for this.
- Also, how I can sync repeater data so that onchange() there is no data confusion even for seconds.
I’m trying to create account - ledger system. Looking forward to your expert advice. I know I may be asking too much but I respect your time & efforts. Thanks in advance ![]()
import wixData from 'wix-data';
import wixUsers from 'wix-users';
import wixSearch from 'wix-search';
import { local } from 'wix-storage';
import wixWindow from 'wix-window';
$w.onReady(() => {
debitsum();
$w("#dataset1").onReady(function () {
$w("#dataset1").refresh();
//const filter = wixData.filter().eq("_owner", wixUsers.currentUser.id).eq("expenseFor", $w('#dropdown1').value)
wixData.query("kisaandiary")
.find()
.then((results) => {
var totalvalues = $w("#dataset1").getTotalCount();
// console.log(totalvalues)
$w('#repeater1').forEachItem(($item) => {
var getting = parseFloat($item("#text19").text);
if ($item("#text20").text === "Debit") {
var value = (-1 * getting);
$item("#text19").html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: red;'>" + value.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
//$w("#text19").html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: #D12020;'>" + value + "</p>";
} else {
var value = getting;
// console.log("Else Running")
$item("#text19").html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: green;'>" + value.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
}
})
})
})
});
export function dropdown1_change(event) {
local.clear();
debitsum2();
wixData.query("kisaandiary")
.find()
.then((results) => {
$w('#repeater1').forEachItem(($item) => {
var gettingonchange = parseFloat($item("#text19").text);
if ($item("#text20").text === "Debit") {
var valueonchange = parseFloat((-1) * gettingonchange);
$item("#text19").html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: red;'>" + valueonchange.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
} else {
var valueonchange = parseFloat(gettingonchange);
// console.log("Else Running")
$item("#text19").html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: green;'>" + valueonchange.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
}
})
})
}
function allcalculation() {
let debittotal = parseFloat(local.getItem("Rajjat"));
debittotal = (debittotal * (-1));
let credittotal = parseFloat(local.getItem("Kalia"));
var nettotal = credittotal + debittotal;
var finalsum = parseFloat(nettotal);
console.log(finalsum);
if (finalsum > 0) {
$w('#totalsumdisplay').html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: green;'>" + finalsum.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
} else {
$w('#totalsumdisplay').html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: red;'>" + finalsum.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
}
}
function debitsum() {
let userId = wixUsers.currentUser.id;
let user = wixUsers.currentUser;
let isLoggedIn = user.loggedIn;
let userEmail;
user.getEmail()
.then((email) => {
userEmail = email;
});
if (isLoggedIn) {
const filter = wixData.filter().eq("_owner", wixUsers.currentUser.id).contains("type", "Debit")
wixData.aggregate("kisaandiary")
.filter(filter)
.sum("amount")
.run()
.then((results) => {
var debititems = results.items[0].amountSum;
debititems = parseFloat(debititems);
// console.log(debititems);
//console.log(typeof(debititems));
if (debititems === 0 || debititems === null || debititems === undefined) {
debititems = "0";
//creditsum();
} else {
debititems = parseFloat(debititems);
//creditsum();
}
var kn = local.setItem("Rajjat", debititems);
creditsum();
})
}
}
function creditsum() {
let userId = wixUsers.currentUser.id;
let user = wixUsers.currentUser;
let isLoggedIn = user.loggedIn;
let userEmail;
user.getEmail()
.then((email) => {
userEmail = email;
});
if (isLoggedIn) {
const filter = wixData.filter().eq("_owner", wixUsers.currentUser.id).contains("type", "Credit")
wixData.aggregate("kisaandiary")
.filter(filter)
.sum("amount")
.run()
.then((results) => {
var credititems = results.items[0].amountSum;
credititems = parseFloat(credititems);
if (credititems === 0 || credititems === null || credititems === undefined) {
credititems = "0";
} else {
credititems = parseFloat(credititems);
}
local.setItem("Kalia", credititems);
allcalculation();
})
}
}
export function reset_filter(event) {
$w("#dataset1").refresh();
}
function debitsum2(debval) {
const filter = wixData.filter().eq("_owner", wixUsers.currentUser.id).eq("expenseFor", $w('#dropdown1').value).contains("type", "Debit")
wixData.aggregate("kisaandiary")
.filter(filter)
.sum("amount", "debititems")
.run()
.then((results) => {
if (results.items.length > 0) {
//console.log(results.items);
var d = results.items[0].debititems;
console.log("D VAQLUE" + d);
console.log(typeof (d));
if (d === 0 || d === null || d === undefined) {
var debval = 0;
console.log("Null D " + debval);
console.log(typeof (debval));
$w('#input1').value = debval;
local.setItem("Debitvalue", debval);
creditsum2();
// return debval;
} else {
var debval = d;
console.log("D " + debval);
console.log(typeof (debval));
$w('#input1').value = debval;
local.setItem("Debitvalue", debval);
creditsum2();
//return debval;
}
} else {
var debval = 0;
$w('#input1').value = debval;
local.setItem("Debitvalue", debval);
creditsum2();
//return debval;
}
})
}
function creditsum2(credval) {
const filter = wixData.filter().eq("_owner", wixUsers.currentUser.id).eq("expenseFor", $w('#dropdown1').value).contains("type", "Credit")
wixData.aggregate("kisaandiary")
.filter(filter)
.sum("amount", "credititems")
.run()
.then((results) => {
if (results.items.length > 0) {
console.log(results.items);
var c = results.items[0].credititems;
//console.log("D VAQLUE" + c);
if (c === null || c === 0 || c === undefined) {
console.log("Result >0 and entered null loop");
var credval = 0;
console.log("If Credval is null " + credval);
console.log(typeof (credval));
//return (credval);
local.setItem("Creditvalue", credval);
$w('#input2').value = credval;
loda();
} else {
console.log("Result >0 and entered result loop");
var credval = parseFloat(c);
console.log("If Credit Sum available " + credval);
console.log(typeof (credval));
//return (credval);
local.setItem("Creditvalue", credval);
$w('#input2').value = credval;
loda();
}
} else {
console.log("Result < 0 and entered returning 0");
var credval = 0;
console.log("If No Credit Entry " + credval);
console.log(typeof (credval));
//return (credval);
local.setItem("Creditvalue", credval);
$w('#input2').value = credval;
loda();
}
})
}
function loda() {
var a = parseFloat($w('#input1').value);
//var a = parseFloat(valueOf(debitsum2()));
// var a = parseFloat(local.getItem("Creditvalue"));
if (a === null || a === undefined || a === 0) {
a = 0;
} else {
var a = (a * (-1));
}
// var b = parseFloat(local.getItem("Debitvalue"));
var b = parseFloat($w('#input2').value);
if (b === null || b === undefined || b === 0) {
b = 0;
} else {
var b = b;
}
console.log("A" + a);
console.log("B" + b);
var c = a + b;
if (c >= 0) {
$w('#totalsumdisplay').html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: green;'>" + c.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
} else {
$w('#totalsumdisplay').html = "<p style='font-size: 25px; font-style: avenir; text-align: right; color: red;'>" + c.toLocaleString('en-IN', {
maximumFractionDigits: 2,
style: 'currency',
currency: 'INR'
}); + "</p>";
}
}