X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionModel.java;fp=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Fnew_transaction%2FNewTransactionModel.java;h=1fe215b291fd2d6e8a4cab24a5b86842633742b2;hp=81f1ed07ae7d4d20753cc0304918be903cdec1a5;hb=f3a51462230bae2734179aa7eeef30901daaee30;hpb=3c8ec123d29f8b67b8219352e7ecfd21cb005ce4 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionModel.java b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionModel.java index 81f1ed07..1fe215b2 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionModel.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/new_transaction/NewTransactionModel.java @@ -443,7 +443,7 @@ public class NewTransactionModel extends ViewModel { LedgerTransaction tr = head.asLedgerTransaction(); tr.setComment(head.getComment()); - LedgerTransactionAccount emptyAmountAccount = null; + List emptyAmountAccounts = new ArrayList<>(); float emptyAmountAccountBalance = 0; for (int i = 1; i < list.size(); i++) { TransactionAccount item = list.get(i) @@ -462,14 +462,20 @@ public class NewTransactionModel extends ViewModel { emptyAmountAccountBalance += item.getAmount(); } else { - emptyAmountAccount = acc; + emptyAmountAccounts.add(acc); } tr.addAccount(acc); } - if (emptyAmountAccount != null) - emptyAmountAccount.setAmount(-emptyAmountAccountBalance); + if (emptyAmountAccounts.size() > 0) { + if (emptyAmountAccounts.size() > 1 && !Misc.isZero(emptyAmountAccountBalance)) + throw new RuntimeException(String.format(Locale.US, + "Should not happen. %d accounts with non zero amount to distribute (%5" + + ".3f)")); + for (LedgerTransactionAccount a : emptyAmountAccounts) + a.setAmount(-emptyAmountAccountBalance); + } return tr; }