@Override public void modifyTransaction(final Transaction tran) { if (!(tran instanceof InvestmentTransaction)) { throw new IllegalArgumentException("bad tranType"); } clearForm(); datePanel.setDate(tran.getDate()); List<TransactionEntry> entries = tran.getTransactionEntries(); feePanel.setTransactionEntries(((InvestmentTransaction) tran).getInvestmentFeeEntries()); gainsPanel.setTransactionEntries(((InvestmentTransaction) tran).getInvestmentGainLossEntries()); for (TransactionEntry e : entries) { if (e instanceof TransactionEntrySellX) { AbstractInvestmentTransactionEntry entry = (AbstractInvestmentTransactionEntry) e; memoField.setText(e.getMemo()); priceField.setDecimal(entry.getPrice()); quantityField.setDecimal(entry.getQuantity()); securityCombo.setSelectedNode(entry.getSecurityNode()); accountExchangePanel.setSelectedAccount(entry.getDebitAccount()); accountExchangePanel.setExchangedAmount(entry.getDebitAmount().abs()); } } updateTotalField(); modTrans = tran; reconciledButton.setSelected(tran.getReconciled(getAccount()) == ReconciledState.RECONCILED); }
/** * Writes one bank transaction * * @param transaction <code>Transaction</code> to write */ private void writeBankTransaction(final Transaction transaction) { indentedWriter.println(wrapOpen(STMTTRN), indentLevel++); indentedWriter.println( wrapOpen(TRNTYPE) + (transaction.getAmount(account).compareTo(BigDecimal.ZERO) == 1 ? CREDIT : DEBIT), indentLevel); indentedWriter.println(wrapOpen(DTPOSTED) + encodeDate(transaction.getDate()), indentLevel); indentedWriter.println( wrapOpen(TRNAMT) + transaction.getAmount(account).toPlainString(), indentLevel); indentedWriter.println(wrapOpen(REFNUM) + transaction.getUuid(), indentLevel); indentedWriter.println(wrapOpen(NAME) + transaction.getPayee(), indentLevel); indentedWriter.println(wrapOpen(MEMO) + transaction.getMemo(), indentLevel); // write the check number if applicable if (account.getAccountType() == AccountType.CHECKING && !transaction.getNumber().isEmpty()) { indentedWriter.println(wrapOpen(CHECKNUM) + transaction.getNumber(), indentLevel); } // write out the banks transaction id if previously imported writeFitID(transaction); indentedWriter.println(wrapClose(STMTTRN), --indentLevel); }