Untitled

 avatar
unknown
plain_text
18 days ago
1.9 kB
2
Indexable
// Variables to store data
var balance = 0;
var transactions = [];

// Update balance and transactions on screen
function updateScreen() {
  setText("balanceLabel", "Balance: $" + balance.toFixed(2));
  setText("transactionList", formatTransactions());
}

// Format transactions for display
function formatTransactions() {
  var formatted = "";
  for (var i = 0; i < transactions.length; i++) {
    formatted += transactions[i].type + ": $" + transactions[i].amount.toFixed(2) + "\n";
  }
  return formatted;
}

// Add Income Button
onEvent("addIncomeBtn", "click", function() {
  var amount = getNumber("amountInput");
  if (amount > 0) {
    balance += amount;
    transactions.push({type: "Income", amount: amount});
    updateScreen();
    setText("statusLabel", "Income added!");
  } else {
    setText("statusLabel", "Enter a valid amount.");
  }
  clearInput();
});

// Add Expense Button
onEvent("addExpenseBtn", "click", function() {
  var amount = getNumber("amountInput");
  if (amount > 0 && amount <= balance) {
    balance -= amount;
    transactions.push({type: "Expense", amount: amount});
    updateScreen();
    setText("statusLabel", "Expense added!");
  } else {
    setText("statusLabel", "Invalid amount or insufficient balance.");
  }
  clearInput();
});

// Delete Transaction Button
onEvent("deleteBtn", "click", function() {
  if (transactions.length > 0) {
    var lastTransaction = transactions.pop();
    if (lastTransaction.type === "Income") {
      balance -= lastTransaction.amount;
    } else {
      balance += lastTransaction.amount;
    }
    updateScreen();
    setText("statusLabel", "Last transaction deleted!");
  } else {
    setText("statusLabel", "No transactions to delete.");
  }
});

// Clear input field
function clearInput() {
  setText("amountInput", "");
}

// Initial screen update
updateScreen();
Editor is loading...
Leave a Comment