Example #1
0
  /** TODO: The memo payee and number should be user configurable by the user */
  @Override
  protected Transaction buildTransaction() {
    String number = "TRAN";

    String payee = rb.getString("Tab.Transfer");

    Transaction transaction;

    final int signum = amountField.getDecimal().signum();

    if (panelType == PanelType.DECREASE && signum >= 0 || signum == -1) {
      if (hasEqualCurrencies()) {
        transaction =
            TransactionFactory.generateDoubleEntryTransaction(
                accountPanel.getSelectedAccount(),
                getAccount(),
                amountField.getDecimal().abs(),
                datePanel.getDate(),
                memoField.getText(),
                payee,
                number);
      } else {
        transaction =
            TransactionFactory.generateDoubleEntryTransaction(
                accountPanel.getSelectedAccount(),
                getAccount(),
                accountPanel.getExchangedAmount().abs(),
                amountField.getDecimal().abs().negate(),
                datePanel.getDate(),
                memoField.getText(),
                payee,
                number);
      }
    } else {
      if (hasEqualCurrencies()) {
        transaction =
            TransactionFactory.generateDoubleEntryTransaction(
                getAccount(),
                accountPanel.getSelectedAccount(),
                amountField.getDecimal().abs(),
                datePanel.getDate(),
                memoField.getText(),
                payee,
                number);
      } else {
        transaction =
            TransactionFactory.generateDoubleEntryTransaction(
                getAccount(),
                accountPanel.getSelectedAccount(),
                amountField.getDecimal().abs(),
                accountPanel.getExchangedAmount().abs().negate(),
                datePanel.getDate(),
                memoField.getText(),
                payee,
                number);
      }
    }

    ReconcileManager.reconcileTransaction(getAccount(), transaction, reconciledButton.isSelected());

    return transaction;
  }