Untitled
unknown
plain_text
10 months ago
2.3 kB
3
Indexable
public void updateUserExpenseBalanceSheet(User expensePaidBy, List<Split> splits, double totalExpenseAmount) {
// Initially, update the 'paidBy' user to reflect the total amount they will get back
UserExpenseBalanceSheet paidByUserExpenseSheet = expensePaidBy.getUserExpenseBalanceSheet();
paidByUserExpenseSheet.setTotalYouGetBack(paidByUserExpenseSheet.getTotalYouGetBack() + totalExpenseAmount);
// Iterate through the list of splits (users who owe and the amount they owe)
for (Split split : splits) {
User userOwe = split.getUser(); // User who owes money
UserExpenseBalanceSheet oweUserExpenseSheet = userOwe.getUserExpenseBalanceSheet();
double oweAmount = split.getAmountOwe();
// If the current user is the 'paidBy' user, reduce their 'getBack' by the amount
if (expensePaidBy.getUserId().equals(userOwe.getUserId())) {
paidByUserExpenseSheet.setTotalYouGetBack(paidByUserExpenseSheet.getTotalYouGetBack() - oweAmount);
} else {
// Otherwise, increase the amount owed by the 'userOwe' in their balance sheet
paidByUserExpenseSheet.setTotalYouGetBack(paidByUserExpenseSheet.getTotalYouGetBack() + oweAmount);
// Update 'paidBy' user's balance with the user who owes money
Balance oweBalance = paidByUserExpenseSheet.getUserVsBalance().getOrDefault(userOwe.getUserId(), new Balance());
oweBalance.setAmountGetBack(oweBalance.getAmountGetBack() + oweAmount);
paidByUserExpenseSheet.getUserVsBalance().put(userOwe.getUserId(), oweBalance);
// Update the balance sheet of the user who owes
oweUserExpenseSheet.setTotalYouOwe(oweUserExpenseSheet.getTotalYouOwe() + oweAmount);
oweUserExpenseSheet.setTotalYourExpense(oweUserExpenseSheet.getTotalYourExpense() + oweAmount);
// Update 'oweUserExpenseSheet' balance for the user who paid (expensePaidBy)
Balance paidBalance = oweUserExpenseSheet.getUserVsBalance().getOrDefault(expensePaidBy.getUserId(), new Balance());
paidBalance.setAmountOwe(paidBalance.getAmountOwe() + oweAmount);
oweUserExpenseSheet.getUserVsBalance().put(expensePaidBy.getUserId(), paidBalance);
}
}
}
Editor is loading...
Leave a Comment