/**
  * Formats the Receipt records in such a way as to be able to display them in a table on the user
  * interface
  *
  * @return A two dimensional Object array of Receipt data that is used for display purposes
  */
 public Object[][] getReceiptData() {
   List<Receipt> receipts = fetchReceipts();
   Collections.sort(receipts);
   Object[][] data = new Object[receipts.size()][ReceiptTabColumns.values().length];
   int counter = 0;
   for (Receipt receipt : receipts) {
     data[counter][ReceiptTabColumns.RECEIPT_DATE.getColumn()] = receipt.getReceiptDate();
     data[counter][ReceiptTabColumns.ADDRESS.getColumn()] =
         AddressProcessUtil.getAddressForReceipt(receipt.getAddress());
     data[counter][ReceiptTabColumns.DESIGNATION.getColumn()] = receipt.getDesignation().getName();
     data[counter][ReceiptTabColumns.AMOUNT.getColumn()] = receipt.getAmount();
     data[counter][ReceiptTabColumns.NOTES.getColumn()] = receipt.getNotes();
     counter++;
   }
   return data;
 }
 /**
  * Creates a TreeMap that contains the yearly report data. The TreeMap is in "receipt address -
  * amount" format For example: "Midcoast Baptist Church (170 Old Portland Rd, Brunswick, ME) -
  * 100.00"
  *
  * @param year The year of the data to report on
  * @return A TreeMap of yearly report data (TreeMap is used to keep the receipt addresses in
  *     alphabetical order)
  */
 TreeMap<String, BigDecimal> createYearlyReportDataMap(String year) {
   AddressFetchProcess addressFetchProcess = new AddressFetchProcess();
   TreeMap<String, BigDecimal> dataMap = new TreeMap<String, BigDecimal>();
   for (Address address : addressFetchProcess.fetchAddresses()) {
     BigDecimal amount = new BigDecimal("0.00");
     for (Receipt receipt : fetchReceipts()) {
       if (address.equals(receipt.getAddress())
           && receipt.getReceiptDate().substring(6).equals(year)) {
         amount = amount.add(new BigDecimal(receipt.getAmount()));
       }
     }
     if (!amount.toPlainString().equals("0.00")) {
       dataMap.put(AddressProcessUtil.getAddressForReceipt(address), amount);
     }
   }
   return dataMap;
 }